I'm from Brazil, and I want to take a short course on game programming, 2 months at most, in a country that lectures are given in english. I'm almost a BSc in Computer Science alredy.

Can you tell me what you think about this courses? What are some good courses in that format?

  • \$\begingroup\$ @Bane isn't this site the internet too? confused... \$\endgroup\$ – siamii Sep 28 '12 at 3:57

Can you tell me what you think about this courses? What are some good courses in that format?

You haven't told us much about, what is this this course you are talking about. So, really there is not much room for us to suggest you the right and/or wrong. Like everybody else I am going to take the generic route.

Another thing I want to point out is, you haven't told us about your skill level. Let me assume that you are a good programmer with a fair knowledge on algorithm.

1st Scenario

Ok, now I am going to chunk up my answer on different stages. And first I am going to assume you are the main programmer and programmers art is gonna flood in. Most of the time you will be busy in reading/writing code and some sample asset will be ok for your game.

When you start developing game you will notice how different it is form solving individual problem found on ACM, TopCoder or CodeChef. As I have already assumed you are no guru level programmer, I am taking this as a granted that you are going to work with different modules(for graphics, for physics, for audio for etc) and gonna marge them in a single framework that suits your need.

Here is the catch, most of the time you will be going to good/bad documented/commented code to figure out how they work and or how to make them work. So, here the skill you will be needed is the patience and the necessary skill to going through others code and of course the mathematical knowledge to understand the implementation.(With a good debugging skill.)

So, now you answer me, does this 2 month course is going to help you to have any of these skills? If you are a good/moderate programmer already, then you already know this and of course wont be needing any extra guideline(Even if you need, you will be able to pick it up along the way). These are the bread and butter of any programmers life.

Give yourself a checkride, Making anything simple using any of the following engines :

  • OGRE : As the name says its a open graphics rendering engine. Its not a complete solution for game development. Its just provided the rendering module and all other modules, like physics and networking, have to marge by you.Which is not a trivial task. Its based on C++.

  • jMonkeyEngine : This is a complete solution for game development. Its based on java. I guess you are more inclined to learn the game development terminologies, so starting with this one will pay off. Its shader based, with little fixed function rendering support. So, when you are wroking with this engine, you will learn all the high end thingies that will come in handy in the long run, on any engine that you end up with. Its easy to start with.

Try to make something, using any of this 2 engines. Upon successful completion you will find out your skill level and demand of any training by yourself.

2nd Scenario

Now, let me assume that you are the only programmer and want to make games instead of messing around with lots of libraries. High quality asset is not a low priority here. You want an magic box that does all the boring stuff for you so concentrate on the game logic itself.

Here are the options,

Unreal development is notorious for its learning curve. But I've found it not that hard once you understand the underlying structure. Here you have top notch editor for world building, cinematic editor, particle editor, visual game logic constructor etc etc. All you need to make a game. Unlike OGRE or jMonkeyEngine, here you only have to code when you want to specify a veery specific behaviour to a particular entity. Other then that, most of the things are just drag and drop, point and click. Its fun, but takes away the pleasure of programming.

Roughly speaking Unity is like UDK. Most of these are a high level game development kit that just requires some fundamental understand current tech jargon.CryEngine is similar to above 2 mentioned. You have to try out all of them(dont worry, you will feel right at home after a few hour spending with them)

Ok, now these game development toolkit are a complete package with different use restrictions. And all of these tools have EXTENSIVE documentation hooked up in their website. Massive Community. Regular Update. Just about almost everything any game developer could ask for. (of course I am talking about beginners)

Make anything using these toolkit. Give a checkride. See how fast/easy/comfortable you feel with these. Then ask yourself again, do you need to have a training to get used to with some tools? If you can't even teach yourself a simple tool where everything is almost ready, then I would suggest you to back off from the whole game development thingy.

Now ask yourself again

After doing any of these 2 tests you will automatically understand your strength and weakness as a game programmer/developer. Along the way you will learn all the necessarily technical knowledge required. At first things might look hard, yes as beginners its always a bit steep to step into the game programming/developing realm. But, trust me it very rewarding when you get a hold onto something that you did't knew half an hour ago. But, if you get yourself enroll into a training(of 2 month only), yes those jargon will sound familiar to you when you read the doc, but that's not a good way to start.

Do you need a 2 month training?

Not necessarily. Just start with something. Make something. On that way you will find out what you know and what don't. Always keep pushing the limit. And if you really want to learn form ABCD...well, what can I say...Google a bit. Read whatever you find.

Just a foot note, don't waste you time reading OpenGL 1 tutorials. :)


