Have a look: http://github.com/elcerdo/cells
Once we have the features, gameplay and balancing figured out,
something like this would be a way forward, the performance benefits
would be huge, and it would allowing bots written in other languages a
lot more feasible.
Thomas
I would strongly suggest investigating the performance benefits
available with Cython before switching to C++. On the other hand, it
is unlikely that I will continue to have the amount of time to invest
in cells that I have had lately. (By the way, how much does Psyco help
vs. disabling it?)
-Scott
I agree, Cython is also a good option. Then we can mix and match, only
doing the heavy duty functions in C/C++.
> (By the way, how much does Psyco help vs. disabling it?)
Psyco speedup is neglectible for me at the moment. It used to have
about a 2x speedup in early versions. Have you run anything with
cython yet? How big is the effect there?
Thomas
The Cythonified function moves down considerably in the profile list,
but not to zero. Rewriting more of the core in Cython would help,
because Python function calls themselves are kind of slow, but Cython
functions can call each other in C and/or be inlined if things are
done appropriately. The agent code itself is also kind of a
bottleneck.
If the game semantics in terms of turn ordering are refined and the
rules come out nicely, it should be possible to parallelize the
evaluation of cells' actions. The desired constraints or lack thereof
on cell programs (particularly w.r.t. shared global state not using
the message queue) would be an important factor in any such
modification.
-Scott