I intend to write a game in Python and, later, if needed, offload any performance-critical sections of code to C++. I want to use Python basically because I am really familiar with the language and I find writing game logic in it to be easier. However, unlike game logic which runs at a constant rate(50-60 ticks/s), you usually want to do rendering as fast as the hardware allows. Given this, the renderer will probably be the first thing to optimize out.
The game is overall written in Python, the game loop as well, the renderer is written in C/C++ and called from Python
The game is written in Python, the loop is written in C/C++ and call the game logic which is Python, and renderer which is C++(I intend to do this with Cython)
The game, loop and renderer are written in C++, only the logic is written in Python
I personally dislike the third option because I've tried it before and designing the abstraction layer between C++ and Python is a bit of a hassle compared to the other way round.
Considering each approach what would be the incurred overhead of 1 and 2 compared to 3, and 1 compared to 2?