Python script and C++
grahn+nntp at snipabacken.dyndns.org
Tue Nov 28 13:28:59 CET 2006
On Tue, 28 Nov 2006 10:12:23 +0100, Marc 'BlackJack' Rintsch <bj_666 at gmx.net> wrote:
> In <1164691472.172783.151290 at n67g2000cwd.googlegroups.com>, Ravi Teja
>>> 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,
// Jorgen Grahn <grahn@ Ph'nglui mglw'nafh Cthulhu
\X/ snipabacken.dyndns.org> R'lyeh wgah'nagl fhtagn!
More information about the Python-list