Es normal que todo aquel que desea iniciar en el mundo de la programación de videojuegos se haga la pregunta que da titulo a ésta entrada. ¿Cómo y por dónde empezamos? y ¿Qué necesitamos? son algunas de las dudas que nos asaltan. Si bien no existe un camino estándar para seguir, ya que normalmente existen grandes diferencias y ningún proyecto es igual a otro, si que podemos encontrar etapas comunes entre los distintos proyectos de desarrollo de videojuegos y son éstas etapas en las cuales nos enfocaremos.
Empecemos por definir los dos rubros que hay que considerar dentro del desarrollo de un videojuego: la parte técnica y la administrativa. Se lo que están pensando, ir a por la primera y obviar la segunda, porque de hecho la primera es mucho más divertida; pero sin la segunda, nuestro juego pasará desapercibido y no nos generará ingresos (para los que quieran ganar algo de dinero en ésto, para los que solo vayan a hacerlo como hobby no le tomarán mucha importancia... por ahora). Veamos en que consiste cada una de ellas:
Éstas son las áreas a tener en cuenta en cada uno de los rubros. Y como dije anteriormente, la parte técnica es mucho mas divertida, al menos para los desarrolladores.
En la parte técnica nos encontramos con lo siguiente:
- ENGINE: En esta parte se programa el motor del juego, es decir, toda la base del videojuego. Aquí se codifica desde un salto, un disparo, etc. hasta la gestión de memoria y recursos. Trabajar en ésta área implica ser bastante hábil y tener sólidos conocimientos de la plataforma en la que estamos programando.
- GRÁFICAS: La parte visual de nuestro videojuego: animaciones, escenarios, modelos, etc. Lo recomendable aquí es empezar desarrollando en 2D, y de ésta manera no acabar derrotados, decepcionados y arrinconados en posición fetal succionando el dedo pulgar de una mano, y lo digo no tanto por experiencia personal sino porque todos los expertos en desarrollo de videojuegos en la web lo recomiendan. Así que si te estabas carcomiendo las uñas y demás por empezar a crear tu propia versión de Quake, Halo, Unreal, etc. detente ahí y recuerda que los que crean esos videojuegos son expertos desarrolladores con años de experiencia
y millones de dolares en presupuestoa cuestas. Por lo pronto confórmate con crear tu versión de asteroids, pacman o algo nuevo que tengas en mente. - FÍSICAS: Aquí programamos todos los movimientos físicos de nuestro videojuego, el cómo se moverán nuestros personajes, y una de las cosas mas importantes y que aprenderán su importancia cuando empiecen a desarrollar su primer videojuego: las colisiones, que son el momento en que nuestra bolita de fuego toca a un enemigo y éste reacciona de alguna manera. Claro que para perfeccionar esta parte necesitan tener buenos conocimientos (o estudiar) en Matemática vectorial y Dinámica.
- GAMEPLAY: Llegando a ésta parte se codifica la lógica del juego. Aquí se juntan todas las demás partes de código para trabajar de manera conjunta y hacer realidad nuestro videojuego.
- INTELIGENCIA ARTIFICIAL: Esta parte es la encargada de los algoritmos de inteligencia del videojuego. La IA es la que hace inteligentes a nuestro enemigos y torpes a nuestros aliados. Para programar esta parte es necesario buenos conocimientos de algoritmos y redes neuronales.
- EVALUACIÓN DE MERCADO: Se debe llevar a cabo antes de comenzar el desarrollo del videojuego, para determinar el tipo de juego que haremos y para hacerlo es necesario conocer las tendencias, ¿Que es lo que le gusta a los usuarios? ¿Que tipos de videojuego son más populares? y aún mas importante ¿A que tipo de usuarios queremos dirigir nuestro videojuego? Porque no es lo mismo crear un juego para un gamer hardcore que para un montón de niñas fanáticas de justin bieber. Evaluar el mercado es una tarea amplia y muy compleja que requiere de una buena capacidad de investigación. Quiero destacar que esto es un procedimiento estándar que se realiza antes de crear cualquier producto que no sea un videojuego o incluso software, y que todos los emprendedores y empresarios realizan antes de sacar algo a la venta. En contadas ocasiones esto no es del todo cierto, porque muchos dicen que hay que escuchar a los clientes y saber que es lo que quiere el cliente, pero aquí entre nos, los clientes no saben lo que quieren, porque bien dijo alguna vez Henry Ford: "Si yo hubiese preguntado a mis clientes qué es lo que querían. me hubiesen contestado que un caballo más rápido". Por eso, si tienen alguna idea de algún videojuego que quieran crear ¡Haganlo! creen algo original y, quien sabe, igual y termina gustando a mucha gente.
- CONCEPTUALIZACIÓN: Si estuviéramos desarrollando una aplicación empresarial, la conceptualización sería el equivalente a la etapa de análisis de requerimientos, ya que es en esta etapa donde se documenta y se determina como será nuestro videojuego. Se definen cosas como el gameplay, el número de jugadores, la historia, los endings, el diseño de personajes, etc.
- PLANIFICACIÓN: Esta es una etapa de suma importancia, ya que si no definimos bien nuestras actividades ni somos disciplinados podemos abandonar el proyecto por choque de actividades u otras cosas. Además de que, si estamos trabajando en un equipo de desarrollo, la planificación cobra mas relevancia para asignar a cada miembro del equipo en actividades que permitan una mejor administración de la carga de trabajo.
- COMERCIALIZACIÓN: La parte buena, la que se encarga de determinar si un producto (llamese videojuego o cualquier otra cosa) ocasionará pena o gloria. En ésta parte decidimos cómo monetizar nuestro juego y cómo darlo a conocer. Por hoy no me meteré en temas de marketing, ya que no es el objetivo de este post, pero veamos las maneras de como nuestro videojuego puede generar dinero. La primera es que lo hagamos por cuenta propia, creamos un videojuego para móviles y lo subimos a su respectiva tienda y si es
buenodel gusto de los usuarios se venderá como pan caliente. Ahora si nuestra aplicación será gratuita, podemos monetizarlo incluyendo publicidad en él, aunque esto es molesto para muchos usuarios, otra opción es vender items dentro de los juegos (como en las redes sociales). La última opción es hacerlo mediante publishers, donde lo que tendrás que hacer es enviarles un demo del juego y si convence, ellos harán el resto. Esta última es muy buena opción si estamos iniciando.
OK, y ahora ¿Cómo empiezo?
Antes de decirte cómo empiezas, es necesario decirte lo que necesitas:
- Matemáticas: Si te la pasaste durmiendo durante esas clases donde tu profesor se deshacía en ganas porque aprendieras trigonometría y geometría, pues ahora tendrás que reponerlas con horas de estudio en libros o internet, ya que un buen entendimiento de éstas áreas es necesario. Si eres de los que decían "Las matemáticas útiles para la vida se aprenden en cuarto grado. Las demás no sirven", creo que nunca pensaste en programar videojuegos.
- Física: Mas que nada necesitarás buenas bases de dinámica.
- Programación: Como no podía ser de otra manera, es necesario conocer bien algún lenguaje de programación. ¿Cuál? El que desees, el lenguaje es lo de menos, siempre y cuándo tenga bibliotecas de calidad dedicadas al desarrollo de videojuegos. Ah y otra cosa, no es ningún requisito, pero si el lenguaje es orientado a objetos te facilitará mucho la vida.
Ahora si, para empezar necesitaras elegir un lenguaje de programación que domines bien. Existen librerías para la gran mayoría de lenguajes que te facilitarán la vida, aquí hay algunos:
- Android: AndEngine
- iOS: Cocos2d
- Python: PyGame
- C#: XNA
- C: SDL
- C++: SFML
- Multiplataforma: Cocos2d-x
Si realmente estas interesado o incluso apasionado por entrar al desarrollo de videojuegos no te desanimes al primer intento, ni al segundo,... ni al N intento, porque habrá demasiados y no serás el único que haya pasado por eso. Lo mas importante es no dejar proyectos a medias, es necesario que si empiezas un juego, lo acabes, por más horrible que sea el producto final, al menos no será horrible e inconcluso. Ahora que si quieres saber como ser realmente un programador de videojuegos, aquí esta el secreto:
Programar, programar y programar, y cuando ya no te queden ganas de programar, sigue programando, ya que es la única forma de aprender, y créanme que los resultados llegarán en su momento.
¡Saludos!
muy buen post :)
ResponderBorrarGracias Alejandro, la intención es compartir ;)
BorrarMe encantó tu post!! Pero quedé con ganas de más! tendrás información de tutoriales? He estado buscando pero algunos empiezan con que debo ser ing. informático, quisiera algo para empezar desde 0.
ResponderBorrarCuídese!