What all does one need to know to start game programming?
Hi, I am not a game programmer myself (even though I would like to!) but I think one thing is very important (not language specific): You have to know your way around with the language you chose. I don't say it because I think you don't know this but I saw several people in my school saying "Ohh well, I want to code a graphic engine, 20times faster then the one used in HALF-LIFE. What do I have to do?" And even though you know your way in programming, you should get yourself familiar with graphic programming (no matter whether 2D or 3D or 4D :D ) and know about things like collision detection, probably grids, screen updating (was my problem for some time, thank you Bogdan!), how to tackle different screen resolutions, etc pp. Next thing you should know about programming games is how games work, e.g the different loops in games (TURN BASED, REALTIME, any others?), the use of timers for input and so on (believe me, I saw a game some time ago without any timer, so on my P150 it was okay and on the Duron700 it was a total mess) and which fits your game best. Getting somewhat further you should know how to work with sounds and how to get several sounds at the same time (my problem now!!") and maybe how to set the possibility for setup of the game with graphic settings, sound settings, input devices. For the half-advanced :D you can tackle multiplayer facilites and there again you have to know the differences between the Network protocols and the way you want the network version to work. For the advanced you can add AI (Artificial Intelligence, TERMINATOR calling??) for computer enemies and you can improve game speed by debugging code, speeding up algos and so on. To make your game more interesting add the possibility of changing levels meaning more enemies, less time, more complexity of the level (for logical thinking games), higher speed, less room to act,...... NOTE: The most important thing about programming things is to have a place where you can ask people about problems and to have a place where to get more resources. The first one you can find here Win32ASM Board :cool: :P Hope this helps. Stefan This message was edited by Stefan Krause, on 5/12/2001 9:38:53 AM
If you want to learn to write games and your starting from scratch then go 2d for a while. You can only learn by trial and error so you have to select a game that would be fun, and then you have to write the engine. A good start would be something like asteroids, or Tetris. There’s a lot more in those games than you could probably imagine. For example if you chose asteroids then simply getting then ship to respond correctly would require a lot of work. As for the great OpenGL or DirectX debate you need first to decide what type of game; if 2d then DirectX, if 3d then OpenGL or Direct3D. I wouldn’t worry about new windows not supporting OpenGL; so many new games are still being written in OpenGL solely that it will have to be supported. Also but OpenGL and DirectX are fully accessible from ASM, check out the Bizarre Creations website and you’ll find all you need. Also stick to windows GDI routines for a while, they’ll allow you to test out early ideas.
Hmmm Stefan talks so nice... ;) i will totally stand behind him ;) I will disagree with Disease_2000 ... lol doinga a full BIG ganme in ASM on win32 is very easy nowdays ;) check my game for a demo ;) directX is much easy and somehow much faster to use in ASM then in VC++ ... but i will not start a ASM vs C++ flame here... for understanding basic games concepts i think that Chriss Hobbs example of Tetris clone in ASM on Gamedev.net is a very good tutorial... (search gamedev for win32asm keyword) But Stefan has said pretty much all about the general picture... what i can add is that doing games..i mean realtime hard games like RTS, FPS, or simulators i one of the hardest jobs on programming ever... so "SMALL STEPS...SMALL STEPS..." also knowlege about the way hardware is build and intimate OS works will sure help in late optimizations...you have to dream the world as a MATRIX also ... :D waiting for your more specific questions...
ok so i am a complete newbie to all this graphic programming which u guys talked abt? Should begin with learning 2d programming in DOS first or should i start off with the tutorial Bogdan has pointed me to? Also is learning to program 2d in DOS helpful? I mean its no longr used. and i dont want to start off a troll here but Should i at all learn making games for DOS? also can you guys point me to an appropiate site to begin with? I saw the bizzarecreations site and couldnt make a hell ouuta the source! This message was edited by MovingFulcrum, on 5/13/2001 2:25:43 PM
Oh well, what does one need to know? I think most of it has been said.. I just want to add that you definitively need patience - and a lot of it! Oh.. nonsense... more than twice that much!.. maybe even more. It just doesn't seem to get to an end programming it :( It's not like adding a new button to an application... *I should have known that before I started ;)* Oh.. well.. in Bogdan's words... "Small steps"
I've seen your question a little bit late:
Also is learning to program 2d in DOS helpful? I mean its no longr used. and i dont want to start off a troll here but Should i at all learn making games for DOS?Yup.. I would forget about dos... most people nowadays don't even know anymore what dos is :( (of course this is only my opinion)
Hmmm I belive that knowledge is the meaning of life, even if is technological/science outside and Zen Inside ;) So knowing something is NEVER a bad thing, makeing DOS games may be "not economically viable" today but learning from such examples sure is a valuable source of information, I will never forget DOS, Amiga, Atari, ZxSpectrum, CP/M, GeOS, GEM, etc ALL those OS's i have ever used,seen,created or heard about, finally i whould like to know them all in detail, i am however constient it may be impossible :D in my small life...maybe another? :( I you want to make a comercial game...sure thing make it in Windows(c)(tm)... today this is the market...tomorow who knows? so dont get attached by a certain OS ... try to understand basic concepts, algorithms this info/knowledge will last longer then most OSes will :) so in this line of learning, sure, 2D is ok (and required IMHO) because most of today games are based on some 2D techniques (even if they dont know it, because modern video boards do the job of texture maping for them ;)... or FSAA for a latest pure 2D example) and a good understanding of 2D opens the gate to the 3D world. Besides there are great tutorials about Gfx in DOS even with sources (watter,wind,fire,zoom, texture maping, 3D systems etc) so after you will understand them you sure can make them work in the wonder world of WIN32ASM :) So:Ignore nothing when you want to learn, choose carefully (from what you know) when you want to win lots of money ... if ever
Thanx ppl. I do appreciate ur response but now i am a bit confused. U HAVE pinted me to a nice site, but i dont know where to begin and what to begin with? Shold it be 2d programming or 3d programming or DirectX or OpenGl? Also which is easier to learn OpenGL or Direct3d?