It was a total PITA to work with but not due to the engine itself but some choices that were made over time to use IN CODE FEATURE SWITCHES since it was before git and branches. There were thousands of features added and controlled with statements like this:
#define ENABLE_FEATURE
#ifdef ENABLE_FEATURE // New feature implemented #else // Old code that is left around but probabbly won't work if the feature gets disabled #endif
Then multiply this choice by every...single...line...of code that had to be changed for one feature. It was nightmare until we could adopt and transition to Git with branches and clean it up.
That does sound like a nightmare to work with, especially since there's a lot of context switching going on too. Too much mental overhead.