To be a skillful game programmer, what kinds of programming will I need to learn?
Thank you for your valuable advice.
01-24-2005, 11:30 AM
er...I would recommend learning C++ as this is one of the widest used programming languages for game programming.
You might also want to try game maker - http://www.game-maker.nl/
01-24-2005, 12:41 PM
Some useful links:
01-25-2005, 03:04 AM
Definitely C++, objected oriented design can be a great help once games start to get really big. Also you will eventually want to, or need to, learn Assembly. Being able to replace something with faster low level code is beneficial on something that could otherwise create a bottleneck....and game programming is all about performance.
Check out the the sticky thread at the top of this forum, I have listed quite a few sites that deal with game programming.
01-28-2005, 01:29 PM
well, first u should be clear, what kind of game programming exactly u want to do.
do u want to code a really high end game using DirectX,OpenGL, or u just want to code for some fun and to learn as a suppl.
if u go for the first one, u have to be through with the concepts of graphics and how u manage animation and graphical input response in windows(?).
instead , if u go for the other one, i advice , choose the fun way.
i started my c programming with graphics. its very interesting and u get a lot to learn.
start building small grapics apps. and then move on to better animated ones.
afterwards, u'll hav to handle keystrokes, viewports, multiple animated motion...
foremost u need to hav interest( which is hard not to have in this field )
01-28-2005, 06:53 PM
Well, I would recommend the following: First you will probably need to learn C++ as a foundation for DirectX. Then, pick up a copy "Programming Roll-Playing Games with DirectX" by Jim Adams, Second Edition. Even if you don't want to learn how to program roll-playing games, this book is the best learning tool I have found and it has given me the knowledge to create my own games. Also, another great book for just graphics is: "The Zen of Direct3D Game Programming" by Peter Walsh.
01-28-2005, 07:49 PM
Well, as of late there's been a change in the gaming industry. Blizzard, for example, have constructed their own high-level language for the non-performance-critical parts of the games. The weakening king of the hill, C, is more and more abandoned for C++. There's been a number of Python based games as well. And of course, Flash/ActionScript and Shockwave are also used for quite a number of games today, mostly of the online variety. So, there's been some movement away from assembly* and C** to higher level languages for less critical parts of the games to speed up the development.
* DOS games were more often written in assembly than in C
** Took the throne when Windows games became more common sometime between Win95 and Win98. In the Win95 era most games were still DOS Protected Mode.
01-28-2005, 08:07 PM
I'd recommend going away from DirectX to OpenGL as it has more cross platform compatibility.
01-28-2005, 08:30 PM
I've used gamemaker( The real address to the site (http://gamemaker.nl)) for about three years. It allows you to get right to the designing of the game, without going into all the dirty dull steps in order to get a game to work in a "real language". While it isn't the path you'll want to take, fi your going into commercial gamemaking, it is really a nice tool, if you want to speed the process and make things easier on yourself. While many use the "drag and drop" features, it comes with a built in language which makes it very flexible. It's fun to use to.
However, I really have no right saying much about it in comparison to other languages, since I have no experience there. Maybe eventually, since I'm currently a computer science major :) If you want to see some games that can be made with gamemaker, check out; http://gamemakergames.com/ (seems to be having some DB troubles right now) There si alot of garbage there, but there are some hidden gems too. ;)
Haven't tried out gamemaker or any other tool, but if I were to make my own game Id make it myself. Its like when I use code/libarys others have written I just dont get the same feeling when the program is done.
01-29-2005, 04:12 AM
1) Don't ever use game maker
2) Don't use DirectX over OpenGL
3) C++ all the way.
1) Game maker is pathetic, it's obviously a brilliant idea because lots of newbs are sucked into it... I'm sure they make a nice wad out of it, but you really aren't going to learn anything from it.
2)I'd recommend going away from DirectX to OpenGL as it has more cross platform compatibility.
Be that as it may there are better reasons than that. In fact, that argument is usually thrown into the ring by those who actually have never programmed with either of them, nor anything even significant as most cases would probably turn to be. DirectX is hard to compare to OpenGL, well you can't. Direct3D and OpenGL, sure, but Dx and OGl definitely not. They both have their advantages, and support is good for both of them, especially following the release of Doom III wich was using the OpenGL API... In fact, developers of video hardware haven't taken much of a liking to Microsoft's anti competetive actions in this market and how it tries to force its wishes by using it vast corporate size, and well considering that a lot of the people who develop the API on the cards actually worked on creating OpenGL in the first place it really does seem to place Microsoft without a leg to stand on in some cases. I prefer OpenGL for its sheer speed, ease and of course its extendability.
3) As liorean has already discussed the movement towards other languages in game development there isn't much more to say. You can develop OpenGL based applications in nearly any language, DirectX on the other hand hasn't' been ported so widely.. Namely C/C++, C# and Java.
I actually don't recommend buying ANY books for a long while. First become proficient in the language you choose, and then rip apart open source games and learn the hard way by tinkering, use online tutorials... THEN get a book, it is easily the best way to learn.. You come out of it with a lot more knowledge and experience, you spend time pondering how something works and sometimes you just take it for granted that it just does until you find the explanation and by that time you know it inside out.