mmozeiko
HH mostly will teach you about how to think about code when writing games or how to better structure data for your code to run fast. In HH you can learn about some basic functionality, for example, some Windows API, multi-threading, simd programming, debug system, etc.. that are common to all game engines. But it will not teach you all necessary things that are needed for "3d fps game". You'll need to learn about most of needed things yourself.
mmozeiko
There is not such thing as list of things "needed for a 3d engine". Each engine is different depending on features/capabilities/target audience. Just open homepage of any big 3d engine (unreal? cryengine?) and check out their feature lists, that will give you a feeling what HH does not have and won't have.
mrmixer
Handmade Hero will help you with opening a window, creating an OpenGL context, creating some shader, adding object in the world in 2d and 3d, some 2d collision, adding sounds, and understanding the math being all that. With that you could have the basis to make a bare bone (not ready to use to make a serious game) fps engine. But it will take time to get all that as it's spread across lots of episodes. Also you'll need more math than what's covered (for example: Quaternion).
I don't know if it's still going on but there is a Handmade Quake video series that is recreating the Quake (2 ?) engine. But I don't know what the series covers.
AsafG
You'll probably find a lot of useful information in the blackboard sessions.
pragmatic_hero
1. You don't need an engine to make a FPS.
2. You don't need quaternions to make a FPS.
Frankly you don't even need SIMD (outside of what compilers spits out for you on release build) or multithreading.
People have this tendency here to over-complicate things.
You can even initially avoid shaders to reduce scope of things you have to learn at once.
Take a look at CUBE game, http://cubeengine.com/cube.php.
And how little code it has, even though it has multiplayer and a built in editor.
And frankly the code here could even be shorter since CUBE does occlusion culling to avoid overdraw, and you can really just use one VBO (or couple of chunked VBOs for the whole level).
You can have a simple CUBE or voxel like *engine* in something close to *zero lines of code*.
All you need is a good understanding of vectormath, matrices and transforms. Plus basic OpenGL and GLFW/SDL.
You can bolt on things on top of that quite easily once you've got the hang of it.
Quake2 like engine is slightly more complicated. Collision detection & response is more tricky, and lightmap baking is more involved (or you can use an external tool for that). But it still can be pulled of with very low LoC.
I failed high-school math, and couldn't even spell linear algebra two years ago. I'd never done any game programming to speak of, and had never written any C code before starting Handmade Hero.this second one claims it's a 3D engine but I have failed to find a way to contact him to get some more info, so that's where I got the initial motivation of following HH to build a 3D engine lol ^^ , now do you recommend taking another path?
After watching through most of the series, and writing a 3d engine (HH style, no libraries), I have internalized an amazing amount; the vast majority of what Casey's gone over. I agree that often times he goes into more detail than necessary - even for me, who started knowing literally nothing about what he was talking about, but I would attribute the amount of learning I've gotten out of the series to exactly that. For someone that doesn't understand the difference between an Object Transform and a Camera Transform, the only way for them to actually learn what they are is to hammer it home again and again - through examples and practice. I think I am exactly his target audience - young programmers who want to learn how to make video games.
Just my 2c
Pooria
now do you recommend taking another path?