I've been wandering round the internet (it takes a while) looking at 3D engines for my latest project. Being a Python programmer, and not wanting to spend a month or two learning C/C++, my focus is mainly on the Python bindings of engines, and thus we come to CrystalSpace.
I checked out a copy of CVS and compiled it (well, I updated from CVS until it did compile, there were some changes going on it seems), and loaded up things like walktest and csdemo, which all seem to work well. I then proceeded to the CS python bindings directory, and loaded up tutorial0.py, and I get this error/traceback:
$ python tutorial3.py
SCF_WARNING: class crystalspace.collisiondetection.opcode (from /usr/lib/crystalspace/csopcode.so) has already been registered in the same context `crystalspace' (in /usr/lib/crystalspace/opcode.so)
WARNING: could not load plugin 'crystalspace.window.x.extf86vm'
Traceback (most recent call last):
File "tutorial3.py", line 197, in ?
if not csInitializer.SetupEventHandler(object_reg, EventHandler):
File "/usr/share/crystalspace/bindings/python/cspace.py", line 13252, in _csInitializer_SetupEventHandler
hdlr = _EventHandlerFuncWrapper(obj)
File "/usr/share/crystalspace/bindings/python/cspace.py", line 13240, in __init__
File "/usr/share/crystalspace/bindings/python/cspace.py", line 13236, in __init__
TypeError: __init__() takes exactly 1 argument (2 given)
This has been occurring in CVS builds since at least two days ago, and since there seems to be no mention of it I'm guessing it's either specific to my computer (OS = Ubuntu 5.10), a new bug, or not many people use the CS python bindings. I've dug around in the binding file (cspace.py), and tried reducing the number of arguments passed to _csPyEventHandler.__init__ to just one, and then another error comes up telling me that _csPyEventHandler has no constructor (the error is written into the code, so I assume it is due to how the bindings are made/translated/whatever).
I tried the pseudo-stable builds, which fail on a different error, but these say below them that they don't work with Python anyway.
Any ideas what this is? Should I go file a bug report? I've had a look at other engines, but OGRE lacks some features, such as portals, and Soya3D isn't exactly great under high load, so it would be great if I could get CS working.