On Tue, 28 Nov 2006 10:12:23 +0100, Marc 'BlackJack' Rintsch <[EMAIL PROTECTED]> wrote: > In <[EMAIL PROTECTED]>, Ravi Teja > wrote: > >>> I am new to python and currently I am working on a traffic simulation >>> which I plan to define the various agents using scripting. It's kind of like >>> scripting for non-playable character in games. I am thinking of using python >>> for this but I am concerned with running time. Is scripting a lot slower >>> compared to direct implementation in C++? Does compiling the script help in >>> any way? >> >> Python is perfectly suitable for this use. Python was in use in video >> games in this way when computers were a lot slower. > > There's a difference between simulations and games. The simulation will > not always be observed by a human being so it runs as fast as possible. > In games the speed of NPCs is usually limited to a level the player can > deal with.
Yeah. Simulation can mean running for a week on the best hardware available, with the most optimized code you can come up with. And a week may be acceptable, while two weeks are not. > But I think Python is fine for such a task. I am not so sure, but ... > The only way to find out if > it may be to slow is writing a prototype and measure. ... this is a good approach. > Maybe it's a good > idea to design the API for the "NPCs" independent from the language so you > can also write them in C++ or another scripting language. However, if that API requires thousands of calls per second during simulation time, it doesn't help speed much, because calling C code from Python is a pretty heavy thing in itself. The big win is when you spend a lot of uninterrupted CPU time in C code. One approach is to write the executive engine in C++ (once again: if needed) and the compiler/configuration subsystem -- the thing that generates the simulated world -- in Python. That's a perfect place for a flexible, high-level language. /Jorgen -- // Jorgen Grahn <grahn@ Ph'nglui mglw'nafh Cthulhu \X/ snipabacken.dyndns.org> R'lyeh wgah'nagl fhtagn! -- http://mail.python.org/mailman/listinfo/python-list