¿Motor de juego con scripting en Python?

Looking to put together a 3D side-scrolling action platformer. Since this is my first time trying to put together a non-simple adventure game, I'm at a loss for which engine to consider.

I would prefer one that supports scripting in python, since that's my primary language. Without tight controls, the game will suck... so speed is a priority. Cross-platform is also important to me.

¿Alguna sugerencia?

preguntado el 08 de enero de 11 a las 16:01

8 Respuestas

Try PyGame and PyOpenGL together, Aquí hay unos ejemplos.

You also may use the Blender Game Engine.

Respondido 17 ago 19, 18:08

Blender Game Engine looks like just what the doctor ordered! But Panda3D and Unity look like excellent options too. - Garrett

Active game engines with Python scripting

  • Panda3D is a framework and requires low-level programming
  • piglet is a multimedia library and requires low-level programming

Inactive game engines with Python scripting

  • ratcave (based on pyglet, inactive since 2018)
  • Engendro 3D (inactivo desde 2018)
  • PySoy3D (inactivo desde 2016)
  • Delta3D (inactivo desde 2016)
  • sylphis3d (inactivo desde 2015)
  • Edén (based on Panda3D, inactive since 2014)
  • Python-Ogre (inactivo)
  • Blender Game Engine (interrumpido)
  • The OGRE engine used to have 3rd party Python bindings, as of 1.10 official Python bindings. As of 2.2 there is no official or 3rd party Python support.

Respondido 17 ago 19, 18:08

Panda3D: http://www.panda3d.org/

It's a 3D game engine written in C++ but specifically designed for use in Python. Disney has used it for some of its games in the past, including 2 MMOs. There is support for shaders, etc., and is BSD licensed. Windows, Mac, and Linux are all supported, and there appears to be a browser plugin. I haven't used it personally, though.

Respondido el 08 de enero de 11 a las 20:01

contestado el 23 de mayo de 17 a las 14:05

PyOgre is the Python bindings of the C++ graphics engine Ogre.

Respondido el 08 de enero de 11 a las 20:01

Unfortunately there are no game engines in the modern sense of the word (includes editors, tools, physics, not just an audio and graphics programming library), that support Python scripting.

However there are modern game engines, which have benefits like level editors and built-in physics that might make up for the lack of Python:

  • Godot (GDScript which has syntax similar to Python, open source)
  • La Unidad (C#, proprietary)
  • Irreal (C++, proprietary)

Respondido 17 ago 19, 18:08

Esto es lo que usaría: La Unidad. It has a learning curve, but once you get the hang of it, it's very powerful. It uses your choice of Java, Boo(which I hear is very similar to Python), and C#.

Regardless of what you pick, I would advise you learn Java. It's a widespread language, so it should open up lots of options for you in various ventures. Learning another language is always very good for you.

Respondido 09 Abr '11, 05:04

I completely forgot about Unity. Thanks for bringing it up. I think I'll go with Blender first and if I lose too much hair, switch to unity. - Garrett

@Kayle: Glad to help. Personally, I find it best to build the models in Blender, then import them into Unity(free version) and build a game out of them there. In my experience, Blender is more suited to animation, movies, etc, while Unity is better for games. - Juan

Both Unity and Unreal have excellent third party Python Bindings. Its been a while since I've used the Unity one, but at the time it was perfectly competent. It does use Iron Python, so its not the C Python implementation, but at least its not Boo which I believe has been dropped from Unity anyway.


And heres the Unreal one. I've used this a lot, and it works great. Its a bit of a headache to install initially, and I'd advise against it if your planning to deploy mobile as you'd have to get your hands dirty with some messy C++ and a very tight runtime. But if your writing a desktop game, its perfectly competent.


Respondido 06 ago 18, 15:08

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.