For the last five years I have been writing a computer training game for learning perfect pitch.
I started out on iOS/XCode/Obj-C and moved to Unity3D/C#-scripting. From the get-go I have been hitting up against limitations of Unity3D -- it isn't designed for real-time audio, and it is constantly trying to get a square peg in a round hole. For example, in my game microphone input is fed into a ring resonator and sent out with the headphones as sympathetic resonance. It's impossible to achieve a latency < 0.2s with Unity, as opposed to < 0.01s that I could achieve with iOS.
But I love the idea of cross-platform. One day I will be able to release this game, and to release it simultaneously on all platforms would be fantastic! I also want to use Python. I've looked at Kivy (cross-platform+Python), but it is not designed with audio engineering in mind.
I am hoping that I will be able to use Juce and a mix of Python (for the game logic), GLES2 (for high performance graphics) and C/C++ (for low-level audio processing). In fact I'm hoping that Juce's API may mean I need to do a minimal amount of GLES2 and C/C++.
I have already recoded my game-logic in Python; it is complex game logic that is not performance critical. Also I am constantly revising the logic, trying out new ideas. Hence Python is the perfect language for this. C#/C++/Obj-C family of languages just don't have the flexibility to accommodate for this rapid prototyping.
My question is: can I write the game logic in Python, and still distribute a standalone app on every platform?
I've learned that Python is itself written in C, and if you add its source-tree to your C/C++ project, and #include "Python.h" you can start up a Python environment and execute scripts:
Py_Initialize();
PyRun_SimpleString(
"from time import time,ctime\n"
"print 'Today is',ctime(time())\n"
);
Then you need to worry about how to call script functions from C, and vice versa. But it all seems to be possible! Doc here: https://docs.python.org/2/extending/
I've looked through the forum history: There appears to be PyJuce, but this seems to be dead in the water; I am pulling up threads between people that haven't been active on this site for over six years.
I think that allowing Python scripting would massively increase the power of this engine. A fusion of high-level and low-level coding.
Is anyone interested in making this happen?
π
PS I've set my IRC client to auto-join #juce on the FREENODE irc server; I will be sitting in, if anyone is interested to talk about these things.
