Game Programming Guide For The Newbie


#1

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 :slight_smile: .

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.


#2

another book i’d recomend to the aspiring game designer is “Game: Architecture and design” by Andrew rollings and Dave Morris, published by Coriolis

find it at Amazon


#3

I’ve just looked at that book on amazon - except i looked at the UK site aswell - there they are advertising a new edition which (if anyone was serious about this book) - might want to wait out for… (for release 30th september 03)

just thought i’d add that to the previous post. (New Edition)

looks like a good book :slight_smile:


#4

If you really want to become a professional all the above mentioned books and software is a great but if you’d rather just make games I’d suggest one of the following.

3D Game Studios: This is actually a nice tool because you can make levels and import characters quickly and they even support c-script which is something like javascript. I think they also support c++. Anyway there are some game examples and such on the site
http://www.conitec.com


#5

Oh, and i didn’t actually say this in my last post… duh…

That little insight into the whole process is awesome, thank’s a lot for that… I think so much about what you said has just clicked into place… Some of the decent links you’ve put there has/will have saved a lot of searching too .

So yeah, thanks for the time to write it all down so clearly and concisely, it all makes a little more sence now.

Thom :slight_smile:


#6

I also wanna say for the real n00b who doesnt know a thing about programming (aka: me!) RPG Maker is a great way to start out. It is simple and will get you used to programming aspect a little.:thumbsup:


#7

There´s also www.gameprogramming.org , they got FREE courses over there but the admission exams are hard. Lots of math! Quite difficult.


#8

If anyone needs advice on games programming - feel free to ask me!:beer:


#9

Anybody else have any experience with the gameprogramming.org program??? I’m debating whether it’s worth trying to dig out and dust off my college calculus book to take the entrance exam. Man, it’s been quite a few years since I’ve used that book!!!

:curious:


#10

Great guide! thx for the tips and info, im actually studing 3Dstudio and OpenGL (for portability), and this guide just showed me im on th right track. :slight_smile:

Thanks again and thanks to all the ones that contributed in this thread :buttrock:


#11

I’m currently studying digital animation and mel scripting (Maya language) but OpenGl and DirectX API’s have always facinated me. It’s like everytime I hear a graphic whiz spounting off I just want to whip out a magic straw and suck the knowledge out of his brain.

I only ever made it to the introductory Calculus in university. I know this isn’t enough but man I doen’t like math very much. Tell me honestly, does the math get cooler?

AI programming would be so cool. But, alas, I must learn one thing at a time.

Thanks for the clear, concise, help. You’ve inspired me to look more seriously at learning games coding.

Cheers,
Kiaran


#12

Heyza Kid Mesh,

Ive always wanted to learn how to make program games a long time ago, i gonna do a study of it as well as soon as I get this diploma. Thanks allot it makes a bit more sense now thanks to this explanation of your, thanks allot man, means a great deal ! Good luck 2 you !:applause: :surprised :drool:


#13

Originally posted by Razor Blade
I also wanna say for the real n00b who doesnt know a thing about programming (aka: me!) RPG Maker is a great way to start out. It is simple and will get you used to programming aspect a little.:thumbsup:

Do you know if you can import your own geometry, textures and animation cycles w/ RPG Maker?

s


#14

im sorry bout this but I already tried the opengl site, I have bought 2 of the books you recommended, but I cant find the opengl sourcecode or whatever it is I need to work with on there site. Could you help me with findin these please ? Thanks in advance …


#15

Re: Jamaludin.

I remember when I tried my hand at OpenGL programming - as far as I can remember, GameDev.net had a tutorial…I’ll have a look when I get a moment.:thumbsup:


#16

“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.”

By “modular fashion”, do you mean learning C programming and then moving on to C++?

S


#17

Originally posted by Ajaciedwt
There´s also www.gameprogramming.org , they got FREE courses over there but the admission exams are hard. Lots of math! Quite difficult.

Ajaciedwt, have you been able to enroll or even download the entrance exam?

S


#18

Re: Dunkel3D.

Right - lets start by keeping things simple…

First, learn C.

…feel confident in making the choice in learning this language. Don’t worry about big words such as “modular” or “Object-Oriented-Programming”…you’ll come across them all in good time!

Jump to it!:wise:


#19

3D Game Studios: This is actually a nice tool because you can make levels and import characters quickly and they even support c-script which is something like javascript. I think they also support c++. Anyway there are some game examples and such on the site

YES 3D game studio is a great place to start i’ve been using it one year now and it’s very good learning tool as well as a development tool

writing lightwave plugin with what i’ve learnt

also alittle beta game done in just over a month at the bottom

and I’ll be releasing a full game at the end of the year with it also :slight_smile:


#20

Thanks for posting the sites, books and additional information, I do have a book to recommend and I am by no means a promoter of the product or company but I have been using the 3D Game Programming All in One by Kenneth C. Finney it’s by the same guy who created Game Programming all in one, this book goes into everything and I have devoted myself to hermit myself and get it done, also it has a demo for the tutorials of using the game engine which is the Torque Game Engine which is really affordable a $100 bucks US Dollar and if you want the license and royalty free to sell your games then it’s only $500 bucks a wide range of 3D programs can be used the create your games and import them into the engine it’s great, developing for PC games, now here’s a brigeing factor I just purchased a PS 2 Linux development kit to help you get fimiliar with creating games for platforms, Linux is a pain , but you can get threw it if you really want to get it done, I’ve also found either a Java engine or scripting thing (I’m not sure as to what it is, because I haven’t had time to mess around with it, but it can help you develop 2D games) also if you want to create games like street fighter there’s a game engine called MUGEN to create 2D fighting games, because I scowered the earth to find information on this, and I had to share it with you guys, Thanks for posting the info, I will look into the information given while I’m still dealing with this book