Archivo del sitio

Game Development Basics

Esta es una contribución que hice en el foro de uno de las tareas de la materia Introducción al Diseño de Videojuegos en la carrera de Técnico en Diseño y Programación de Videojuegos que curso por UNL Virtual (Universidad Nacional del Litoral).

Quiero aportar esta información para todos mis compañeros, alguno de los profesores me sabrá corregir si me equivoco en algún aspecto. Cuando encaré este trabajo, también me resultó complicado tener una idea de cómo lo iba a hacer, pero a medida que fui investigando la idea tomaba forma en mi cabeza, quizá algo en la siguiente información les sirva a ustedes.

Para crear juegos para consolas necesitas dos cosas, la licencia y el kit de desarrollo. La licencia es el permiso que te otorga la compañía fabricante de una consola de videojuegos para publicar títulos para dicha consola. Esto quiere decir que si quiero desarrollar un juego para determinada consola en mi computadora puedo hacerlo sin permiso alguno pero si quiero vender el juego y ganar dinero con él, debo tener el permiso de la compañía fabricante de la consola para la cual diseñé mi juego, este licencia cuesta dinero, y no solo debo pagar sino que la compañía se reserva el derecho de admisión, es decir pueden negarme el otorgamiento de la licencia.

Lo otro necesario es un SDK (Software Development Kit), que puede variar de consola a consola, pero básicamente, son las herramientas que me permiten programar y probar los juegos. En el caso de los SDK para consolas, suelen incluir aparte del software de computadora necesario, una consola modificada que me permite probar y hacer debugs a mis programas (juegos). En algunos casos la consola de debug no difiere en ninguna de sus características con la que se comercializa. Como en el caso de la Xbox360 para la cual solo necesito tener una versión del Visual C# de Microsoft y la extensión XNA Game Studio que le agrega al Visual C# lo necesario para crear juegos para Windows, Xbox360 y Zune (reproductor portátil de audio y de video de Microsoft, estilo iPod). La última versión de XNA también me permite crear juegos y aplicaciones para Windows Phone 7. El Visual C# (el numeral se lee sharp en inglés, que sería el equivalente al símbolo de sostenido en la notación musical) viene en un grupo de cuatro programas llamado Microsoft Visual Studio 2008 Express Edition, el cual es un paquete gratuito de programas que incluye el Visual Basic 2008, Visual C++ 2008, Visual C# 2008 y Visual Web Developer 2008, todos en su versión Express Edition (gratuita). La versión 2010 creo que se encuentra en beta y aun no hay versión Express Edition disponible, tampoco sé si la habrá. La extensión XNA Game Studio puede requerir que instalemos previamente, obviamente Visual C#, pero también nos puede pedir algo llamado DirectX SDK. Y algunos de los otros programas del paquete también pueden requerir el Windows SDK para crear otros tipos de programas.

El software necesario para programar suele constar de lo que se llama IDE (Integrated Development Enviroment), el cual posee un editor de texto para nuestro código (lenguaje de programación), un editor visual (en el caso de la programación orientada a objetos) y un compilador que es el encargado de vincular mi código (source) con las bibliotecas pertinentes y de convertir eso en un ejecutable, es decir un archivo capaz de correr (run) en determinado sistema y/o plataforma.

En el caso de los juegos, ya sea para consolas o para computadoras, hay varias tareas pertinentes a los mismos, como el sistema de entrada, las instrucciones que un usuario/jugador le da al juego a través de un joystick, teclado o mouse. La respuesta del juego, las tareas que el juego debe realizar con respecto a esas instrucciones. La representación grafica de esa respuesta, al fin y al cavo el juego es visual y este le debe comunicar al hardware que gráficos representar en pantalla, que animación asociar a ellos, que texturas les debe aplicar, como debe renderizar dichos gráficos y hasta cuanta memoria debe usar para ellos, ya que tiene que quedar suficiente para el sonido y otras tareas. Programar todo eso, de cero, es una tarea muy complicada, es por eso que existen los llamados engines (motores), los cuales ya poseen rutinas para algunas de estas tareas o para todas ellas y hasta algunos son un completo entorno de desarrollo integrado diseñado especialmente para crear juegos. Lo bueno es que para la programación exclusiva del juego que tenemos en mente, según el engine, podemos usar lenguajes de script como JavaScript, Ruby, Python, Perl, Lua y hasta los propios C# y C++. Definitivamente es mucho más fácil hacer scripts que programas enteros.

Yo por lo pronto estoy probando Unity, que me recomendó Jaime Filí, y me encontré con muchas sorpresas, todas ellas agradables por suerte. Se puede descargar de forma gratuita, y esto me permite crear juegos, pero ya para publicar alguno de estos para una consola como la Wii digamos, o para iPhone, iPad o Android debo pagar la licencia pertinente.

https://store.unity3d.com/shop/

Cada licencia posee diferentes características.

http://unity3d.com/unity/licenses

Por último quisiera dejarles un par de páginas que me dieron mucha información sobre engines, aparte de Wikipedia por supuesto, personalmente encuentro mejor información en Wikipedia en ingles que en Wikipedia en español.

http://www.moddb.com/engines

http://arborea.wordpress.com/2010/01/05/como-hacer-tu-propio-juego-de-ordenador/

El último es un post en un blog y la información puede ser un poco vieja, pero algunos de los programas listados dan una idea de que es un engine, como se usa y como se crea un juego con ellos. La verdad han pasado por mis manos el RPG Maker, el Ren’Py y el MUGEN, los tres muy pero muy sencillos de usar y los resultados pueden resultar bastante buenos, eso sí, les recomiendo tener un artista a la mano porque por lo menos en mi caso, no es mi fuerte.

En cuanto a usar esta información para el presente trabajo, yo no lo creo absolutamente necesario, pero para algunos puede ser un detalle a tener en cuenta y para otros un punto muy importante. Les recomiendo que a al hacer sus cuadros comparativos se basen en parte, en sus propias experiencias y en parte, en lo que hayan investigado. Ya que los pros y contras de cada consola deben tener diferentes puntos de vista desde diferentes aspectos de cada una, no necesariamente comparar la misma característica de dos consolas y explicar porque en una es fortaleza y en otra debilidad, por lo tanto es bueno abarcar puntos diferentes pero siendo realmente breve en cada uno de ellos para poder hacer una comparativa rápida a simple vista. Al menos esto me resultó a mí para poder terminar mi trabajo. Sean ocurrentes y originales, su opinión es importante. Lo bueno de trabajar en grupos de trabajo es que las diferentes opiniones de mis compañeros pueden ayudar a reforzar aquellas áreas que desconozco.

Si te gusta lo que lees considera contribuir con este blog para que el mismo pueda tener más y mejor contenido. Contribuir.

Licencia Creative Commons
Esta obra de Juan Pablo Castañeda está bajo una Licencia Creative Commons Atribución 3.0 Unported.

Anuncios