python
Aunque no es la faceta más famosa de Python, Python es un lenguage con bastantes posibilidades para programar videojuegos. Por un lado convina la profundidad y recursos de usar las librerías de C/C++ y por otro la facilidad cercana a usar Flash, con un rendimiento medio entre ambas. Por lo que en muchas ocasiones en un buen lenguaje para programar cosas complejas de formarápida, aunque obviamente sacrificando rendimiento, al ser juegos interpretados y no compilados.
A continuación haré una pequeña reseña de las librerías más útiles para desarollar videojuegos:
- Pygame: Sin duda la librería más famosa de Python. Pygame lleva en desarrollo desde el 2001 por lo que tiene una gran comunidad, publicándose en su propia página web gran cantidad de juegos y demos con másde 1.000 proyecto registrados. Es multiplataforma a la perfección y la librería que menos problemas da al portar entre Linux/Windows/Mac, y es famosa por su facilidad de programación. Utiliza una librería de C llamada SDL, librería en la que están escritos los juegos 2d más famosos en Linux como Battle for Wesnoth, SuperTux o StepMania.
- PyOpenGL: Hablando de Pygame, esta tiene un fallo, y esque no soporta Aceleración gráfica al basarse en SDL. Aquí entra en juego PyOpenGL, un binding de OpenGL que se puede combinar con Pygame para añadir las funciones que a este le faltan. Eso sí, requiere un nivel de conocimiento de programación de videojuegos más alto, al ser una capa de abstracción máyor. Para quien no conozca OpenGL, es la competencia de DirectX en el mundo del software Libre, ytodos los juegos 3d libres y muchos cerrados corren sobre ella incluidos juegos de Blizzard y Valve.
- Pyglet: Pyglet es la alternativa a Pygame+PyOpenGL permitiendo aceleración gráfica y trabajar en 2d/3d, todo ello en una sola librería, y sin tener que recurrir a la engorrosa dificultad de PyOpenGL. Eso sí, sacrificando algunas utilidades avanzadas de pyopengl, y siendo un poco más dificil deusar que Pygame. Pyglet es una librería con un desarollo actual más rápido que pygame, que cada día gana más adeptos. En realidad Pyglet utiliza OpenGL en gran parte de sus funciones, pero facilitando su uso.
- Panda3d: Librería libre centrada en videojuegos 3D escrita para Python y C++. Es una librería orientada a 3D, y por lo tanto no apta para iniciados. Algunos juegos de Disney han usado estalibrería.
- Pymunk: Librería especialida en crear físicas 2D, como polígonos, colisiones, etc. Está basada en la famosa librería chipmunk, de la que podeis ver este video de demostración.
- Cocos2d: Este framework es una extensión de Pyglet que añade gran cantidad de efectos, rotar y manipular sprites, transiciones entre escenas con estilos, etc. Combinando Pyglet+Cocos2d se pueden realizar juegosde gran calidad.
- PyOgre: Binding para python de Ogre, un popular motor de renderizado 3D en C++ con una activa comunidad. Debe complementarse con otras librerías 3D como PyOpenGL.
VIDEOJUEGOS CON JAVA
Aunque esta estructura básica es muy sencilla, no es obvio cómo programarla en Java porque primero hay que saber cómo escribir un programa que habrá una ventana y actualice su contenidoperiódicamente. Para hacer esto se emplea Swing, la biblioteca estándar de Java para hacer aplicaciones que manejan ventanas.
Swing es un sistema muy flexible para manejo de ventanas y todos sus componentes como botones, menús y listas. Pero esta flexibilidad tiene un precio: Swing es muy extenso y toma algo de tiempo aprender cómo usarlo correctamente. Por suerte, para hacer un videojuego sólo esnecesario conocer una pequeña parte de Swing.
En este artículo vamos a ver lo mínimo que se necesita hacer un programa que abre una ventana en la cual despliega una animación. Para mantener el ejemplo lo más sencillo posible no vamos a permitir ninguna interacción, es decir que nuestro ciclo principal únicamente va ejecutar los pasos Ejecuta lógica del juego y Redibuja la pantalla.
Aunque este...
Regístrate para leer el documento completo.