Etapas tempranas en la creacion de un Videojuego

Este articulo parte desde el punto en que existe una idea definida de un videojuego, con suerte ya existe algo escrito al respecto (asi sea en una servilleta de papel) y realmente no pretende explorar esta parte de la creación de un videojuego.

Las etapas propuestas en este articulo se refieren a lo que algunos autores recomiendan y un poco a la aplicacion en la realidad , por tanto no deben ser tomados como pasos absolutos, sino como una guia. Ademas el artículo esta mas orientado hacia la creacion de videojuegos en grupos pequeños y cuyas aspiraciones no sean aún comerciales, por lo que no se habla del manejo financiero,marketing del proyecto ni el outsourcing de partes del desarrollo.

La primera pregunta que generalmente ocurre a las personas que se estan iniciando en el desarrollo de videojuegos es precisamente ¿Por donde empiezo?:

– Precisar la idea: Se sugieren escribir un texto corto, de un par de parrafos, donde se describa de manera clara y general el videojuego, como se desarrolla este, en que va a consistir la diversion que el jugador obtendra y hasta cierto punto, que lo hace diferente de otros videojuegos.

La idea de un juego podria ser algo como:

Conejos Radioactivos es un juego de accion en tercera persona para PC , ambientado en un mundo post – apocaliptico donde los conejos han mutado hasta convertirse en guerreros hiperactivos de dos metros. El jugador podra escoger entre dos modos de juegos, misiones individuales y juego masivo en linea. En el primer modo el jugador encarnara a Joe Black, un Conejo Radioactivo, que a traves de distintas misiones y con la ayuda de 10 armas futuristas se convertira en el Emperador Conejo Radioactivo. El modo multijugador permitira a un maximo de 8.000 jugadores enfrentarse inmensos niveles, con las mismas armas del modo individual y en los estilos clasicos de capturar la bandera, territorios y deathmatch

– Escogencia de Tecnologias: Son recurrentes preguntas en los foros de programacion de videojuegos del estilo de: ¿Que lenguaje debo usar para programar videojuegos?, ¿Es mejor OpenGL o DirectX?, ¿Debo usar una motor gráfico? , ¿Que es mejor para modelar – texturizar – animar, Maya, 3dMax , Lightwave, Blender, … ? , etc.

No hay respuestas genericas, las tecnologias para el desarrollo de videojuegos son variadas , responden a rangos de necesidades y gustos particulares. Es tarea del grupo decidir cuales son las herramientas mas adecuadas para el desarrollo del proyecto. Algunos de las tecnologias sobre las cuales hay que decidir son:

  • Lenguaje de Programacion: c++, Java, c#, ActionScript, Visual Basic entre otros, son los que componen las opciones a escoger. En todos se han desarrollado videojuegos, pero no en todos se desarrollan el mismo tipo de videojuegos o con las mismas características.
  • IDE (Entorno de Desarrollo Integrado, EDI en español jo jo): El reemplazo del “bloc de notas” para programar y lo que “integra” es editor, compilador y depurador. Realmente indispensable en estos dias, por la forma en que agilizan el trabajo de programar. Algunos de los mas avanzado pueden integrar tambien diagramadores de UML, control de versiones, multiples compiladores, debug remoto y muchas otros “gadgets”. Eclipse, Visual Studio, Code Warrior, Borland entre otros.
  • Lenguaje Script: Si el juego requiere un lenguaje script, java, javascript, phyton, lua, ruby y algunos otros pueden ser las opciones
  • API Grafico: DirectX , OpenGL, GDI, etc
  • API de Sonido DirectX tiene uno propio que viene dentro del paquete, sino, existen alternativas como OpenAL
  • API de Input DirectX, SDL o con suerte el lenguaje o el sistema operativo proveerá las librerias basicas para la deteccion de entradas, al menos por teclado y mouse.
  • Motor Grafico Si es necesario utilizar graficos en el juego mas avanzados de los que el equipo puede programar, siempre se puede acudir al trabajo de los demas. Renderware, Ogre3d, CrystalSpace, Irrlicht , Truevision3D, etc.
  • Motor de Videojuego Generalmente traen un motor grafico y un API listo para empezar a trabajar el videojuego, con funcionalidades usuales (colisiones, pathfinding, algoritmos de IA, manejo de memoria, recursos, niveles, modelos, etc) y herramientas para la generacion de niveles, personajes, dialogos, cinematicos, menus, etc. Renderware, Quake Engine, Torque Game Engine , entre otros.
  • Paquete 3d: Generalmente son modelador – animador unidos (en algunos casos como Lightwave son independientes). Con suerte se puede utilizar el mismo paquete para modelar, texturizar y animar personajes, entornos y objetos. 3dMax , Maya , Lightwave, GameSpace y Blender son los mas conocidos.

