views:

1915

answers:

9

I am planning to write an simple 3d(isometric view) game in Java using jMonkeyEngine - nothing to fancy, I just want to learn something about OpenGL and writing efficient algorithms (random map generating ones).

When I was planning what to do, I started wondering about switching to Python. I know that Python didn't come into existence to be a tool to write 3d games, but is it possible to write good looking games with this language?

I have in mind 3d graphics, nice effects and free CPU time to power to rest of game engine? I had seen good looking java games - and too be honest, I was rather shocked when I saw level of detail achieved in Runescape HD.

On the other hand, pygame.org has only 2d games, with some starting 3d projects. Are there any efficient 3d game engines for python? Is pyopengl the only alternative? Good looking games in python aren't popular or possible to achieve?

I would be grateful for any information / feedback.

+10  A: 

If you are worried about 3D performance: Most of the performance-critical parts will be handled by OpenGL (in a C library or even in hardware), so the language you use to drive it should not matter too much.

To really find out if performance is a problem, you'd have to try it. But there is no reason why it cannot work in principle.

At any rate, you could still optimize the critical parts, either in Python or by dropping to C. You still gain Python's benefit for most of the game engine which is less performance-critical.

sleske
+2  A: 

You might want to check out Python-Ogre. I just messed with it myself, nothing serious, but seems pretty good.

radioact1ve
I've been thinking of doing a re-write for WiiTanks on the PC, and had been toying with PyGame... but Ogre looks rather promising - thanks very much for the link!
Jon Cage
+2  A: 

Perhaps a wee bit off topic but, if your goal is to learn Python, how about creating a game using IronPython and XNA? XNA is not OpenGL though, yet I find it an extremely simple 2D/3D engine which is fast and supports Shader Model 3.0.

Peter Lillevold
Like swearing in church I guess...
Peter Lillevold
+1  A: 

Check out the Frets on Fire project -- an open source Guitar Hero alternative. It's written in Python and has decent 3D graphics in OpenGL. I would suggest checking out its sources for hints on libraries etc.

DzinX
+7  A: 

Yes. Eve Online does it.

http://support.eve-online.com/Pages/KB/Article.aspx?id=128

S.Lott
My thoughts exactly :)
Jon Cage
However it's worth noting that much of Eve is implemented in C++. It is held together by Python however.
Kylotan
+1  A: 

I would recommend pyglet which is a similar system to pygame, but with full bindings to OpenGL. You can start with simple 2D games to get the hang of the system and work up to 3D later. It is a more modern system than PyGame which is built around SDL which itself is a bit long in the tooth these days.

Kylotan
+1  A: 

There was a Vampires game out a few years ago where most if not all of the code was in Python. Not sure if the 3D routines were in them, but it worked fine.

Alex Boschmans
A: 

The best 3D engine imho happens to use Python: www.panda3d.org

jhocking
"Automatically-generated [python] wrappers ... all core functionality in C++" suggests to me that python is just sitting on top.
danio
A: 

Lol, panda3D, gtfo with your Disney crap.

Panda3D doesn't support anything high-quality, and it's entire design is pathetic, plus, look at the games made with it, ew.

Zachary Trant