Handmade Hero»Forums»Game
1 posts
How current is the whole HMH series today?
Edited by neon on

Hello, I have found HMH today and I am so thrilled. But I am not sure at all, how current is the 2014 videos today. Can I still follow the first videos as they are today?

If not.. are there any updates about what has changed, how to accommodate?

And also, I am not sure about this. I am running on Linux. Is the HMH only for Windows users? Or am I able to follow on Linux too?

And is there any Linux IDE where I can see the assembly output and check registers?

Thanks a lot.

Simon Anciaux
1057 posts
How current is the whole HMH series today?

HMH is more about how to approach/think about programming than teaching you a specific topic but it will still teach you a lot of things.

The videos are still valid today, but you should consider them as a way to do things, not THE way to do things. Some things Casey wouldn't do the same way today (because he has more knowledge now, and the industry evolved), but they are still valid (and working) and will help you learn how things work.

For the changes, you can use a more recent compiler (e.g. vs20019, Clang or GCC), don't try to use emacs, use any editor you like (Casey switched to 4coder, and uses his own editor outside of HMH).

HMH is on Windows only at the moment. But that's only a small part of the code (the platform layer) and peoples have made ports to linux and other OS. The platform layer is creating a window, processing inputs, initializing sound, providing file access and a bit later creating an OpenGL context. The game layer should be the same on Windows and linux.

I don't know about IDE on linux, but I suppose there is QtCreator (never used it myself). To debug (the following are not IDEs) you can use GDB (there are several GUI tool for it), or one of the project on this site is CodeClap although it's not free and still in the alpha stage.

36 posts
How current is the whole HMH series today?
Edited by graeme on

In addition to what mrmixer said, this

If not.. are there any updates about what has changed, how to accommodate?

can be answered directly: almost nothing has changed.

When HMH started, just about everyone had moved onto multicore x64 architectures, the previous generation of consoles were pretty new, and bindless OpenGL was becoming a thing. These all together set a nice baseline that still holds today: you can use CPU features common to all x64 machines, you need to use SIMD and multithreading to get the most out of the hardware, and you no longer have to use the (now a bit dated, but fine for a game like HMH) binding oriented graphics APIs.

The newer consoles and machines of today are mostly just more powerful, and the hw raytracing and upscaling are pretty out of scope for HMH. If you compare that to the 360 and PS3, those were both pretty weird compared to each other and to desktop machines. Basically any discussion of programming those directly is now hopelessly out of date, and HMH doesn't have any.

Bindless graphics doesn't mean much if you are new to graphics APIs but they're one of the things that differentiate D3D12 and Vulkan from D3D11 and OpenGL. You can do it in those older APIs, but it's kind of backported and they weren't designed with it in mind. HMH was where I first learned about bindless graphics, and it's still the thing you are sure to see mentioned when a rendering engineer tweets about their new engine. So while you might not choose OpenGL today, Casey is still able to give a good discussion of what you'd do differently now, even back then.

Casey chose a good time to start!!