# Preface [Handmade Hero][] is an ongoing project started by [Casey Muratori][casey] at the end of 2014. While I first heard about the project around the same time and even supported it by prepurchasing a copy, I largely ignored it up until late 2017. And once I was in, I started playing a desperate catch up game with the series. I truly believe that [Handmade Hero][] is a project that's worthy of larger public's attention. It taught me largely how I think about code, because it dives deep inside of _how_ a programmer thinks, rather than showing _what_ they achieved. This book is my homage to the series. With [Handmade Hero][], anyone can learn the beautiful art of programming! # About this book This book should be read as a series of notes and transcripts documenting in detail each "Day" of [Handmade Hero][] series. One can easily open the [episode Guide][] and find similar chapters here. The reasons for this work should be self-explanatory. Not everyone can invest their attention in a video in the same way as a written text. Sometimes if you're following along you might miss a crucial edit that completely breaks your code. Additionally, in the book we will be cleaning out the "fluff" such as unrelated ramblings, research pauses, fights against tools, etc. The linear trial-and-error way that makes [Handmade Hero][] so unique will be preserved however, as well as the blackboard drawings, references, etc. The main reason however was to create an additional resource, aside from [Handmade Hero][] itself and [Handmade Network][hmn] (where my social anxiety to this day prevents me from posting questions), that I so desperately needed when I was getting started myself. Hopefully it will help you, dear reader, on your Handmade Hero journey. # Starting differences Since we aren't living in 2014 any more, some conventions that were adopted by [Casey][] at later stages of the project will be adopted from the get go, such as: - The main editor for the course will be [4coder][]. An additional guide to set up a dev environment in [Visual Studio Code][vscode] will be presented. - The code will be compiled in [Visual Studio 2019, Community Edition][msvc]. - The code _debugging_ will be in [RemedyBG][]. It's a paid tool and, while we encourage its adoption, the reader must be aware that the debugger is functionally identical to [Visual Studio][msvc] debugging experience. A short guide to adapt the [Visual Studio][msvc] debugger to the same experience will be provided. - Once introduced, the codebase will immediately use the _short_ base type definitions (i.e. `r32`/`f32` instead of `real32`, `u32` instead of `uint32`, etc.) - Q&A, usually featured at the end of each Day, will not be presented separately. Instead, relevant questions will be incorporated straight into the day as additional clarification. # License considerations This book contains excerpts of the [Handmade Hero][] codebase. While the codebase is currently a copyright-protected work, property of Molly Rocket, Inc. (All Rights Reserved), these excerpts are available under [Fair Use](https://www.copyright.gov/fair-use/more-info.html). This book doesn't pursue any commercial nature and is a non-profit educational project. All the code presented here is copied by hand from the livestream recordings, currently available on [YouTube][hhyt]. We are not distributing any complete code, artworks or sounds. This work is not endorsed in any shape or form by Molly Rocket, Inc., and it's entirely a fan-made project. We also chose to make use of the [episode guide][] (maintained by [miblo][] and other [handmade network][hmn] community members). This is is done mainly to ease someone potentially following the book in video and in text format. Video links to the episode guide are also specified at the beginning of each episode. # About the Notes and the Code Blocks You will see many special callouts spread around the page. We made these to break the text down and add some variety. Aside from pictures, code, tables, and graphs, you will find the following: !!! Note Note This is a note. !!! Warning Warning This is a crucial thing to note. Read this part very carefully. !!! Tip Tip This is a helpful tip. !!! Trivia Trivia This is an exciting fact or some historical trivia. As for the code blocks, these would have the following markings: ~~~~~~~ C++ // This is a comment for C/C++ code chunks This is a line which was already present in the code (introduced earlier) and remains without a change. ~~~~~~~ C++ delete This is a deleted line. ~~~~~~~ C++ add This is a new line. ~~~~~~~ C++ edit This is a previously existing line which was edited. ~~~~~~~ (#) Navigation Up next: [Day 1. Setting Up the Windows Build](day1.md.html) [Back to Index](../index.html) (insert links.md.html here)