New to Python-Ogre


10-08-2008 06:36:34

Hi everyone :D,

I'm new to Ogre3D but I guess I know well enough what to ask. I've actually finished the tutorials and I wish to make a very simple 1 vs 1 fighting game with it.

Anyway, I've never programed in Python. But Python-Ogre seems to interest me a lot. But before I study Python for Python-Ogre, I'd like to be sure if it's really worth it.

Here are my questions:

1. I understand Ogre3D is just a 3D graphics engine. But what about Python-Ogre? I see that it's not just a wrapper for Ogre but also for many libraries (GUI, input, Physics, sound, network) integral to 3D game development. Is the integration between these libraries tight enough for Python-Ogre to qualify as a 3D Game Engine like CrystalSpace for instance?

2. Are there any issues with Python-Ogre on MAC OSX. This is one thing I am particularly concerned about.

3. I don't think I can integrate libraries on my own so I'm really considering Python-Ogre. If the answer to my first question is yes, does it mean all i need is Python installed and Python-Ogre or should I still download the libraries?

That will be all for now. Thanks in advance.


10-08-2008 09:21:45

I can answer 1. and 3. I don't have a mac, so, uh, yeah. Don't know 2. I know that python-ogre on any other platform have been less together in the past than on windows. I'm not sure if this is still the case, but I do know it has gotten better, just judging from the nature of posts on the mailing list.

But as to question 1 (and 2 really), python-ogre is loaded with stuff. There is enough to make a game with just python + python-ogre. If you want to release the game, you will need py2exe for windows, py2app for mac, and I don't know for linux. Other than that, it's packed.

On the other hand, you may find a library you want to use for something that is either better capable than what is used in python-ogre, or does something a built-in doesn't do. For instance, for networking I am using twisted, because the only built-in networking is raw python sockets, which can be twicky. Sometimes using other libraries outside of python-ogre can take some doing, but it's at least possible if you need it. Sometimes using other libraries is easy, like if you want to talk to a database.

Anyway, your simple 1v1 fighting game doesn't sound like it would need anything other than python+python-ogre.

Uh, I don't know if I'd call python-ogre a 3d game engine, but I wouldn't call crystal space a 3d game engine either. A game engine is what you create for a specific game that makes it run as a game in my opinion. It is how you use the 3d renderer, interface, and physics together.

Anyway, welcome to python-ogre. Hope you stay!


10-08-2008 10:37:26

Thank you so much Saluk. Yes, the game I'm planning is a very simple fighting game. Perhaps one similar to old Tekken 1. Perhaps like only 4 or 5 moves per character with sound, collision detection, input and the other basics just so I'll learn how we're supposed to do things in Ogre.

I went through the tutorials of Ogre3D. No question in my mind how great the graphic package is after trying to get things done in CS (where I terribly got lost). However, what made me worry was the fact that I had to glue the other components like GUI, Physics etc. manually.

Then I found my way to the Python-Ogre website. At first I sort of dismissed it because I'm not really into Programming Languages with non-C-like syntax.

Then made a research on Python and found out that the syntax ain't that far from C, although there are no curly braces :( and that a lot of people are using it in the game dev scene. So now I'm finding out whether I should learn Python or not.

Regarding MAC, is there anyone here who had experience with Python-Ogre on Macintosh? I'm having a hard time deciding seeing there's currently no Python-Ogre binary for MAC and the other thread says somebody is having a big issue compiling Python-Ogre under OSX.

Please help me out. Thanks in advance. :D


10-08-2008 22:44:03

I have faith that both linux and mac builds will be up and running before long, but right now things still seem to be a bit of an issue. So that could be a problem.

Python is a capable language, you can really get used to no curly braces :) And the ease of many kinds of structures really is nothing to scoff at. It is beginning to be used in more professional games these days, like EVE and civilization 4, so it's a good language. However, if you have already worked through the ogre tutorials and are comfortable with that, you might like to stick with it. There are other packages that put ogre together in a complete engine, and integrating other libraries for sound or interface is really not that hard.

In that case you would probably want ogreal for sound, ois for input, ogreode or ogrenewt, and cegui for gui - all of these packages are included in python-ogre, but you can also use them from regular c++ ogre3d. If it were more integrated, all that would do is make it less free for people to choose different options. Like some people use wxwidgets for the gui, to make more of an application. If the components were more integrated, it would make it harder to do things like that. So C++ or python it doesn't really effect integration all that much, except that python-ogre downloads them all together, whereas with C++ you will only download what you need.

I would say if you are really comfortable with your c++ and your curly braces, you might just want to stick to ogre, and download the components you need and hook them up. There are many tutorials and forum posts etc about everything.

On the other hand, if you want to try something new, and aren't afraid to work through compiling python-ogre for mac (which it is possible to do), you might at least give python-ogre a shot. You might ask if anyone has a build you could use also. A lot of things can be faster and easier to do with python, such as reading files, manipulating strings, or dealing with collections of objects with wildly different types and parameters (which is a situation that comes up often in games). It's worth learning something new for a different perspective.


11-08-2008 14:49:40

Yeah I am quite comfortable with my curly braces. They're like comfort food. :D

But I couldn't agree more with looking at Python as yet another opportunity to learn a new language.

Truth be told, I did try integrating the other libraries into ogre. Some I got running but with issues. And for each library I try to integrate, it took me quite some researching. That is why I'd rather opt for a set of libraries that are already integrated with each other. Not only am I guaranteed the stability but also, I'd be forced to learn a new incredible language. And that's a good thing.

You may expect more questions from me in the coming days and weeks. Thanks a lot :)