Saturday, September 30, 2006

Programacion de juegos desde cero

En programacion encontramos diferentes ramas (por llamarlas de alguna manera), cada una requiere diferentes habilidades, para nombrar algunos ejemplos tenemos:

  • Sistemas Operativos
  • Dispositivos
  • Controladores (drivers)
  • Anti-virus
  • Virus
  • Frameworks (como .NET por ejemplo)
  • Programacion de juegos

Aun solo dentro de Windows, podriamos hablar de diferentes categorias:

  • Windows Nativo
  • Managed
  • Web Services
  • programacion paginas Web
  • etc...

La programacion de juegos es una de las ramas que requiere mas conocimiento en varios temas diferentes que (y normalmente ademas de) programacion tradicional.

Programacion de juegos es algo que siempre ha despertado mi interes, pero lo mas que hecho es un par de juegos en modo texto y un juego de domino que se puede jugar en red; como parte de mi interes en este tema, he estudiado OpenGL, DirectX, incluso llegue a escribir algunos articulos acerca de OpenGL con Delphi

He leido bastante sobre programacion de juegos en general, lo suficiente como para saber que tu primer juego debe ser algo simple, la mayoria de la gente que quiere adentrarse en el tema se avientan a crear algo grande con animaciones en tercera dimension tipo HALO; por supuesto, la mayoria de las personas... fracasan.

Debes saber que lo mas seguro es que casi nadie va a querer jugar tus primeras creaciones (ni tus mismos amigos), asi que seria buena idea que hicieras esto con alguien mas, ya que el factor motivacion juega un papel muy importante, y es muy facil desanimarse porque a nadie le interesa lo que hacemos

Los que ya saben de estas cosas recomiendan que crees algo como un Tetris para tu primer juego, ya que aun siendo este un juego muy simple (visto desde el punto de vista de complejidad tecnica), contiene todos los elementos de cualquier juego

  • entrada
  • logica
  • animacion
  • niveles
  • ciclo de juego (todo juego tiene un ciclo de juego)

Otras buenas opciones para tu primer juego serian los famosos steroids, bricks, pac-man, etc. Si necesitas mas ideas, puedes visitar sitios como latingames, donde encontraras cientos de juegos flash, incluso puedes escribir una version mas simple del juego que elijas, la idea es que debe ser suficientemente simple para que te permita terminarlo, una vez que termines la primera version, talvez puedes extenderlo, pero de alguna manera ya habrias escrito tu primer juego, y eso es realmente importante para tu motivacion.

Escribir un juego "desde cero" estos dias es mucho pero muy lejano a lo que era hace solo unos cuantos años, cuando tenias que crear todo, algunas veces hasta tus mismos formatos para guardar los modelos, por supuesto el codigo para cargar tus formatos, y cada pixel que querias dibujar en la pantalla, tenias que escribir codigo para lograrlo; los años han pasado y ahora tenemos formatos estandares para modelos, sonidos, graficas, etc. y lo mas importante es que ahora contamos con muchisimos frameworks que te permiten escribir juegos mucho mas facil.

Uno de los mas recientes frameworks es XNA; uno podria comparar XNA para programacion de juegos, mas o menos como Visual Studio es para programacion en C#, ya que este nos permite concentrarnos en el juego en si (tema, logica, etc), dandonos toda la funcionalidad para hacer la mayoria de salida de graficas, sonido, entrada/salida de teclado, etc; una de las cosas mejores que tiene este framework es que te permitira correr tus propios juegos en tu XBox 360, dificil encontrar algo mejor que eso.

Un par de amigos y yo hemos decidido aventarnos a escribir juegos meramente por diversion (y por aprender mas claro), talvez empecemos con un pac-man simple; aunque planearemos en hacerlo extensible, comenzaremos con algo realmente simple.

Una idea mas o menos de lo que tenemos en mente, si es que nos decidimos por el pac-man, seria mas o menos:

  • Un solo "mundo"
  • un solo nivel
  • un solo tipo de monstruo (fantasma o lo que sea)
  • Lo mas seguro es que nosotros mismos crearemos nuestros graficos en Paint y grabaremos nuestros propios sonidos (esto podria ser divertido)

Las partes donde podriamos permitir extensibilidad podrian ser

  • un modelo plugin para crear nuevos fantasmas
  • modelo plugin que permita crear nuevos mundos y niveles

Suena bastante simple y podriamos extendernos tanto como quisieramos, pero primero hay que llegar a la version 1

Ya les estare platicando aqui en el blog mis experiencias (y codigo fuente) creando este primer juego, realmente espero no fallar como muchos han fallado antes. Tambien como muchos antes que yo, espero que, si no te puedo ayudar, al menos pueda inspirar a uno que otro para que se lancen al mundo maravilloso de programacion de juegos

Si quieren seguir la aventura conmigo, pueden empezar por bajarse XNA y Visual Studio 2005 edicion Express, tambien seria bueno que te bajaras este tutorial, si no entiendes mucho ingles, pues al menos te avientas a estudiar el codigo fuente, este contiene la mayoria de los elementos basicos y te permitira familiarizarte con XNA.

hasta la proxima

1 comment:

Anonymous said...

¿Que conocimiento necesita saber para programar un juego online?

Saludos,