Well let me start by saying that this is addressing the newbies who may be wondering – “How do I go about making a game?”
I will try my best to layout out a path that you could follow that just may help you get there.
First and foremost learn how to code/program in a compiled language, this is important because with out that there is no (real) game.
Software needed: (A Compiler)
1) Visual Studios by Microsoft (you can get a C++ compiler for 99 dollars)
or
[Borland C++ Complier](http://www.borland.com/products/downloads/download_cbuilder.html) which is Free
Thats about all the software your gonna need for your code.
Preferably the language of choice these days still is C++, and of course there is Darkbasic, VB, C#, JAVA, etc, etc, but C++ is viewed as the industry standard. Building a game engine with OOP principals in mind will save you stress and aggrevation later and C++ has been the standard for years.
If you are new to programming then prepare to spend at least 4 to 6 mos getting familar with the concept of coding in a modular fashion then graduating on to OOP practices which for some is truly life long learning
.
During this process it is important that you take your time and learn the language. Do not make the mistake of getting excited about making a game and skipping sections of the language because you are a little savier then “Hello World”. C++ is vast, and your gonna need to know all of the libraries and tools available in it to help you later on in your travels. Trust me on this…if you skip sections you will be back later studing the language again and again.
Now that we know a little C++, its time to start learning how to function within the enviornment our game is going to run in. For Win / PC users this would be Windows of course. Windows programming by itself can be difficult if your creating windowed applications and such with C++ ( thank god for Visual Basic or C# for that matter).
But for game developlement its pretty straightforward, most of the tutorials and books that I list for you at the end will feature how to create a small shell that will allow your game to cooperate within the windows enviornment. The less windows code the better.
After you start to feel comfortable with C++ & programming in general then its time to start looking at the available API’s which is short for (Application Program Interface). These are libraries with routines and code blocks that allow you to access video data, network cards, sound cards and whatever the developers decieded to include to make the developement process easiser. Some API’s are better than others in the areas of graphics programming but its more of a personal debate and taste.
If your new and starting out fresh then Id suggest starting out learning OpenGL / SDL or GLUT. These particular API’s are very clean and more or less straightfoward. Being that they are mainly graphic API’s only, there are no sound or networking libraries that comes with it them. But thats not a bad thing, graphics programming is tough enough as it is.
But IMHO the advantage here is that you need to focus mainly on the graphics side of things first because that is how we are going to see that new block buster you have in your head.
Now if you want to add sound, networking etc… there are some cool modules like FMOD and things like window sockets etc that you could learn and add later…should be easy cause your a programmer now…right?
Once you are comfortable with programming with one API then it shouldnt be that difficult to switch to another API. Of course then it requires learning some new naming schemes but most graphic pipelines are pretty similar.
After learning Opengl then you should be ready for something like DirectX, (it doesnt hurt to be bi-lingual when it comes to graphic API’s).
The reason why I suggest learning Opengl first is because to the newbie it will make total sense. DirectX is not a pretty API to look at it and can seem very confusing at first and takes a while to get the hang of if your just starting out and never been exposed to M$ style hungarian notation, function pointers, SUPER_LONG_OBJECT_NAMES and others things that just well…makes M$ special.
Opengl will get you up and going in no time and if and when you switch to DirectX it will make much more sense. Like I said before, the graphic pipelines are similar and you will find yourself saying “Why in the hell are they doing it like this?” or you just might be as crazy as they are and say “…Ahh, I see…thats pretty cool!”. Dont get me wrong I love DirectX, it just took Opengl to get me over the hump.
Here is a little biased info about DirectX, it is hands down the API of the day. It has everything that you need to complete a game from start to finish, sound, graphics, networking, you name it its there. Basically it lives up to the term “SDK”.
Now dont let that tempt you, you can still create a complete game in Opengl (lets see quake was made with it and slew of others).
Just remember this is a gradual climb here, if you want to be successful and not get discouraged…take it slow, FOCUS on graphics programming…its the theory your gonna need at the start so use an API that will make it easy for you. In the end no matter what API your using its all realitive.
Onward - another important factor is MATH, God knows I hated math…you see I said I hated it. Math is the key to game programming, with out it there are no bullets, bombs, explosions, flying …nothing. I would suggest boning up to at least Algebra2/trig and advancing as you go fourth, believe me you will have the desire to.
If your math is not that good dont worry because math for games is cool as ICE. I will post some resources to ease the pain at the end.
Let's recap for second:
1. Learn a language (C++)
2. Learn Windows programming
3. Pick an API (Opengl / DirectX)
3. Brush up on the math
"Um ok how do I make a game?" ....
Well if you followed the path I laid out then your proably at the point to where you can either put some graphics on the screen now and play some sound effects etc, etc.
Now we can talk about making a game. (I love this part)....
DESIGN DOCUMENT – We went through all that to get to this. This is how you make your game. Learn how to create a design document, this will guide through the process and help you stay on the path. With out the above knowledge then this part is useless unless this is all you want to do and you just end up passing it off to another coder (Usually these guys are called game designers).
Depending on your resources and books you aquire there will always be a section on Design docs so your covered there.
Some key tips — Try to create games that you play. It may sound funny but its true, if your not a RPG guy then dont try and make a RPG. If your not a sports person then dont try and make a sports game. Design and program the type of games you like to play.
Why?, because the process of creating a game takes a loooong time especially if your what the industry calls a ‘Lone Wolf’ (basically a garage coder, a loner, a indy, etc). So belive me through out that process you want to be working on something that you will enjoy.
Plus, you know the genre and it will be easy for you to create the design doc and make it a fun game and hopefully better too.
You still with me?...Ok, I know this seems like a lot and it is really. But people are asking and want to know.
Game programming is a Science make no mistake about it, Graphics, Sound, Artificial Intelligence, Networking, Scripting, Math, 3D therory, its no joke and requires patience and a sharp mind. But guess what? You can do it.
No matter what just set realistic and obtainable goals for yourself and you will be successful, make sure your foundation is solid as a rock (all those things and more I listed above) your gonna need it every step of the way.
Book and Website recommendations:
[Game programming all in one](http://www.amazon.com/exec/obidos/ASIN/1931841233/qid%3D1055968406/sr%3D11-1/ref%3Dsr%5F11%5F1/103-9991329-8956619) This book will take you from a wet noob to a bonified intermediate newbie. Very good book if your just starting out.
[Tricks of the game programming guru's](http://www.amazon.com/exec/obidos/tg/detail/-/0672323699/ref=pd_sim_books_5/103-9991329-8956619?v=glance&s=books) This is another good book for newbies. The author of this book is both loved and hated in the game programming world but I recommend it for newbies.
[Programming Role playing games by Jim Adams, for when you get to the intermidiate level (Excellent)](http://www.amazon.com/exec/obidos/tg/detail/-/1931841098/ref=pd_sim_books_1/103-9991329-8956619?v=glance&s=books)
[Swords and Circuity, this book is setting the standard for designing games. If you want to know how to design then I highly suggest this book.](http://www.amazon.com/exec/obidos/tg/detail/-/0761532994/ref=pd_sim_books_3/103-9991329-8956619?v=glance&s=books)
[OpenGL game programming. This book will teach you opengl and graphics programming from the ground up. The end project is actually a 3D shooter game like tribes...very cool.](http://www.amazon.com/exec/obidos/ASIN/0761533303/qid=1055971001/sr=2-1/ref=sr_2_1/103-9991329-8956619)
[3D math primer ( COOL MATH) Great book](http://www.amazon.com/exec/obidos/tg/detail/-/1556229119/qid=1055972459/sr=1-1/ref=sr_1_1/103-9991329-8956619?v=glance&s=books)
Websites:
For all you newbies out there this is where I recommend you start.
[Game tutorials DOT com](http://www.gametutorials.com/) The guy who runs this site is awesome and works in the game industry. His tutorials are opengl based and very easy to follow. (Highly Recommended) START HERE.
[GameDev.net (The authority on all things concerning Game development) nuff said](http://www.gamedev.net)
[Game Institute (Learn game programming online learn from the professionals)](https://www.gameinstitute.com/gi/)
[Gameversity (Another online programming school that covers everything I talked about and more)](http://www.gameversity.com/)
Disclaimer:
I myself am a ‘Lone Wolf’ and I have travelled the road that some of you are about to embark on. I just wanted to share with you what wasnt shared with me years ago.
Hopefully this will shed a little light into that dark void of game programming that is staring you in the face. Game programming has and will always be a “DARK ART”.
My suggestions are just that suggestions. But I truly hope they help you. Good luck and from one Lone Wolf to another…Im glad to see your answering the call.

