100DaysOfGameDev: Day 17

Today was a bit different. Instead of reading the book I decided to do some of the exercises included. They were small, simple, and boring and wasted my time. However, one of the exercises was interesting. It asked me to find a real C++ production code and check how many casts they are using and which variants. One great candidate I found for that exercise is RBDOOM-3-BFG, which is a forked ( and improved version ) of the original Doom 3 BFG Edition source code published by id Software. I got a bit carried away and was reading the source and I was surprised at how clean it was ( expecting any production code to be disgusting ), at the same time a feeling of nausea came over me from the size of the codebase and thought of how much I have yet to learn. I tried to build the project on m1 macbook, although there was an issue with Vulkan SDK and I couldn't figure it out. However, I am used to not being able to build anything on mac xD On the other hand, later I tried to build it on Windows and it was a couple of clicks, which is sad, that only windows receives such great support and care. Finally, I finished chapter 16 covering the basics of classes in C++ and I really like the concrete classes. It's one of the few things I like about C++, the ability to define your own type for abstract ideas, that will be used frequently with almost zero overhead. Memory for them can be allocated on a stack and it's simple to move and copy them. That's it for today, see you!