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
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
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
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 would like to be notified whenever a new video
is uploaded to the archive, you can create
and then subscribe
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
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
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
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
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?
, 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
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
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
post I made about compression-oriented programming
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.