Game development, how to start and climb the stairs of success

Started by
23 comments, last by dada222 16 years, 11 months ago
Note: This is for beginners I am not a guru. I have just one year experience in game programming. But this is enough to tell you one or two things. First of all, when I began, I immediately wanted to program the sims 3. But then I understood that you must aim lower, and then higher and higher. I think the best way to begin game programming is to learn a BASIC language, so you can make simple text and graphical games. After that, you must learn C++. Then OpenGL, which is easier that DirectX. After all these, you shall start using a game engine, like chrystal space or Irrlicht, which are free. And, most important, DON'T GIVE UP
Advertisement
I agree with you mostly, except at the end.
If I had to say the easiest graphical api to use would be XNA but that is in C#, which I also think should be looked at before C++. Helps you get into the OOP, bit easier to program, and when you want the tightly coded performance (lets not start an argument though) then you can move onto C++.

Just my opinion though! Have a good one!

my blog contains ramblings and what I am up to programming wise.
Umm...ok.
F-R-E-D F-R-E-D-B-U-R...G-E-R! - Yes!
Quote:Original post by dada222
After that, you must learn C++.


This might cause an argument, but AFAIK it is true in a professionnal game programming context. You might want to learn another language before going on to C++. I found flash's actionscript to be useful even if it's an interpreted language. It helped me going to C++ (but C# might have helped me more).

Quote:Original post by dada222
Then OpenGL, which is easier that DirectX. After all these, you shall start using a game engine, like chrystal space or Irrlicht, which are free.


I'm not sure about this... The purpose of using en engine is to simplify the creation of graphics/games by not programming directly with Direct3D or OpenGL. Using an engine will, in most cases, be easier than going the OpenGL/Direct3D route immediately. However, those APIs will be very useful to know about after some time to understand how things get done at a lower level.

Quote:Original post by dada222
And, most important, DON'T GIVE UP


I think we can all agree on that ;)
Well, i had done some c# before but I had to use classes all the time! It gives you much less freedom
Quote:Original post by dada222
Well, i had done some c# before but I had to use classes all the time! It gives you much less freedom


Now THIS is really going to cause an argument! lol
Damn didn't knew procedural programming was still used in game development ;) Isn't it the opposite, classes gives you more freedom and makes it easier for you to code because you don't have to rewrite everything you already written twice ? Well i'm not a C coder so I "might" be wrong.
Quote:
Well, i had done some c# before but I had to use classes all the time! It gives you much less freedom

No it doesn't, you can still write procedural code in C# (using static classes construct fake namespaces), and besides, "classes" don't limit you in any way. You're too focused on the implementation detail; a trait often developed by C++-only or highly C++-focused programmers.

Learning C++ is entirely unnecessary, unless you are going to be a professional game developer. However, if you're a beginner, you're not going to be a professional game developer and you will (in most cases) still have four years of college ahead of you before you can even begin to consider being a professional. Consequently, you should focus on a language that will help teach you the fundamentals of software design and development without bogging you down in implementation-specific cruft.

Although at the end of the day it is important to simply choose a language and learn it, and not switch around, C++ is still a very, very poor choice for an early language. Python or C# are much better choices. C++ is much easier to pick up as a third or fourth language, after which you will hopefully have a better understand of what is a general programming concept or paradigm and what constitutes language-specific implementation detail or idioms.
I've been programming games as a hobby for something like 14 years and finally got a job a few months ago. here is the rough sequence of languages (and APIs) I used over the years:

1) GW Basic - it was all I had back then on my 8086
2) Quick Basic - hell of a lot easier then GW, one of my favorates.
3) C - Godly of god languages. I still use it today.
3.1) Win32 API

4) Blitz Basic/Blitz Basic 3D - This is an amazing language to learn graphical programming (2d and 3d) using very easy syntax. If you want to seriously make a prety good looking game but don't know much C/C++/C#/XNA then this is the language to get. This language taught me a lot about 3D game programming's basics and object control. Dark Basic is also very good from what I hear but I've never used it personally.

5) C++ - God's language made even more godly! I wouldn't have a job if I didn't know this language. Nuff said.
5.1) OpenGL
5.2) OpenAL
5.4) DevIL
5.3) SDL

6) C# - Solely for TOOLS, not for game dev. I am a low level guy so I haven't used this language yet for serious game design. I might in the future though just for fun to see how it fairs. (btw, I do like C# as an OOP language 100000x more then JAVA).

------------------------------------
now for the part where I get flamed
------------------------------------

JAVA is horrid. STAY AWAY FROM IT FOR ANYTHING GAME RELATED!

hope this helped,
-Linolium
The Great and All Powerful Linolium
Quote:
now for the part where I get flamed

I'm more inclined to flame you for your zealous reverence of C and C++, personally. They have their uses, but the power you attribute to them suggests you need to branch out a lot more (and a lot more extensively).

Try some functional languages.

This topic is closed to new replies.

Advertisement