If you're almost a B.Sc., then take that knowledge today, get a couple good books, and start leveraging the vast resources across the web to learn the basics of game development. (Welcome to the industry.) If you haven't learnt enough about technical programming during your bachelors studies to do that, then short courses aren't going to help you very much anyway.

The point is, from where you stand now, you should already have the most important knowledge you need to get going -- without paying someone else to teach you things you can easily learn yourself.

You get out what you put in, and that applies to short, cheap courses as much as anything else.

  • \$\begingroup\$ Other than the technical part of the course, I have networking in mind, because you know, here in Brazil we don't have too much opportunities to meet people that are really interested in game development. What do you think about this? \$\endgroup\$ – user9471 Nov 2 '11 at 23:20
  • \$\begingroup\$ Networking, and the experience of game development within a team, that's something else. If that's one of your goals right now, then maybe you should go for a course, because it's not something you'll get from a book. Although the internet does offer opportunities to work in teams as a game developer. Gamedev.net is one such place to join a team; there are many others. Just a thought. \$\endgroup\$ – Engineer Nov 3 '11 at 0:25

I wrote and presented a short crash course on the world of game programming; you can find the slides here: http://iki.fi/sol/gpc/

..and the practical stuff here: http://iki.fi/sol/gp/

Apart from that, I wholeheartedly agree with Nick, there. It's also best not to do this alone; find same-minded people and start a local game programming club! =)

  • \$\begingroup\$ Agreed; OP should take that money that would have have been spent on travel and courses, and spend it on renting out a place to hold the club, or snacks if done in the garage/basement! \$\endgroup\$ – Engineer Nov 8 '11 at 15:57
  • \$\begingroup\$ That's indeed a good way to spend this money. \$\endgroup\$ – user9471 Nov 10 '11 at 13:23
  • \$\begingroup\$ Your slides are so useful! \$\endgroup\$ – user9471 Nov 14 '11 at 3:28

Let me start by saying, I can not answer your question. I do not know any courses in the two month range that would influence me (as someone with decision making authority) to hire you which I assume is ultimately your goal.

There are educational programs that provide concentrated programs related to game development. These types of concentrated programs can provide canidates that have a useful base exposure to the problems of game programming...they are not a guarantee that you personally will finish the program as an person desirable to the game industry.

As your subsequent responses indicate, networking is a consideration...but honestly any company that is hiring is going to consider a good candiate. So...what makes a good candidate?

Someone who...

  1. is interested in solving problems
  2. solves problems outside of class and finds it to be "fun" (sample programs you personally developed are a plus, even if they do not work show me the code and you might impress me)
  3. is curious
  4. learns on their own (sorry, school only teaches you a fraction of what you need to know and how you need to approach problems). READ STUFF!!! EXPERIMENT!!! There are numerous articles on this site of books and basic concepts of which you should be at least aware.
  5. understand after gradutation you really know nothing. A degree (even a PhD) does not mean you know how to program for a environment requiring a networked, asynchronous application development involving high performance networking, persistence and graphical (client) layers in a mid-large sized team. Programming for Massive Multiplayer Online games combines all of the really hard computer science problems you have studied (and a bunch of others you have never heard of...) in spades. No shame here, after decades in the industry we are still learning stuff too!
  6. I want to know that you can THINK. I will ask you oddball questions in an interview and listen to your response. I do not care if you are "technically" correct...how do YOU solve problems is what matters. You get good at this...by solving problems.
  7. Game programming tends to be a meritorcacy, I (we) do not believe we know everything. Show me I am wrong, and I'll listen (but you better be able to prove it with stats...and I'll rebut with other companies trying to do X and the problems they encountered).
  8. Be humble, but stand your ground when you strongly believe in something. No matter what you think you know, someone will always know more...but sometimes you might be right too. At the end of the day, accept sometimes your manager might have other considerations that affect the ultimate decision.
  9. We do not care if you have an idea for a game design...ideas are pennies per dozen. Execution of the idea is what matters.

As an unknown, what YOU KNOW and CAN DO is much more imporant to me than who you know. At my company we have a standarized test which we hope a slightly trained C++ monkey (most of whom fail...which I fear reflects badly on the educational establishment) could pass and the multiple levels of interviews that test the extents of a candidate's personal knowledge. We do not care if the candidate knows exactly how C++ templates work or all of the stupid edge conditions that some (dumb) interview "tests" ask. Know what you do not know, and know how you could expand your knowledge to cover that weakness.

There are a variety of articles on the over reliance on "riddles" and obscure language trivial being examples of lazy/poor Human Resources filtering mechanisms...you really do not want to work there anyway.

Know what you want to become...work towards that goal...and prove you know what you know. I do not care if you do not know everything (I know you do not...so do not try to lie about it), prove you know how to ask (relevant) questions and know how to take feedback and learn.