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!
- Part 1
- Part 1.0: Intro to Game Development
- Part 1.1: Installing Allegro 5 with Visual Studio 2010
- Part 1.2: Your First Allegro 5 program
- Part 2
- Part 2.0: 2D Graphic Basics
- Part 2.1: Starting the Code
- Part 2.2: Initializing Allegro Graphics
- Part 2.3: Using Fonts and Text
- Part 2.4: Graphical Primitives
- Part 3
- Part 3.0: Player Input and Events
- Part 3.1: Keyboard Input Part 1
- Part 3.2: Keyboard Input Part 2
- Part 3.3: Mouse Inputs in Allegro 5
- Part 4
- Part 5
- 5.0 – Our First Game
- 5.1 – Our First Game: The Player
- 5.2 – Our First Game: Timing and Movement
- 5.3 – Our First Game: The Projectiles
- 5.4 – Our First Game: The Enemies
- 5.5 – Our First Game: Collision Detection
- 5.6 – Our First Game: Game Logic
- 5.7 – Our First Game: Conclusion
- Part 6
- 6.0 – Bitmaps
- 6.1 – Creating Bitmaps
- 6.2 – Loading Premade Bitmaps
- 6.3 – Rotating, Scaling, Tinting Bitmaps
- Part 7
- 7.0 – Sprites
- 7.1 – Bitmap Transparency in Allegro 5
- 7.2 – Basic Animation in Allegro 5
- 7.3 – Using Allegro 5 to Create a Sprite Sheet
- 7.4 – Sprite Sheet Animation in Allegro 5
- Part 8
- 8.0 – Structured Sprites
- 8.1 – Our Sprite Struct
- 8.2 – Sprite Struct Demo
- 8.3 – Sprite Struct Gravity Demo
- Part 9
- 9.0 – Revisiting Our Game
- 9.1 – Revisiting Our Game – The Player
- 9.2 – Revisiting Out Game – The Comet
- 9.3 – Revisiting Our Game – Explosions
- Part 10
- Part 11
- Part 11.0 – Backgrounds
- Part 11.1 – Parallax Backgrounds
- Part 11.2 – Tile Backgrounds
- Part 11.3 – Tile Backgrounds with Mappy
- Part 12
- 12.0 – Collision Detection
- 12.1 – Bounding Rectangle Collision Detection
- 12.2 – Distance Based Collision Detection
- 12.3 – Pixel Perfect Collision Detection
- Part 13
- 13.0 – Game States
- 13.1 – Implementing Game States
- 13.2 – Better Game State Implementation
- 13.3 – Finite State Machine Artificial Intelligence
- Part 14
- 14.0 – Finishing Our Game
- 14.1 – Adding Game States to our Allegro 5 Game
- 14.2 – Adding a Background to our Allegro 5 Game
- 14.3 – Adding Audio to our Allegro 5 Game
- 14.4 – Deploying our Allegro 5 Game in Visual Studio 2010
- Conclusion
- Appendix

Great tutorials!
Really awesome stuff. You should write a book.
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)
Have you looked into new video-book formats for things like the iPad etc? It’s new and could work well with what you have here. The quality is definitely publisher worthy.
I should look into that. Got any good links?
Can u Tutorial me to Display image allegro 5 on the screen?
thz u so much
Search for Bitmap functions in Allegro 5 Manual. It’s very easy
Such a video is now available in 6.2
Hook them up.
Also, will i be allowed to put your name in credits/special thanks when i finish my first 2d game ?
Is that comment to me Marko? You can, though you definitely don’t have to. Send me a build of it when you finish though, I would love to play it.
part 7….
THANK YOUUUUUUUUUUUUUUUUUUUUUUUUUUUU
Soon…
I have the pre work finished, I just need to record and publish.
Thank u so much for work hard
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.
Stand by. A full blown Allegro Game Engine is in the works right now. Hopefully within a month I can release it for testing
thank u
How can I configure Visual Studio, so that the console window doesn’t show up when I run the project?
Try this: http://www.allegro.cc/forums/thread/607888/925422#target
It worked. Thanks!
please give us something.. i can’t wait anymore i am addicted to Allegro
Thank you sooo much!!! This was very useful, you literary saved my life
These tutorials are awesome, you should cover allegro_audio and allegro_acodec in Part 9 :>
Awesome tutorials! Thank you very much
!
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
Could you be more specific? Games themselves wouldn’t have constructors or destructors, just their class objects.
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!
I am glad you like them. Thank you.
Are the earlier videos mirrored anywhere else? Daily Motion is brutal with the ads.
Not yet. Still working on getting them converted. Stick with it!
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
Mike,
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.
I find your tutorials better then most books I have bought thanks for the great info pls keep it up!
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!!!
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.
Hii , this is the great tutorial i have came in touch with ,Great work mike…..
could you please change the code to a class?sorry my english bad
This is an amazing series you have! I can’t thank you enough! Looking forward to the conclusion, and the next series. Thanks again.
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!
That’s a good idea
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.
try const int WIDTH instead of int const WIDTH. Not sure if that makes a difference or not
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.
Are you still working on updating the SideShooter game to use classes?
I am, I actually just got the explosions put in. If all goes well with my scheduling, i will begin recording videos tonight.
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?
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
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? : )
I agree! I suggest you to visit http://www.zoidcom.com/ as fast as you get to master object-oriented game programming
Is there any way of downloading the videos so they can be watched off line ?
Not at this time
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
thanks lara for the idea
Hey, is there a tutorial about threading using Allegro?
I want to write platform independent threads, otherwise I could use native threads.
can i use allegro with eclipse c++?
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!
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!
Please cover path finding at some point! by the time I get that advanced you might have it done
Thanks a lot man! I speak Spanish, but is easy to understand, again, thanks!
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?