Python-Ogre Dilemma

Started by
3 comments, last by Jan Johannsen 16 years, 1 month ago
Hi, I'm posting this here (instead of the Ogre3D site) in the hope of getting neutral advice as much as possible. I'm looking for the best tool for the job rather than stick with my current solution. I was a happy user of PyOgre (based on SWIG) for a while. It lagged behind Ogre's distributions and wasn't 100% complete, but it was lightweight enough and worked OK in most places. Sadly, that's been deprecated in favor of Python-Ogre, which uses Py++ (based on boost::python and pygccxml). Since you all know the potential for bloated code when you use boost & templates, you won't be surprised to hear that the optimized Linux binary is 55 Mb and the Windows one is almost 20 Mb... The difference being that less of the API is exposed by default in the second case. I don't like the idea of my users downloading that much when the Ogre library is already 5Mb, and other fully featured AAA game binaries are only slightly bigger. Basically, I'm looking for a lightweight binding to an engine with typical features (e.g. skeletal animation, 3D models, basic textures and shaders) in Python, but that seems to be rather hard to find in the end. :-| Do you have any advice? Should I stick with Python-Ogre and just rebind everything I need? Do you agree that boost::python is a dead end in this case and I shouldn't waste my time? Are there any other good engines with a descent asset pipeline that are bound to Python? Thanks!

Join us in Vienna for the nucl.ai Conference 2015, on July 20-22... Don't miss it!

Advertisement
Maybe Panda3d can help you? www.panda3d.org
Toontown online was made with it.
If I zip my _ogre.pyd file it shirnks to a little less than 4 MB (on windows from 19 MB) or to 2.2 MB with 7-zip. The old pyOgre pyd file is 1.4 MB after I have zipped it. I don't think 3 MB more is that much compared to the rest of the ogre lib files in most cases. (And after it is installed 20 more MBs is not anything I would bother much about.)

The advantage is that it is easier to wrap with p++ than swig (or so they say at least ;) ). They have wrapped a lot more with it than pyOgre ever did with swig. Last time I checked it had 4 gui libs, 6 addons, 1 IO, 10 physics and 1 sound library more or less wrapped which is a big advantage if you want to use something more than just ogre. It also allows the binding to be more easily updated and kept in sync with ogre itself which is a nice thing.
IrrLicht has a python binding, but IrrLicht is also quite large, weighing nearly 8MB as a static library.

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]

OT Reference: Most of the 3D and 2D libraries and some comments can be found on wikipedia's wikibooks section.

Link to Wikibook reference

This topic is closed to new replies.

Advertisement