Aprende programación






26 jul 2010

Open Sonic - Desarrollo de dos fases (versión beta)

Al iniciar el año dos de los retos que me propuse fué retomar C a fondo (el actual, no del viejo Turbo C Borland) y participar en un proyecto de software libre. Pues bién, encontré un proyecto el año pasado que me llamó mucho la atención. Era una versión libre del Sonic. Aunque los gráficos del Sonic tienen copyright, (no os recomiendo distribuirlo aunque sea 'open'), el motor que lee los sprites y los anima, si lo es (al menos eso creo) y tengo que decir que está bastante bién diseñado ya que toda la animación, gráficos, musica, etc se realizan por configuración en ficheros txt. Un aplauso a los desarrolladores del proyecto.

Como siempre he sido un fan del Sonic, he decidido participar en este proyecto. La primera fase ha sido desarrollar dos fases para el juego. De momento están en versión beta y no sé si decorarlo más porque han quedado un tanto simples. Sin embargo, el desarrollo de las fases es muy interesante porque cada personaje solo pueden ir por un sitio y estos deben combinar los items que se encuentran para resolver la fase. La característica de Tails es que puede volar y puede levantar otro personaje, la de Knuckles es que puede trepar por las paredes y la de Sonic es que puede solo él puede traspasar un rayo azul que hay en el escenario.

Para desarrollar una fase hay que crear los siguientes ficheros:
  • En el directorio musics almacenar un fichero de audio con la canción de fondo. Comentar que la canción la he hecho con OpenMTP que es un tracker libre. Aquí podeis poner cualquier fichero .ogg por lo que podeis realizarlo con cualquier programa de edición de audio.
  • En el directorio images hay que almacenar los bloques y los fondos de pantalla (background). Puedes poner todo en un mismo fichero y luego referenciar las imagenes con (x1,y1)-(x2,y2).
  • En el directorio themes hay que crear dos ficheros. Uno con extensión .bg donde se indica que imagen será la de fondo. Puedes poner varias imagenes si quieres que tenga diferentes planos de scroll. El otro fichero tiene extensión .brk donde se asigna un número y un comportamiento a una imagen (x1,y1)-(x2,y2) del fichero de imagenes.
  • En el directorio levels hay que crear los niveles de manera que se indican las posiciones donde están los bloques, items o sprites (enemigos). No hace falta editar el fichero directamente ya que en cualquier momento de la partida pulsando F12, se ejecuta un editor donde permite añadir y borrar elementos. Para volver a la anterior ventana (sin guardar) pulsar otra vez F12 o si te han gustado CtrlIzq+F12. Si estás más interesado, hay en el foro unas instrucciones de las teclas posibles para editar pantallas.
  • Finalmente, como algo opcional, puedes agrupar diferentes niveles en un juego. Esto se realiza creando un fichero en el directorio quests. Se puede jugar a los niveles sin poner este fichero pero para jugar a él tendrás que ir a la parte de opciones.
¿Y que hay que hacer para probarlo?
Para probar Open Sonic tan solo hay que descargarlo de la página oficial. http://opensnc.sourceforge.net/





Aquí tendreis tanto los binarios como el código fuente. Una vez lo hayais hecho arrancar, podeis jugar partidas a las fases que vienen por defecto. Si quereis añadir más fases tan solo tendreis que descomprimir el fichero en el directorio donde esté ubicado de manera que encaje los ficheros .lev en el directorio levels, los .ogg o .it en el directorio musics, etc.

Aquí teneis las fases que he diseñado llamada Puzzle Zone.
Pulsar aquí para descargar

Por último, esta es una versión beta y espero ir dando acabados en futuras entregas. Por ello, se aceptan sugerencias para mejorarlo.

3 comentarios:

  1. conocía el proyecto. Realmente es muy bueno. Me voy a volver a bajar haber si tiene novedades. Jugué un poco y me gusto mucho, ademas me hizo acordar los bien los tiempos..eje

    ResponderEliminar
  2. Si que está interesante el proyecto. Yo por mi parte intentaré participar para aprender más C. Como dijo una vez Peyrona, "leer el código de los demás te hace ser mejor programador". :)

    En lo que respecta a OpenSonic, de momento, tienen desarrolladas oficialmente dos fases aunque puedes descargar más fases en el foro de personas que hacen nuevas fases. Claramente, en este foro hay de todo, fases muy curradas y fases para personas que están iniciando (como la mia). De estas, mis preferidas son:

    Velocity volcano: http://opensnc.sourceforge.net/forum/viewtopic.php?id=381

    Water land: http://opensnc.sourceforge.net/forum/viewtopic.php?id=378

    Animarte a tomar de muestra estas para hacer nuevas fases. No hace falta saber programar solo pulsas F12 mientras estás jugando y puedes editar cualquier rediseñandola de nuevo. Luego, los gráficos y la música siempre los puedes cambiar tú o pedir ayuda a otra persona (si no son tu fuerte).

    De momento, estoy aprendiendo a hacer loops. ;)

    ResponderEliminar
  3. muchas gracias por al información. Cunado tenga más tiempo voy a entrar en los link que pusiste para ver que dice. XD

    ResponderEliminar