Pick a beginner programming language (C#/C++/Python)
Practical Linear Algebra (Math will help you a lot)
Data Struct and Algorithms
Design Patterns
DirectX/OpenGL
Physics (They have game physics books)
3D Math (quaternions, intersections, shit like that)
then learn to make basic models/uvmapping/textures
Read through the free lua book
Learn to make well written code (exceptional C++ type books)
Make a game on an existing 3d Engine (spend at least 60 hours a week on it once you learn the above basics)
That is a good basic one year roadmap.
Find books that don't just teach syntax but best practices along with syntax (for instance using const, variable names, etc).
I recommend buying CORE C++ and after finishing that book moving on since it gives good best practice type advice.
Also a note on making a game on an existing game engine. It will get you used to a lot of things. Creating your first map (terrain/static objects etc), Game logic (telling the game to swap maps/load maps/change maps based on certain conditions/spawning vehicles), Coding into an existing engine (adding special features or extending classes etc) For instance adding a waypoint feature, Making some 3d models/texturing (uvmapping is fun). Going through the whole game making process by yourself and getting an actual product makes all the future books make a lot more sense.
My recommendation is to pick somehting like Torque game engine and making a simple online FPS/vehicle game. There are two books on the engine that help a bit (it's C++).
basically game programming derives from normal programming so you will be well off pursuing a normal programming education and add in shit from games.
Name:
Anonymous2008-03-30 15:22
You need to learn MALBOLGE
Name:
Anonymous2008-03-30 15:58
That is a good basic one year roadmap.
Not if you are going to learn it properly.
Name:
Anonymous2008-03-30 17:08
Quaternions.
Name:
Anonymous2008-03-30 21:45
>>8 Pick a beginner programming language (Sepples).
Wat?
Name:
Anonymous2008-03-30 21:48
>>12
Most educational institutions are using C++ as an introductory programming language. What would you rather them use, some sort of mickey mouse toy scripting language like Scheme with zero purpose outside of academia. I would kindly advise you to get the **** out.
Name:
Anonymous2008-03-30 21:56
>>13
I do not know where you got this idea that C++ is still relevant in the real world. Only PHP and Java will still be there in 20 years you know. Out of the two I recommend PHP because you can deliver the game with Flash.
Name:
Anonymous2008-03-30 21:57
>>13
Educational institutions do a lot of stupid things. Do you have the slightest idea how bad education is? Do you ever even think? Did you pay the slightest bit of attention in school? GAAAH!
Name:
Anonymous2008-03-30 22:04
Educational institutions do a lot of stupid things
Yes, like teaching Scheme. Did you even bother to read the post you are replying to?
Name:
Anonymous2008-03-30 22:25
>>14
Half life 2, Quake 4 and UT2k4 disagree with you.
Name:
Anonymous2008-03-30 22:31
>>17
If >>1 wanted to do shitty PC FPS he would have probably mentioned it. It is safe to assume that he has grown out of this genre and will eventually want to make games worth playing.
Name:
Anonymous2008-03-30 22:39
>>14
You don't seem to understand how languages survive. Languages survive because people write programs in them, and have to be maintained and understood. Much like words, the dictionary can't just say that a word is no longer relevant and everybody stops using it. Much like C and Perl, the problem is, lots of programs are written in C++. If I don't want to learn Perl, that doesn't matter, because I still have to understand it if I want to hack on a lot of software, and then I'm encouraged to write more software in it.
Who is it that keeps saying C++ is no longer relevant? I'm not interested in C++, so I'm not subjected to this kind of marketing propaganda.
>>19
Of course people will still use it for the years to come. But people are also still maintaining COBOL applications. C++ has moved into "legacy" territory. That's what makes it no longer relevant.
>>21
If you're using the definition provided by >>22, C++ is an actively revised language. See also: C++0x. >>23 makes another excellent point -- C/C++ are probably the best languages to learn the low-level aspects of programming. Sure, you can learn assembly, but that's certainly evenmorelegacy.
Stop raping my ass -- it hurts.
Name:
Anonymous2008-03-31 7:52
Just follow the crowd, because they do a lot of work for you.
Python and C++ for non-website $$.
PHP, Perl, and Ruby for website $$.
Lisp and Haskell for mental expansion non-$$ personal scripting (e.g., StumpWM).
Name:
Anonymous2008-03-31 8:05
C# and C++ for non-website $$.
Name:
Anonymous2008-03-31 8:20
Yes, also forgot Java's big share of the $$ marketplace. Which it will likely retain due to it's mature VM and libraries.