Jump to content
  • Advertisement


  • Content Count

  • Joined

  • Last visited

Everything posted by Monder

  1. I've just found what looks like the same product from a british supplier as well: http://www.coolcomponents.co.uk/catalog/product_info.php?cPath=45&products_id=179. It might cost a little more, but you don't have to add on the extras of getting it across the Atlantic and VAT/Duty charges :)
  2. Have you seen this: http://www.sparkfun.com/commerce/product_info.php?products_id=8541? It's a cheapish VGA graphics controller with a simple serial interface. Sparkfun (What I've linked to) sell a version soldered to a PCB with an SRAM chip all integrated together with DIL breakout pins so you could easily plug it into a breadboard. Won't give you TV output though as far as I know.
  3. Monder

    2MHz should be enough for anyone

    Quote: So where did you learn all this junk from? Any good references? You should check out Digital Design and Computer Architecture. It teaches basic computer architecture along with verilog, an HDL (hardware description language). It's like a programming language for hardware, you write what you want to do in verilog and synthesis tools can turn that into actual hardware (As compilers turn [insert language here] into executable x86). Generally you'll target an FPGA (field programmable gate array) which is effectively a chip that consists of a huge number of logic gates that you can connect up as you wish to produce arbitrary bits of hardware without having to make a custom chip and thus avoiding the huge costs associated with that. You can buy FPGA development boards that have an FPGA along with various peripherals (such as LCDs, Audio and VGA DACs, CF/SD card connectors, USB etc along with external IO connectors so you can plug your own stuff in) though they can get expensive (You might manage to find one for $50 or so but the ones with decent sized FPGAs and a decent number of peripherals on the board generally cost a few hundred). Though if you're serious about playing around with your own CPU architectures it's worth it. I used the XUPV2P to make a multicore processor for my final year project in my computer science degree and I'm currently in the beginnings of designing a GPU for the board (Which I'm planning to start writing a dev journal about soon). Of course verilog, HDLs, FPGAs and such are a bit more abstract than the stripboard and solder approach used by benryves so you may want to check out the book he recommends as well to get a better idea of the actual physical aspect. Plus writing programs for a computer that's constructed out of wires, chips and stripboard that you built yourself is always good fun [grin].
  4. Monder

    Grad School Bid, 2.0

    Cambridge could be an option in the UK. There's a Gates Cambridge Trust which awards quite a few scholarships a year to overseas students (as well as various others who award scholarships check out the Cambridge grad application website for all the gory details), however the deadline is the 15th December for applications to it so if you did want to do that you'd be starting sometime next year. The Rainbow group at the computer laboratory would be the one you'd want to take a look at,
  5. Monder

    Every Game Should Have an In-Code Profiler

    Have you seen Phoenix? It's basically the MS compilers put together in a modular way that allows you switch stages in and out and add in plugins. One of its intended uses is instrumenting code, so if you wish to create a new profiler it could come in handy.
  6. Monder

    Parallel-Port SMS Control Pad

    Why don't you try adding external pull-up resistors? Then everything should work fine.
  7. Monder


    Personally I would have liked to seen more maths corsework (i.e. at A-Level), so students can actualy show they can use the maths they've learnt to solve a problem rather than just, do this integral, invert this matrix etc. Oh and happy birthday.
  8. Monder

    More Hardware

    I haven't really progressed much since my last post due to lack of time. However I have done some stuff. I've hooked up a composite video connector so I can display stuff on my TV, connected a SNES pad I got off eBay (decided I didn't need the ps/2 connector for a keyboard, I may add one at a later date) and my sample order arrived from Microchip so I have a 256k EEPROM as well. Here's a labeled picture of what the setup is now: What I need to do now is actually write a game for the thing [grin]. What I currently have running is a (highly unimpressive) test program that just draws a rectangle on the TV you can move around with the SNES pad. It's horribly flickery but at least it works. Here's a picture of the output on my TV: Here's a little test program that comes with the Propeller dev environment: The SNES Pad The SNES pad is a very simple device to interface with, it basically consists of two 4021 shift registers (The 4021 datasheet is here). A shift register is a very simple device that basically holds a load of binary digits, then on a clock pulse every bit shifts along by 1 (You can look at like this, if the contents of the register were a variable x, every clock pulse x = x
  9. Monder

    More Hardware

    Nice, my current breadboard is tad messy though I think I'll be doing a PCB at some point, rather than using a Tortilla.
  10. Monder


    So I've decided to build my own console of a sort. Originally I was going to buy a Spartan-3E starter kit and do something with an FPGA however Xilinx won't sell me one due to EU regulations about hazardous materials in electronics. So I've gone and bought a Propeller chip instead. It's an 8-core chip that can run at 80 MHz which should be fun to code for [grin]. Here's the circuit I've come up with, it's got stero sound output, composite video output, a PS/2 connector (for connecting a keyboard), an eeprom for program storage and it's connected to the computer via serial. It's pretty much ended up being like the Propeller demo board actually. I ordered all the various bits and they arrived a couple of days ago. Being an idiot I ordered a male rather than a female serial connector, so currently I have to use the serial cable I had for use with a picaxe chip which would be fine but it lacks a reset line. So I've had to setup a reset switch that I have to hit at exactly the right time when trying to download a program to the Propeller which is a bit of a pain but it's doable. Here's a few pictures of what I've currently got setup: Currently it doesn't do all that much, I've got it to talk to the computer and blink an LED next I've got to solder up a composite video connector and see if I can get something on my TV. It's all a bit of a mess of wires and breadboards atm but it works [grin].
  11. Well due to my continual slacking I haven't really done that much since I last posted here [smile]. I've had a go at making a journal template which I don't think looks too bad. I'll probably change it sometime soon though. I tried out the Rome: Total War demo today, it's pretty good fun. It looks good and creates a good atmosphere. When you zoom into battles you can hear the clang of metal on metal, arrows flying overhead, men shouting orders etc, kinda makes me wish I had 5.1 surround sound. The game is also rediculously easy on the medium difficulty setting, though there were 4 or 5 settings higher than that, prehaps I should take it up a notch or two and try again. I've also just about finished the first version of a little app I've been (slowly) working on. I currently working on a mod and hence I need to do a fair bit of transfering files mainly between me and a friend, who's the leader of this mod. I normally use the file transfer on MSN for this, but I've started using GAIM for my IM client and it doesn't seem to like either sending or receiving files. We tried using DCC on IRC but that keeps failing for some reason, probably to do with my router setup. Anyway I decided to create a small app (called file thrower) using C# and windows forms for doing quick p2p file transfers. When connecting to another persons computer to do a file tranfer you need their IP, so this program can first connect to an IRC server then perform a WHOIS lookup on a given nickname and grab their IP from that and then connect to their machine, just makes things a little easier. I've got a wanted feature list for it which I guess I should start working through at some time. There's a screenshot of it below: Another thing I've done recently for Valandil (the mod I'm working on) is set up a Wiki. They're incredibly useful for team projects as they can serve as a main repository for all your documentation where anyone on the team can view it, make contributions etc. We're also using our Wiki to handle things like release schedules so we can see what we need to get done for a given release, who needs to do it, when things are going to be ready, report bugs with different releases etc. Below is a picture of another thing I've been playing around with recently. It's my attempt at creating a full-screen glow effect which currently looks rather bad (and my 2-minutes-in-blender test model probably doesn't help either). I've got everything setup right I just need to adjust the blur until it looks just right. Oh and I got my AS-Level results recently (exams you take when you're 17 in the UK). I got a B in human biology, an A in physics, an A in chemistry and a couple of As in maths (counts as two as I'm doing maths and futher maths). So I was pretty pleased with them [grin] I just hope I can keep it up through my A-Levels.
  12. Monder

    Going away for a while

    Well If you need a decent pub while you're in Cambridge I'd recomend The Castle. I would attempt to meet up with you (if you're not going to be spending the entire time in the MS research building anyway) but I'm heading home tomorrow. To get to The Castle take a right out of the west cambridge site along Madingley road towards the city. Walk along that road for a fair while until you reach a crossroads, on your right will be a road which leads into the town and a bridge that crosses the river (There's another good pub down there called the pickerel) on your left will be a road that leads up a hill and there's a church on the corner. Go up this road a short way and The Castle is on your right.
  13. Monder

    Direct3D 10

    Quote:thus it's probably of interest to you guys that there may well be a resolution to this sometime soon I'm guessing such a solution would be in the form of a special reference device that can run on XP? You'd need support of the new Vista driver model to actually use D3D10 hardware on XP, but I don't see any reason why you couldn't have a reference device if you made a few tweaks/hacks under the hood. Either that or they're bringing out a public beta of Vista, I have read various things saying they're planning on doing so and given their history with the VS CTPs and the WinFX CTP it doesn't seem that unlikely.
  14. Monder

    And now for something completely irrelevant

    I'm pretty sure the Bugatti Veyron 16.4 is the fastest street legal car available.
  15. Monder

    Clowns will melt at 27 degrees

    Well after a little Googling I found this which mentions several different ideas as to what the basic plots are and how many there are. I'd say the basic ideas are not directly related to the genre so you could conceivably come up with a list of basic game ideas which every game could be said to be derived from that isn't a list of genres. [edit]After thinking about it some more I guess the list would contain genres but I think it would also contain other things, though I can't actually think of any concrete examples atm[/edit]
  16. Monder

    Clowns will melt at 27 degrees

    Well there is a theory that all stories/plots etc are basically one of several categories (I remember there being 19) or a combination of them. I wonder if you can come up with a similar set of basic games that all other games are either copies of or combinations of?
  17. Monder

    D3D 10

    Well the December 2005 update to the DX SDK came out a few days ago, and you're probably aware it came with a preview of D3D 10 which will run on Vista using the reference device (no actual hw is available yet unfortunately). D3D 10 is quite a big change from D3D 9, the entire API has been revamped. Here's an image of the pipeline in D3D 10 taken from the docs (note that the fixed function pipeline has been eliminated in D3D 10). The rounded boxes indicate programmable stages. IMO the most notable things on this diagram are the geometry shader, the stream output stage and the memory resources block. Lets examine these things in turn. The memory resources block In D3D 10 memory has become unified, you basically have two resource types, buffers and textures (there are several different types of textures) and these resources can be accessed by any shader. Buffers are generally used for vertex data and index data. You also have a new concept called constant buffers. These are, as the name suggests, buffers of constant data which replace constant registers as used in D3D 9 shaders. An interesting addition to textures is texture arrays. That is in a shader you can access an array of textures (the textures in an array must be homogeneous, that is they share the same format, resolution and number of mip levels) indexed by an integer. Resources are accessed by the hardware using views. A view describes the way in which the hardware sees the resource and it is the resource view that you bind to the pipeline. The geometry shader A geometry shader works on per-primitive data instead of per-vertex data as in the vertex shader. It receives the data for a full primitive in it's inputs and can then add vertex data to a stream which is then ouput. Thus you can create new geometry or block a primitive from being rasterized using a geometry shader. The stream output stage This allows you to write data from a geometry shader back into a buffer resource without rasterizing the data. You can then read this data back into the pipeline in another rendering pass or use what is known as a staging resource to read this data back to the cpu. This has applications in things like GPU particle systems and physics. You can update the system using a vertex and geometry shader in one pass writing the resulting data back out to a buffer using the stream output stage and then render in the next pass. Another notable thing not indicated on the diagram is that there is now a unified shader core and an unlimited instruction length in shaders, also shaders are now written in HLSL only. The unified shader core means all shaders can perform the same operations though there are certain instructions that only make sense in a particular shader stage (e.g. Operations on a geometry stream in a geometry shader and discarding a pixel in the pixel shader stage). Shader semantics have also altered. Now instead of having a fixed set on constant semantics you can name them whatever you want (the names are given in the input layout for a buffer, the D3D 10 equivalent of vertex declarations). There is a set of semantics known as system values that have a special meaning. Some of these system values give per vertex and per primitive data that identifies a vertex or primitive to a vertex or geometry shader these identifiers are just sequential numbers generated at the input assembler stage (i.e. The first vertex is numbered 0, the second 1, the primitives are numbered in a similar way). Others allow you to set the index of the render target something is rendered to, and others are the equivalent of semantics in D3D 9 (the SV_Position semantic is the equivalent of POSITION and the SV_Target semantic is the equivalent of COLOR). Shaders also now have an integer data type and allow bitwise operations on integers. Textures are handled differently in D3D 10 shaders compared to D3D 9. A sampler is now a single object that is not bound to any particular texture. The sampler object describes things like how to filter the texture. You then sample a texture giving texture coordinates and a sampler object. The syntax used has also changed. Textures are know treated as templated objects. Which works like this: Texture2D tex; sampler samp; ... tex.Sample(samp, TexCoord); There's still a lot more to D3D 10 but hopefully the above has given you a sample of the new things found in D3D 10, if you want to learn more I refer you to the D3D 10 docs, and these two articles written by Jack Hoxely (jollyjeffers) Beginning Direct3D 10 programming and An Overview of Microsoft's Direct3D 10 API.
  18. Monder


    Quote:A demo showcasing Bezier surfaces, hopefully with, when needed, a virtually infinite level of detail. Just remember there's a hard limit on how much geometry a geometry shader can emit, IIRC it's 1024 verts. Quote:A demo doing really souped up shadow mapping using D3D10 features such as a single pass cubemap One of the samples demonstrates a way to do this. It basically just makes six copies of all the tris in the geometry shader transforms each of them using one of six camera matrices and then sets the SV_RenderTargetArrayIndex semantic appropiately so it gets rendered to the right cube-map face. I wonder if you'd get a performance increase if you did some frustum culling in the GS and just render triangles to cube-map faces they'll actually appear on. I would guess not as the hardware can probably clip and cull quicker than code in a GS but you never know. Quote:-A demo showing a game where all of the logic is calculated in the shaders (i.e. only inputs and time increments are sent into the tech logic) There's a sample where they do a particle system entirely on the GPU. The features of D3D10 certainly allow more GPGPU stuff. You could actually do a full dynamic particle system on the GPU using SM3, you had textures which held the state of the system and a pixel shader which updated them. You then did a texture read in a vertex shader to get position info and transform vertices acordingly.
  19. Monder


    Yeah that's looking real nice now. Are all those controls included with WinForms in .Net 2.0 or have you got some custom/3rd party stuff in there?
  20. Monder

    Ramblings on programming

    Recently I've been thinking about visual programming languages, or rather how to get away from doing programming using just a load of plain text files. Computers are all about abstraction, you can take a computer at look at it from many levels of abstraction, right now I'm typing in open office which is an abstraction, it allows you to concentrate on composing your document without worrying about the details of how your keyboard works, how to display your document to the screen, how to store it in memory etc. Indeed if I had to worry about all these things I'd never actually be able to write a document using my computer it'd just be too complicated. Yesterday I was at a lecture which was about basic computer architecture. We were looking at a computer at a level where it's a collection of hardware devices, a processor, memory etc that we can control using machine code. Sometimes you have to think of a computer like this (such as when you're writing a compiler, an operating system or a device driver) and sometimes you have to think of it as a glorified typewriter (such as when you're writing a document) thinking about a computer as a glorified typewriter while you write an operating system on the other hand just doesn't work. You have to match what you're trying to do to the correct level of abstraction (or indeed to several levels of abstraction). We use abstraction in programming as well, APIs such as OpenGL and DirectX allow us to specify polygonal data, states and shader programs without needing to worry about or know about how the underlying hardware actually works. We create new abstractions using constructs such as classes in C++ (e.g. We might abstract an API like DirectX using a class so we can think about rendering in terms of specifying materials and meshes, instead of polygonal data, states and shader programs). Abstraction is a very important concept without it we just wouldn't be able to use computers (just imagine having to think about the quantum behavior of a single transistor in your CPU when you want to write pong). In electronics you have components such as transistors, capacitors, resistors, integrated circuits etc. All of these are 'black boxes' you know their inputs, their outputs and how they behave, but you don't actually know how they work (or at least you don't have to know how they work in order to use them), they abstract away the details and allow you to concentrate on your circuit. When you're designing a complex piece of hardware you're going to design it as several different levels of abstraction, you're going to have an overall block diagram showing how high-level systems connect to cover, for each high-level system you're going to have further block diagrams. At some point you're going to have a circuit diagram, if you're making an integrated circuit you'll eventually have a diagram showing exactly how every transistor is implemented and connected in to the entire system. You're designing at several different levels and which level you're designing at depends upon the task you want to accomplish. Now if you take a look at the source code of a program, all you get is text, the text defines the entire program and when you're working on the program you're going to be working with text. I think the process of creating a program should be more like creating a piece of hardware where you have many levels you can look at the system and alter the design on. Currently with program design you may well draw UML diagrams etc to aid in the design but once that's done you translate your diagrams to textual code (either manually or have some tool do it for you) and that's that. I propose that all the diagrams you might draw in the design stage should be coupled far more tightly to the actual program. So you could look at a diagram showing how all the systems in your program are connected together and rearrange it however you want and that change would automatically be reflected in the actual program. Going back to electronics if you draw a block diagram of a system you may well have the blocks representing specific ICs you're going to have in your circuit and lines connecting them to show how they communicate with one another and these lines can directly translate to wires within the circuit connecting the pins of different ICs together, that is the abstract design I draw trivially converts to the implementation. Now back to programming, lets say I'm drawing a diagram of the design of my new super-duper next gen engine. I may draw a line between the block marked 'scene graph' and the one marked 'renderer' and then I could write something next to the line such as 'scene graph sends potentially visible objects to graphics queue' however this line and sentence does not trivially convert to the implementation. Now imagine I have in the block marked 'scene graph' a bunch of fields (basically a load of names separated by lines) one of which is 'visible objects' and in the renderer block I have a field marked 'render queue' I could now draw a line between visible objects and render queue to symbolise that the visible objects are moved to the render queue and this could be trivially mapped to the implementation (OK it's pretty much exactly the same as just writing a sentence next to the line, however it's far easier for a computer to interpret and for a human to see at a glance what's going on) as I'm basically saying move data from here to here. What you need to do is define the fields correctly as well as a way to transfer data. Think of a programming environment where you build programs using blocks like I described as above, you could use them recursively, that is you could have a single block at one level that is defined using many blocks on another level. The blocks would all have inputs and outputs (like the fields mentioned above) that could be connected to represent data transfer between blocks. Also I wouldn't remove actual textual code this would be seen as the lowest level to implement a block in. I would however get rids of text files, the program would be stored in a format appropriate to the way we're representing the programs (probably some kind of complex graph). This kind of approach is interesting for multi-threaded programming as well. Seeing as the program wouldn't actually define a strict execution order a scheduler would be free to run the code for blocks whenever it is deemed appropriate so you could have several blocks executing in parallel, the connections and data transfers between the blocks are explicit and as such the scheduler could take them into account to avoid concurrency problems. I've been thinking quite a bit about this over the past few days and I'm constantly coming up for conflicting arguments for ways to do various things and as such the above text is probably pretty confused though hopefully you can get the basic idea of what I'm getting at. I may start playing round with actually creating a programming environment like I described above during the Christmas holidays to see if I can actually get anywhere with it. Oh and if you've actually read this entire thing could you leave a comment telling me what you think even if it's just a single word, thanks. [smile]
  21. Monder

    Ramblings on programming

    Indeed I know there are products out there that implement programming a purely visual way, what I'm saying is we should take a more hybrid approach. I probably should have made this more explicit but the system I'm thinking about would involve a fair amount of what would be seen as 'normal' programming. However the visual element of design would be coupled far more tightly to the actual program code than it currently is (i.e. today the most coupling you're likely to get is automatically generating class definitions from something like a UML diagram).
  22. Monder

    Ward Reflection Model

    Yeah I would like something a bit more academic, Advanced Lighting and Materials looks interesting.
  23. Monder

    Ward Reflection Model

    What's the title of the shader book you mentioned a while back where you've been reading about all these lighting models? I'm rather interested in lighting models rather than the 'standard' blinn-phong one.
  24. Monder

    Civ 4

    I've had no trouble telling what's what in civ4. The 3D doesn't really add anything to it, but then for me it doesn't take anything away either. My two main problems with civ atm are it's performance and it's stability, when I'm playing a game on a huge map it can stutter quite a bit later in the game, now I know there's a lot of stuff on the map but I would've thought my machine (AMD 64 3000+, 1gb ram, GF 6600 128mb) could handle it as the graphics aren't that high-powered. I've also had it crash and freeze on me a fair few times. Hopefully a patch will be released that'll clear these issues up.
  25. Monder


    You could invite 4 friends over and play Rag Doll Kung-fu which is available through steam.
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!