On Tue, 28 Nov 2006 10:12:23 +0100, Marc 'BlackJack' Rintsch <bj****@gmx.netwrote:
In <11**********************@n67g2000cwd.googlegroups .com>, 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!