I think I'm about to bite a big bullet I've been putting off for a very long time. I've put a lot of time into integrating Python as a scripting language for my little game engine. Most of my time has been in cooperating with Python. Since I started doing that, I've learned about Python's fickle nature with multithreading, the global interpreter lock, and a lot about asynchronous programming generally. I also switched over to Stackless Python. Stackless works by honoring explicit yield instructions in the code to allow a complete context switch to some other task. If I were to use the normal command prompt here, it would block on the keyboard input. So I need something that can peek on a keyboard buffer, react to interact with the interpreter, and otherwise not be stealing too much time.
Managing a console like this has turned out to be a huge pain in the ass. Given everything else, I'm not surprised at all anymore. The main issue is having to manage line discipline. A major tactile part of Python's console is using the arrow keys, tabs, and of course backspace and delete. A normal text box is going to take over these events for typical text box navigation. But instead I need to trap them and have the interpreter take care of them. There's a nice Python module (the cmd module) that can be used to completely imitate the interpreter, and it will receive traps for those keys.
The Irrlicht edit box is a good base candidate for doing this stuff but it looks like I'd have to go in and muck with it to transmit those keys as events that I can propagate over to some Python code that will pump it through the cmd module. All this so I don't have Python blocking on keyboard input.
I figured I'd just ask here for some advice on this, but it's been hard to come by anywhere, so I was just going to use this thread to complain about it while I slogged through it.
