Right now I'm trying to find examples of games that have third party clients, and the effect they had on the game's development. Does anybody have a good case to study?
This might be a somewhat different example in several respects, but civilization is very modable:
see here. There are three levels, XML for the data (much like Toady's text files now), Python for a lot of what happens during the game including aspects of the interface, and even a SDK to modify the "DLL source code" of the game. Of course, making the game that way probably wasn't trivial. For the Python part, they used the so-called Boost libraries, which are supposed to simplify producing a Python interface to your c++ program. Myself I don't have any experience with them.
I did a little bit of Python scripting for Civ4 myself (map generation), so I can describe how it looks in practice: Basically, you had certain functions such as "generate_terrain" or "place_civilizations". The way the engine used these functions was not accessible via Python (e.g. when they are called etc), but you could implement what they actually do in Python (e.g. some people simulated plate tectonics to generate the terrain). Moreover, you had predefined functions you could call to request data from the engine (e.g. number of players etc.).
As far as I understand, Boost basically helps you creating wrappers around your c++ functions to be accessible
from Python or vice versa.
Maybe this would be a starting point *if* Toady ever wants to explore the subject (and yes, there might be more important things). Use boost so that one has in Python two functions, "draw" and "getInput", which are called from the engine. "Draw" can access only the visual info which would normally be displayed, and "getInput" channels what would be key commands. With that you couldn't do much more than say maybe implement mouse support or rearrange some basic stuff, but it might be something to try out.