Algunos se preguntaran ¿tengo que usar todo esto?. NO. Primero porque como dije inicialmente depende de las necesidades del proyecto. Seguramente un “Pong” no requerira de la sofisticacion de un Motor 3d. Ademas, en algunos casos como el de Motor de Videojuego, casi todas las escogencias ya fueron hechas por los desarrolladores de dicho motor.

– Pruebas Tecnicas: Esta fase es necesaria si se va a desarrollar el juego sobre una plataforma de bajo rendimiento (un telefono movil, pda, etc) o si el entorno en que se va a desarrollar no ha sido probado (un cierto lenguaje, api, sdk o aplicacion) extensivamente por el grupo o por otros desarrolladores.

En esta etapa se pueden desarrollar pruebas para aspectos como:

  • Rendimiento grafico 2d – 3d
  • Rendimiento en el uso y administracion de recursos como memoria y procesador
  • Rendimiento en comunicaciones sobre redes
  • Estabilidad sobre diferentes entornos de hardware y software

Aunque parece un momento muy temprano para esta fase, su desarrollo puede evitar pérdida de tiempo y esfuerzo al detener el avance de un proyecto que probablemente se cancelara porque la plataforma sobre la que se intento desarrollar no cumple los mínimos requerimientos. No siempre es necesario que el equipo de desarrollo haga las aplicaciones de prueba, ya que en el mercado existen software diseñados para estos propósitos.

– Evaluación: Después de revisar todos los anteriores datos es necesario decidir si el proyecto es realista y vale la pena continuarlo, tan bien es importante considerar:

  • Personas: ¿Con cuantas personas se puede contar para la realizacion del proyecto y que disponibilidad de tiempo tienen ?
  • Conocimiento: Si bien es cierto que sobre la marcha se aprende,es necesario que exista al menos una base o guia para empezar. ¿Las personas involucradas en el desarrollo tienen los suficientes conocimientos basicos para emprender el proyecto ?
  • Tiempo: ¿Cuanto tiempo se necesitara para terminar el videojuego?
  • Recursos: ¿Cuanto va a costar el software y el hardware que se va adquirir para el desarrollo?
  • Recompensa: En el trabajo en grupo no todos persiguen las mismas metas, por tanto, ¿Las personas involucradas en el proyecto creen que vale la pena desarrollarlo?

Si las respuestas a estas preguntas son positivas, es decir, existen suficientes personas, conocimientos, tiempo, dinero y todos creen que vale la pena hacerlo ¿Que hacen leyendo este artículo ?, deberian estar diseñando ahora mismo.

Si alguna de las respuestas no es tan positiva es recomendable que se arregle la deficiencia o se replantee el proyecto antes de continuar y si es desastrosa es preferible archivarlo por un tiempo.

Informacion Adicional:

Game Development And Production.

Game Architecture and Desing

Lone Wolf Killlers 1

Compartir esta entrada

DiggReddit
  • Daniel

    mmmm…. muy buen articulo, tendre que aplicar estos pasos a la hora de realizar mi videojuego
    pues muchas gracias por escribir este articulo que creo que me va a ser de mucha ayuda.

  • mary

    muchas gracias me sirvio de mucho

  • Iaia R

    Util esquema y, en mi caso, gran ayuda para las consideracion en cuanto a las elecciones de las tecnologias! Muchas gracias!
    Salud!

  • Jotatsu

    Saludos, un placer que haya sido útil el artículo.

  • joséraul8

    gracias x el artículo. pero sigue sin responder mi pregunta: ¿qué recursos se usan para hacer un videojuegos de cartas como, por ejemplo, magic the gathering? en serio llevo mesese leyendo y empollando manuales de c++, fénix, basic y java; pero ninguno me llega a dar las orientación que busco.
    si alguien tiene alguna idea, por poco k sea, sobre como hacer un videojuego de cartas que se ponga en contacto conmigo en mi msn: kubiganai@hotmail.com
    gracias de antemano.