AIInterface:Python
Spring PyAI
The Spring PyAI Interface can be used to write skirmish AIs in Python.
Code
http://github.com/spring/Python
Building
From the README:
First get the clean spring sourcecode:
git clone git://github.com/spring/spring.git spring
then get the springpyai code into the right folder
git clone git://springpyai.git.sourceforge.net/gitroot/springpyai/springpyai spring/AI/Interfaces/Python
and link the nullpythonai to the right folder to get it compiled
ln -s ../Interfaces/Python/test/NullPythonAI/ spring/AI/Skirmish/NullPythonAI
That's it, when python is detected, the Interface will be compiled automatically.
Quick Setup Windows
download + install:
http://buildbot.eat-peet.net/spring/installer/spring_0.81.0-888-g4813344.exe
download + extract to install-folder
http://abma.de/builds/pyai-current.zip
download + install python:
http://www.python.org/ftp/python/2.5.4/python-2.5.4.msi
Download a mod + map.
It doesn't work with the currently stable spring release. Would be nice if someone could pick the source and compile it and test it.
If you want test it, [b]you need spring from the current git master[/b]! What is currently untested:
- compile with windows (mingw / visual studio + co)
Known Issuses/TODO
- there is currently no type-checking, if you send wrong data through the interface to the engine, bad things happen! (crash/hang/...)
- there are no docs, look into interface.py if you search a function
- the interface is linked with python, so you have to use the same version of python as it was when compiled, on windows python2.5 has to be installed, it is also needed to install the .py libs.
- try to load the python lib and bind dynamic to allow different python versions
As a note: most of the Interface is generated by a python script.
For windows there is a (cross-compiled) package here: http://abma.de/builds/pyai-current.zip
Status
Most functions and Datatypes should work. However, there is no typechecking at this point and the interface may crash if you use a wrong type. All classes and functions are generated and because of this, there is no further documentation available.
There is also a branch with the interface included avaiable: http://github.com/spring/spring/tree/pyAiInt
Check the NullPythonAI for something to start with.