This is the developer's manual, where you find useful informations for developing on CA.
If you're running Debian/Ubuntu, then check this howto. If not, you can try to use the graball script from the gibraltar project.
And if you don't manage to get a working CS+CEL with these two methods, or you want to compile it yourself, then go to the CrystalSpace website.
Please don't install CS+CEL from the official Debian packages, it WON'T work
(package names for Ubuntu/Debian):
Copy-paste install (ubuntu/debian):
sudo apt-get install python-gtk2 python-kiwi python-gtkglext1 python-opengl python-lxml python-louie python-sqlobject python-sqlite python-configobj python-pythonmagick gazpacho python-twisted-core python-twisted-web python-twisted python-setuptools python-processing python-networkx python-pygraphviz python-pydot python-matplotlib python-yaml
# Get GtkCS hg clone http://rcs.kyanite-studios.org/hg/gtkcs
# Get CAF hg clone http://rcs.kyanite-studios.org/hg/caf
# Get DAMN hg clone http://rcs.kyanite-studios.org/hg/damn
# Get CA hg clone http://rcs.kyanite-studios.org/hg/ca
# Get metamodel hg clone http://rcs.kyanite-studios.org/hg/metamodel
cd ca
# Obsidian svn co https://b2cs.delcorp.org/svn/blender2crystal/branches/generalization/libs/obsidian/
# Csproperties wget http://delcorp.org/~caedes/csproperties.py
(is this still needed??)
Then, copy your vfs.cfg file :
cp $CRYSTAL/vfs.cfg vfs.cfg
$CAF/bin/plugdev ca/plugins caf/plugins
You need all of the following in pythonpath:
And run it :
cd ca $CAF/bin/launcher app.py (if this doesn't work, export your PYTHONPATH to point to the requested libs)
Knowing what is where while programming is very important, so it's a good start to read the class hierarchies.
The following describes ressources that are not python-specific (so not documented with epydoc) :
Services are objects that are unique in the system. They are used to exchange informations mostly. They are located inside “ca.core.services”.
You can get a pointer to the running CS instance by calling :
CrystalSpace.getSingleton()
A set of pointers are available (2d engine, 3d engine, etc) at the root (resp. cs.g2d, cs.g3d, …). Check sources.
CS/CEL objects are handled by the Obsidian library. Check http://b2cs.delcorp.org/index.php/GeneralizationProposal for (not so up-to-date) documentation and http://kyanite-studios.org/docs/obsidian/ for generated doc.
The plugin topic is a bit too wide to be covered in a single section. See plugins.
Check the developer protocol to find general guidelines for contributing.
Other documents like vision, roadmap and the “development state documents” can help you to see what's going on.
You can also join the mailing list or comment your ideas on irc (irc.freenode.net #kyanite).