I've always wanted to make my own games. I tried several times with off the shelf engines, but I always felt like I wasn't learning the real way to do it.
Not only did I not quite get the proper "game feel" and result that I wanted, I also didn't find it satisfying to more or less wave my hands and trust that the off-the-shelf engine was doing what I wanted it to (and no more than that).
Back at the end of 2014, Casey Muratori started the rather ambitious project of livestreaming himself building a professional quality video game from scratch in C, starting on Windows. I wanted to follow along, but I own a Mac and I'm cheap (I fully appreciate the irony of that statement).
So I present to you, my video series which parallels his. I'm doing pretty much everything he does (and in the same order and "spirit"), but starting on a Mac instead of a P.C.
Eventually, after 25 days of programming, the two series should converge (most of the programming is in a cross-platform C library), and you will be able to simply follow his series. As a matter of fact, that is what I have done, and I have gotten to day 50. I still plan to keep following along as time permits.
The embedded video is the first day, but I'll include links to all of the others, in order, as well. Watch this space, as I will keep posting links to new videos as I record them.
Day 001. Writing your own build system for Mac apps and games.
Day 002. Opening a window on a Mac.
Day 003. Allocating a video display back buffer.
Day 004. Animating the back buffer.
Day 005. Using Xcode as a debugger for cross-platform games.
Day 006. Game controller input.
Day 007. Finishing game controller input.
Day 008. Keyboard input.
Day 009. Finishing Keyboard input.
Day 010. Audio setup and playing a square wave to the speakers.
Day 011. Rendering audio from a circular memory buffer.
Day 012. Controlling a variable pitched sine wave with a game pad.
Day 013. Calculating and logging the game's frame rate.
Day 014. Cross-platform api design and video display output.
Day 015. Cross-platform sound output.
Day 016. Cross-platform game controller input.
Day 017. Platform independent memory.
Day 018. Debug File IO, Part 1.
Day 019. Wrapping up Debug File IO.
Day 020. Enforcing a Video Frame Rate.
Day 021. Custom Clang Compiler Warning Flags.
Day 022. Configuring Sound Buffer Audio Latency.
Day 023. Dynamically Loading the Game's Source Code.
I also have a Github repo you can use to follow my videos.
Handmade Hero Mac OS Platform Layer
Please use this as forum to discuss what you see in the videos, and I will do my best to respond.
Be sure to support Handmade Hero and buy a copy of the game so you can follow along.
You can also support this work on Patreon.