For years, Unity was my go-to engine. It allows for incredibly fast prototyping and has a massive community. But as I began pushing the boundaries of action-combat mechanics, I hit a wall: Garbage Collection.
When you are building a game that requires frame-perfect parries, a random 15ms CPU spike because the engine decided to clean up memory is entirely unacceptable. It ruins the player experience.
Moving to C++ meant stripping away all the training wheels. I had to learn how to manage my own pointers, write my own memory allocators, and handle object pooling manually. The first month was brutal. But the result? A combat system that never drops a frame.