Unfortunately perf isn’t the only roadblock here; middleware is a real problem too. Even if you write your game in Python, your AI, physics, and tree-drawing components were all written by somebody else, in C++. No matter how good your bindings are you have to do some data conversion every time you talk to one of those libraries, or else use C++ data types in your Python game engine.
That’s not to say that soft real time constraints and tight bounds on memory usage and so forth aren’t also hard problems, just that even if you have those things you still need the ability to carve out 12 bytes, put 3 4-bytes floats inside, and give it to Havok unaltered. Eventually people will port Havok and SpeedTree and such to your HLL (or write new better ones), but it’s a chicken and egg problem: no one will do that until there’s a robust market of studios using the language.
Unfortunately perf isn’t the only roadblock here; middleware is a real problem too. Even if you write your game in Python, your AI, physics, and tree-drawing components were all written by somebody else, in C++. No matter how good your bindings are you have to do some data conversion every time you talk to one of those libraries, or else use C++ data types in your Python game engine.
That’s not to say that soft real time constraints and tight bounds on memory usage and so forth aren’t also hard problems, just that even if you have those things you still need the ability to carve out 12 bytes, put 3 4-bytes floats inside, and give it to Havok unaltered. Eventually people will port Havok and SpeedTree and such to your HLL (or write new better ones), but it’s a chicken and egg problem: no one will do that until there’s a robust market of studios using the language.