View Full Version : Newbie question - programming
11-20-2003, 09:09 PM
This may sound a bit ridiculous, but I'm currently looking for a course in programming. My objective is to become a programmer in the gaming industry.
I want to know the knowlege I must aquire in order to be a serious contender for a job in a gaming company. For example, I know that C++ is important, but that's all.
If you could help me sort this mess out, I'll be in order to choose the program that will fill my needs and aspirations.
Thanks a bunch !!
11-23-2003, 08:14 PM
Deleted text because I can't delete the postfor all ?
11-24-2003, 02:28 AM
Here's my 2 cents worth on a good way to get started...
It's a long description but maybe copy this and use as a rough guide.
1) I think the best way to get started is to buy a book called "Windows Games Programming For Dummies" or something similar. Start your search at www.amazon.com.
Read the reviews of the books before ordering but there's heaps of second hand books for sale that cover windows programming.
This book or a similar one needs to cover the handling of windows messaging, input of keys and mouse and drawing to the screen. If it focuses on GDI (windows built in drawing routines) then thats okay - the next book you buy after this will start you on Directx. It will also need to cover COM which is the interface you will use to handle most objects within Windows. Use this book as a primer and start making windows and buttons and dialogs. I expect depending on your free time this will keep you busy for a minimum of 2months.
2) From there get a book like "Advanced 3D Game Programming with DirectX 9.0" - at this stage you will want to get DirectX9 SDK.
I have the directX 8 version and this primarily focuses on how to get Windows to pump graphics to the screen. Half of the book is dedicated to this. It's better to use a book like this one to get familiar with the integration of DirectX and Windows that trawling through the DirectX SDK help - use the SDK help for finer points. Books like this will help you understand the SDK more.
3) Start small. When you are learning this stuff focus on making a game at the end of it but not a full blown action feature - just focus on making a revamp of space invaders for shoot-em-up experience or 3d pacman to get into the concepts required for first person shooters.
4) Feature creep - when you learn all this stuff (and you've probably heard this a million times) don't fall into the trap of feature creep (or scope creep). This is where you are programming your first 3d game and you get the ship moving and you think "hey! I could add some lateral thruster control to this baby and allow side-slipping, then I can add some really cool particles off the thrusters and then I can..." and in the meantime you have strayed so far from you're original plans you will never complete the game.
5) Plan everything. Start your game with a mind map. In the middle of blank piece of paper put a circle with the words MY GAME. Then start thinking about what it needs. Aliens? Okay make a circle to the left and put the word ALIENS in it. Then draw a line from the the ALIEN circle to the MY GAME circle. Then you have your first dependency, meaning to make your game it has to have aliens in it. Keep going until you have all the concepts and resources required for the game on a sheet of paper - if you need more paper your first game idea is too big - start over.
6) Write pseudocode for everything. Once you have your mind map done, get a new piece of paper for each circle and write down step by step in plain english what happens here. For the aliens write a list like this...
- Move the alien
- Check for collisions
- Find the player
- Shoot at player?
- Draw the alien.
Once you have done this for each item in a circle you then start programming... but each item then becomes a function. Some items such as the ALIEN circle become several functions.
7) Resources - art and sounds you will need heaps of depending on the size of your game. Collect these after you have designed your game but before you start programming. You can get loads of free 3d meshes from 3dcafe to get started - use your favourite 3d package to customise them. There are plenty of free sounds on the net too. Have all this stuff ready to go as you start programming the bit for that.
8) Learn about object orientation. This is C++'s strength and your ally. Start thinking in terms of OO and you'll make your programming task much easier. For example, from a general level every 3d object in your game will essentially be the same type of object. So you could start with a class like this...(dont be afraid)
float x,y,z; // position in space
float a,b,c; // rotation in space
All 3d objects will require this functionality. More complex objects will need more work, but if you manage to generate a whole pile of objects on screen using this class you are well on your way.
Not enough space to get into this more but get a book like "C++ for Dummies" to learn this sort of thing. Email me if you like for more help.
11-27-2003, 05:19 AM
What geosync is great. But what's most important is to start small. Cuz that'll be the only chance you get to start small. When you're a better programmer, you won't really feel like doing anything small, because that would be beneath you =p
Anyway, look to the net for tutorials and book recommendations. www.gamedev.net, www.flipcode.org are a couple of websites who have a strong community.
Contrary to what geosync might have said, the best way to start is to learn programming first. I'm not sure if Windows Programming for Dummies teaches C++ but the book is kinda thin, so I doubt it. Get a book on C/C++. You'll learn both anyway because lots of software libraries use C.
11-27-2003, 09:22 PM
Just quickly, http://www.gametutorials.com/
is great from start to finish ;)
and as mentioned before www.gamedev.net
11-27-2003, 09:41 PM
what is linear algebra?
11-28-2003, 12:24 AM
Firstly a great place to go for explanation of terms is...
Type in your programming term and hit the search button. This is also a good site to learn about terms in C++.
...and from there I found a link that does a fairly good job at explaining linear algebra...
As this thread is meant to teach others how to get into games dev / programming etc. shouldn't we be posting links and then explaining what to do next from there, as a sort of short introduction.
For example gamedev.net and flipcode.com are good links for tutorials but if you don't know what to look for getting sent there can be very frustrating.
I think to help others out at learning this stuff, get the link, navigate it a bit and find some tutes for others then post what you did there / where you went. This would be a more intuitive way for students to find a gentler way into learning to code from examples, by following what someone else did who knew what to look for - that's half the battle in the first place.
At the best of times, these sites are difficult to find what you are really looking for.
12-15-2003, 07:46 PM
well if your going to take courses.
Linear algebra(pre req is usualy calculus) & discreet mathematics
then a programming course c/java, then advanced data structures course.
then alot of self teaching......
.....you know i tried reading one of those dummies book once and....i couldnt understand it lol......
for c or java....deitel & deitel explain things pretty easily.
and one more thing you will loose a hell of alot of sleep
12-15-2003, 08:45 PM
omG... Linear Algebra.. *shivers*
that's like a field in its own. Take those courses @ the local community college or ur university.
12-18-2003, 03:59 PM
MIT open classes has liner algebra online if you are not sure what it is... http://ocw.mit.edu/OcwWeb/Mathematics/18-06Linear-AlgebraFall2002/CourseHome/index.htm
12-22-2003, 11:58 PM
People are always quick to say C++ for games programming. True, C/C++ is sooo powerful but Java is now shedding it's reputation for being slow and unsuitable for games. Take a look at some of the benchmarks for xith3d (http://xith3d.org/) - in some cases it's outperforming C++! Talk to some of the guys at javagaming (javagaming.org)
Other than the fact Java is faster than most people it was designed to avoid all the bad things about C++ and C like pointers and memory leaks. I have spent about 4 years developing both (not in the games industry however) and Java is a lot easier to learn. Plus if you decide after a while you do want to go onto C++ then you've done most of the hard work all ready.
BTW, I'm not trying to turn this into a Java - C++ war! I love both languages :D
01-16-2006, 06:00 PM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.