Search code examples
2d-gamesallegro

How can I learn advanced game programming?


I am Computer Science student, but there is no particular provision or course for learning game programming in our college. I have been studying allegro API for the past year. But I am still unsure how to apply physics in games and realistic games. Its overwhelming and lack of resources is quite confusing.


Solution

  • I think the best thing you can do at this point is simply start making games. They may not be complex or realistic, but getting some experience under your belt will set the stage for learning more complex things. I would disagree that there is a "lack of resources", a plethora of advanced game development tutorials are a web search away. I think the problem here is more related to those resources seeming "overwhelming", as you said.

    If your experience studying computer science is anything like mine was, you likely spend a lot of time studying relative to a small amount of time actually doing. Use your interest in game development to get practical experience doing something that interests you. The important thing here is to complete games. When working on simple games, its easy to stop as soon as the bare minimum feature set is completed (I've got a paddle and a bouncing ball -- my pong game is complete!). Take the time to create a title screen, add sounds and music, can work out bugs.

    As you gain confidence making smaller games, you'll have a better basis for learning more advanced concepts. It's not a matter of being 'smart' enough to understand complex tutorials, its a matter of being able to retain and absorb that knowledge because you are able to immediately apply it. College computer science teaches a ton of knowledge, but, at least in my experience, a large portion went to waste because I wasn't regularly applying it.

    The bottom line is: just develop things. Make games. Even the ones that seem simple will end up being more complex that you expected, and as you progress you will gradually assimilate more advanced knowledge. Look up advanced concepts as you need them, not because you anticipate needing them.

    That being said, here are a smattering of tutorials I really like:

    Entity Component Framework

    Programming Game AI by Example

    Procedural Terrain

    Collision Detection

    Of course, don't try to read these all at once. Read these and similar tutorials as you need them, and in the meanwhile, just keep on developing.

    And of course: Allegro5 Tutorials.