2D Game Development Course

This course is a complete overview of 2D game development. It was made with beginning programmers in mind and focuses on fundamentals and low skill set solutions. The materials are written in C++ and utilize the Allegro 5 library. Enjoy!

UPDATE: If you are using MinGW, here is a guide to getting you setup and running (Thanks you tsevetszord)

101 Comments » for 2D Game Development Course
  1. Panos says:

    Great tutorials!

  2. Bruce says:

    Really awesome stuff. You should write a book.

    • Mike Geig says:

      Funny thing is, I started developing these materials for a book, but then with the time crunch I decided to host them in video format instead. Though, if any publishers read this… (hint hint)

    • Sylvio says:

      I agree! I would definitely buy the book.

      • Mike says:

        The book version is in Unity and it is in development currently. I will post on this site when it is done.

        • arslan says:

          you are something,, ur stuff is soooo simple,, and nice,, and easy to understand,, really appreciate some1 putting all the things in just one place

  3. sixtofive says:

    Can u Tutorial me to Display image allegro 5 on the screen?

    thz u so much

  4. sixtofive says:

    part 7….

  5. YOU R GREAT says:


  6. sixtofive says:

    :D I’m waiting part 7 everyday

  7. Anonymous says:

    You are great! I even told I would be really grateful if you could teach us about implementing what we have learned in a simple allegro engine using classes etc.

  8. sixtofive says:

    thank u

  9. How can I configure Visual Studio, so that the console window doesn’t show up when I run the project?

  10. I'm -- and i'm an allegroholic says:

    please give us something.. i can’t wait anymore i am addicted to Allegro

  11. Thank you sooo much!!! This was very useful, you literary saved my life :)

  12. nope says:

    These tutorials are awesome, you should cover allegro_audio and allegro_acodec in Part 9 :>

  13. Kriaq says:

    Awesome tutorials! Thank you very much :) !

  14. ED says:

    Thank you so much for the tutorials, after watching them i am trying ti make a turn based strategy game for my university c++ class, could you please make a tutorial about on writing game with class constructor and destructor, it would be very helpful :)

  15. Shannon says:

    Mike, I stumbled on your video tutorials after pulling my hair out for weeks, trying to find a decent tutorial for C++ Game Programming. Before I arrived here, I ended up buying a book which covers DirectX. To say the least, it was highly confusing, and it didn’t get me even one step closer to programming. I’ve been toying with C++ for a couple of years, and I’ve always wanted to make the leap into graphics-based game design, but I wasn’t able to find anything written by humans. Your video tutorials are an answer to prayer. I’m a huge fan; thank you so much!

  16. 1nfinitum says:

    Are the earlier videos mirrored anywhere else? Daily Motion is brutal with the ads.

  17. Hi Mike,

    I really enjoyed your tutorials so much. I visited this page many times last whole week just waiting for your part 11. Eventually I’m very happy now. You know, you were so good at explanation these things, your voice was very clear, your methods were easy to understand. I really really love your works here. Keep it up man, I still waiting your new posts every second!

    Thanks a lot for your time, I wish you all the best and looking forward for your next tutorials. God bless you :)

  18. Luke says:

    I love you tutorials. I am just wondering if you could reccomend any books on game logic, game programming, game phisics and what-not. I am getting a tablet so I could use some e-books. I tend to like reading.

  19. ansible says:

    I find your tutorials better then most books I have bought thanks for the great info pls keep it up!

  20. ED says:

    Hi, not long ago i made an asteroid game clone for my university C++ course(Mike, your tutorials helped a lot so BIG thanks! Now i am trying to make a platform game just for myself, but i am stuck a bit with collision( i am using Bounding boxes and tile based map) but it doesn’t work right. Could you make a tutorial on Overlap collision while using tile based map, and some basic in game physics explanation(for jumping falling and so on). Again, BIG THANK YOU FOR YOUR HARD WORK ON TUTORIALS FOR US!!! :)

    • Mike says:

      I may do something like that, but it will have to wait until I am finished with the rest of my scheduled work. I just have states, another game upgrade, and deployment to cover. After that maybe.

  21. rahulatneo says:

    Hii , this is the great tutorial i have came in touch with ,Great work mike…..

  22. smidh says:

    could you please change the code to a class?sorry my english bad

  23. binks says:

    This is an amazing series you have! I can’t thank you enough! Looking forward to the conclusion, and the next series. Thanks again.

  24. Varun says:

    Though i have whole of the course downloaded and half of it completed, i request you to upload a pdf stating the complete Syllabus, as you have mentioned the topics and things covering!
    It’ll be great for newbees!
    KUDOS to your work! Thanks a TON!

  25. Aksel says:

    Would you happen to know what this error means?

    1>main.obj : error LNK2005: “int const WIDTH” (?WIDTH@@3HB) already defined in game.obj
    1>main.obj : error LNK2005: “int const HEIGHT” (?HEIGHT@@3HB) already defined in game.obj

    I did a quick find and the only place it was declared or used was in my game.cpp file.

    • Mike says:

      try const int WIDTH instead of int const WIDTH. Not sure if that makes a difference or not

      • Aksel says:

        That’s actually what I have, the error is reporting it in the wrong order. I asked this on another forum and they told me to change the name to something else. And it worked. I don’t know how/why it worked, but it did.

  26. binks says:

    Are you still working on updating the SideShooter game to use classes?

    • Mike says:

      I am, I actually just got the explosions put in. If all goes well with my scheduling, i will begin recording videos tonight.

  27. John says:

    Could you tell me if threads are usefull tool in 2D game’s programming? Cuz I’ve noticed such topic in the allegro manual but I have no idea what is it about and I wonder if I would have to focus on threads in the future.

    Any chance for short tutorial concernig threads?

    • Mike says:

      You can do a lot of cool and terrible things with threads. Maybe in the future I can do a tut, not any time soon though

  28. Arispen says:

    Dude! You are awesome. I’ve watched all the videos and I have to say, you taught me a lot! I’ll be in touch, when I finish my first games :)

    P.S. How about videos covering multiplayer? : )

  29. Hafiz says:

    Is there any way of downloading the videos so they can be watched off line ?

    • Mike says:

      Not at this time

      • lars says:

        if you want the vids offline that bad, you could always follow the youtube link at the upperside of the vid, than you can gety a propper url for a youtube to mp4 converter (there are plenty of those just search on google) you can convert and download the youtube file… granted it wil cost some time but you can get his vids offline…

        p.s. my apolagy if my english isn’t propper, it isn’t my original language

  30. Mert says:

    Hey, is there a tutorial about threading using Allegro?

    I want to write platform independent threads, otherwise I could use native threads.

  31. Reinaldo says:

    can i use allegro with eclipse c++?

  32. Philip says:

    This tutorial is fantastic – just great stuff. Allegro is the best engine I’ve seen for 2D game development, and it seems to make so much sense to start working with a framework like this for anyone who’s beginning to learn how to be a game programmer. Game development is less about learning DirectX and OpenGL and more about loops, timing, animation, etc etc etc. Thank you for taking the time to put this all together!

  33. Joey says:

    Just wanted to let you know that your tutorial is amazing and that I really appreciate what you’re doing. It’s pretty tough sometimes to find good material on the web, but yours is simple, straight to the point and very well explained.

    Thank you very much and I wish you all the best in your future projects!

  34. gamefanatic says:

    Please cover path finding at some point! by the time I get that advanced you might have it done :)

  35. Sergio says:

    Thanks a lot man! I speak Spanish, but is easy to understand, again, thanks!

  36. Luke says:

    Totally amazing. Not many people spend that much time and effort making these videos.
    Thanks to your videos, I now love programming!!!

    I wonder if you know how to use an icon for the actual program? On default, it is just a black box, but can I change the application icon so it is something better, like maybe a picture of the Spaceship?

    • lars says:

      i’ve actually been working on something like that, i haven’t had much luck yet but if you create a shortcut (to put on your desktop for example) you can change the icon… (i still figuring out how to make icons easy but at least you can now change the icon) or isn’t this what you ment?

  37. AJ says:

    Hi Mike,
    just wanted to say you made an amazing game development course, both 2D and OOP. You are also a great tutor and i would have loved programming if i had teacher like you back in high school.
    It would be great if you would make 3D game programming course with OpenGL and Allegro.

  38. rafa says:

    You’re tutorials are great I’ve been looking everywhere to a 2D game tutorial,and have come upon Allegro many times but have avoided it because of the lack of tutorials for it thanks! You’re a great tutor!

  39. games nerd says:

    Thank you very much.

  40. Allegre says:

    You should write a book, there is no book avail for Allegro 5. :(

  41. sonbk21 says:

    very good! but it will greater you make a pdf version for those guys who don’t have internet like me :)

  42. sonbk21 says:

    very good! but it will greater if you make a pdf version for those guys who don’t have internet like me :)

  43. Cody says:

    I just wanted to note that this works also with Visual Studio 2012, using Allegro 5.0.7 for MSVC2010.

  44. ThomasPak says:

    Would you happen to know how to make players jump up into the air and fall back down with a single press of a button?

  45. leo says:

    The best initial course to Allegro5, thank you ;-)

  46. James says:


    Great tutorials! With ease languange and understanding, even for those that don’t have the English as a native languange, and because of that, you are making many fans! I’ve followed all your 2D game programming videos and OOP programming, and I realize that you don’t get afraid to show the secrets of the techniques.

    Cheers from Brasil!!

    Keep the hard work, because you are making History, my friend!

  47. Arjun says:

    I’m going to follow it now. I hope It’s not too hard

  48. Velda says:

    I appreciate, cause I found just what I was ready for.
    You have got ended my 4 day long hunt! God Bless you guy.
    Connect a nice day. Bye

  49. When I initially commented I clicked the “Notify me when new comments are added” checkbox and now each time a

    comment is added I get four emails with the same comment.
    Is there any way you can remove me from that service?
    Bless you!

  50. Ken Hayes says:

    I want my students to use allegro 5 (with VS 2008) but on the college machines, they do not have access to the windows or program files folders (W7). This means that they need to configure VS 2008 to access the the ‘bin’, ‘include’, and ‘lib’ folders (placed in non-security risk areas). I have been attempting this myself at home using your DrawText program as a test. I ended up having to place the …monolith…dll file in the debug folder of the project. When I try and build I get an Assertion failed error message. Something to do with line 77 of text.c.
    I’m not asking you to solve this problem, I just want some advice on how to get VS 2008 to ‘see’ the lib, include, and (especially) the bin folders without generating errors. Note: I am trying this with Allegro 5.0.8

    • Mike says:

      Is the font in the correct folder? Also, what school? Feel free to shoot me an email

      • Ken Hayes says:

        I have VS 2010 (Ultimate) at home. If I can set that up so that it can ‘see’ all the allegro folders (including the bin folder), then maybe I can extrapolate to do the same thing for VS 2008 (which is the only version currently available to my students).

  51. Siksteen says:

    I just can’t make it work on Code::Blocks, which is my favorite IDE. :(
    The MinGW tutorial doesn’t cover that and no other tutorial worked for me… could you help?

    Also, great tutorials, I’m reading through it all!

  52. Jon says:

    Hi Mike, this tutorial is great. I was reading “Game Programming All in One, third edition” but it’s obsolete. Your tutorial uses Allegro 5 and it’s easier to follow than the book.
    You should make a book with all this videos.

  53. Anonymous says:

    Do you think you could record a set of tutorials on how to go about using Allegro5 in an OO fashion? I’m a Ruby developer and I know a great deal about OO methodologies but C++ is brand new to me.

  54. James M says:

    Hey Mike,
    Thanks a lot for these tutorials, they are by far the best I have watched and learned from in terms of game programming fundamentals. I have casually programmed since the days of GW Basic and never really had the time to sit down and research all the little things I needed to make my games run smoother, and honestly, understand my own code better. I look forward to learning more from you!! If I could make a request it would be A*.
    Thanks again.

  55. Sergio says:

    Hola Mike!!!

    Gracias por compartir estos tutoriales, me son de mucha utilidad a mi que me encanta C++ y Allegro… espero que hagas tu libro con esto y que sigas realizando estos videos con otros juegos o temas.

    saludos desde Chile

  56. Emil Janowiak says:

    hi Mike i love your tutorials but i have a question i would like to have mouse shooting mechanics could u help me where should i look for help

  57. Fuhans says:

    Hai, i would like to ask a question.. While i trying to run the program, i got this error: Unhandled exception at 0x77b115de.. Can somebody tell me what’s going on?

  58. Luiz Paulo says:

    how do I change the code so that the ship does not shoot up forward

  59. Russell says:

    Heya superb blog! Does running a blog like this require a massive amount work?
    I’ve absolutely no expertise in coding but I was hoping to start my own blog soon. Anyhow, if you have any suggestions or techniques for new blog owners please share. I know this is off subject however I just had to ask. Kudos!

    • Mike says:

      You can out as much or as little time into it as you want. I have been slacking pretty hard lately, but I have some exciting stuff coming up for my readers.

  60. Georgiana says:

    I liked up to you’ll receive carried out right here. The cartoon is attractive, your authored subject matter

    stylish. however, you command get got an edginess

    over that you would like be handing over the following. ill certainly come more earlier once more

    since exactly the same just about a lot incessantly within case you protect this increase.

    my blog :: steps to make solar powered panels (Georgiana)

  61. Nada says:

    Awesome stuff. This made me understand some fundamental knowledge on C++ programming, and I loved every part of this tutorial especially those funny sound files you’ve made(that was epic). Thanks and btw goodluck on your future projects. :D

  62. Omar says:

    I’m not that much of a online reader to be honest but your blogs really nice, keep it up!
    I’ll go ahead

    and bookmark your website to come back later on. Cheers

    Stop by my webpage … spain hockey news Torre del Mar (Omar)

  63. Angluca says:

    Nice tutorials!

  64. My partner and I stumbled over here by a different wweb address and thought I should check things out.I like what I see so i am just following you.
    Look fokrward to looking over your web page repeatedly.

8 Pings/Trackbacks for "2D Game Development Course"
  1. [...] Gieg; some found by me). Also if you’re curious about the tutorials, they are linked right here. I highly recommend them. Share this:TwitterFacebookLike this:LikeBe the first to like this [...]

  2. [...] of my coding netbook. I recently discovered the source code in my e-mail! I also found a pretty awesome course on game design using [...]

  3. [...] the line-by-line introduction to Allegro. For a fantastic tutorial, I particularly recommend the 2D Game Development Course at Fix By Proximity.  All I shall do here is document the code that I have produced and the [...]

  4. [...] http://fixbyproximity.com/2d-game-development-course/ Share this:PrintEmail ‹ Visual C++ getting value from textBox and converting from string to int Posted in c++ [...]

  5. [...] sur un petit bijou de tutorial video portant sur la librairie Allegro version 5. Voici le lien: http://fixbyproximit…elopment-course J’ai pensé qu’il serait bien de le partager avec ceux et celles qui [...]

  6. [...] En la anterior entrada de esta temática comentaba que había decidido comenzar esta idea empleando la librería Allegro. Tras buscar un poco por su wiki encontré un videotutorial bastante interesante sobre el desarrollo de juegos en 2D con Allegro hecho por un tal Mike Geig, que está accesible aquí. [...]

  7. [...] I found out that Allegro had undergone a major version change and that I had some learning to do. I found a great set of tutorial videos that covered Allegro 5.0 at FixByProximity. My plan was to go through the tutorial videos and then to rewrite my Final Project from my Game [...]

Leave a Reply

Your email address will not be published. Required fields are marked *


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>