Handmade Hero - All Builds w/ Full Source
- Immediate access to the latest source code
- Full access to all source code updates and game builds
- DRM-free copy of the complete game when it's finished
Don't like Stripe? Preorder via Paypal.
Lost download link? Have it resent.
What is Handmade Hero?
Handmade Hero is an ongoing project to create a complete, professional-quality game accompanied by videos that explain every single line of its source code.
Is it a simple game, for teaching purposes?
Quite the opposite! The game design has been specifically tailored to require more complex code than exists in most game designs. Sophisticated procedural level generation, intricate item interactions, and globally propagated effects are just some of the many aspects of the game that will be implemented during the series.
Are the videos just recordings of someone coding?
No! Although 100% of the programming for the game is captured in the videos, each step is also accompanied by continuous explanation of what is going on and why. It is meant to serve as a de facto class on game programming.
How far along is the game, and what is left to do?
The series started on November 17th, 2014. I try to limit the sessions to two hours or less per weekday so it remains manageable for people who practice coding along with the series at home. I estimate it will be about 600 episodes or so before the game is complete, although this is purely a ballpark episode and we "take as long as it takes" to cover everything.
Can I be notified whenever the live stream starts?
Yes. If you make a Twitch account, you can follow @handmade_hero. Twitch will then send you an e-mail whenever a new stream starts, so long as you have e-mail notifications enabled in your user profile.
What do I do if I've missed some days?
If you miss a day or two, don't worry, they will all be archived on YouTube. The archive videos are available to everyone, not just people who purchase the game. You can also check out the awesome community-maintained episode guide which feature time-coded links for each video!
If you would like to be notified whenever a new video is uploaded to the archive, you can create a YouTube account and then subscribe to the Handmade Hero channel. YouTube will then e-mail you whenever new videos are uploaded, so long as you have e-mail notifications enabled in your user profile.
Will the game support multiple platforms?
Yes! Windows will be the first platform, since it is currently the most common gaming platform, but the series will later cover (at least) Mac, Linux, and Raspberry Pi. Portability will be a major topic in the series, so all the code will be structured to demonstrate how to write code that is easy to port to new platforms.
Will the game have real art, or programmer art?
Real art. The talented Yangtian Li is already working on custom artwork for Handmade Hero so that there will be plenty of great art to bring into the game when the time comes.
Is all the source code included with the game?
Yes! If you buy the game, you will get absolutely all the code. And not just to the most recent build, but to every build from every day, so you can easily go back through the video archives and practice along with them.
How will the source code be licensed?
Two years after the final version of the game is released, 100% of the source code will be released into the public domain. Prior to that, all rights are reserved, so please contact me for permission before you use it in your own projects. This is a precaution to prevent people from directly cloning the game until after it has been out for a reasonable time, since this project is an expensive endeavor and I hope to offset some of the cost through sales of the game proper.
Who are you?
I am Casey Muratori, a Seattle-area game programmer. I spent many years in the industry working on popular game technology libraries, so you can currently find my code in literally thousands of games (partial lists here and here).
Why are you doing this project?
Game programmers need to start creating high-quality teaching materials for their trade. While most game programmers frequently post about specific algorithms they've discovered, few ever post about the programming methodologies they have found to be effective, nor about how they approach the general problems inherent in developing a large, complex game codebase. As a result, novice game programmers looking to learn the basics of programming must rely on materials from other industries that are often of dubious quality.
Personally, I have found most resources that purport to teach people how to "program properly" actually teach primarily bad programming practices. The copious emails I received from college students around the world in response to a post I made about compression-oriented programming confirmed for me that there are many young programmers out there whose progress is being hamstrung by bad learning materials. This project is an attempt to provide one high-quality alternative, and perhaps to convince other experienced game programmers to think about what they could do to help teach the next generation of game programmers how to program well.