After looking around at game engines the other day I came across the godot engine. From what I could gather, it seemed to be the most programmer friendly engine in that it allows you to script natively (GDnative) and even extend engine functionality through C++ 'modules' (as described here). Being a C++ programmer I like to have full control over my game and how it runs but I don't necessarily want to start from scratch and godot seems like a good middle ground. However, when looking at the pros and cons of the godot engine I found this site which lists a con for godot as difficult to optimize since:
QuoteGodot has an OOP architecture. Everything is an object internally and data is spread among many classes, thus it's difficult to optimize (i.e. not cache friendly, difficuly to vectorize or paralellize, etc). Read about "Data Oriented Design" for more info about the problems and solutions.
I'm curios if anyone has any experience creating modules with godot and what exactly their limitations are in regards to optimization/control over your game code. According to godot's author you even have the ability to utilize a different renderer through modules making me believe that even though godot has something resembling an OOP architecture at its core, you can still implement a data oriented render engine if you so pleased.