Cómo iniciarte en la programación de videojuegos cuando nadie confía en ti
En los últimos tiempos se ha podido apreciar una tendencia creciente en el desarrollo de juegos indie, los cuales tienen una característica en común: son independientes. Y en la red se pueden conseguir auténticas obras de arte en lo que respecta a esta categoría.
Muchos sienten la capacidad y la imaginación para adentrarse en este mundo, por lo que desean conocer cómo empezar a programar videojuegos. Pero independientemente de tus objetivos, veamos que se necesita para dar el primer paso en este mundo de la programación de videojuegos.
Es importante que tengas claro tu objetivo y que no te desmotives si no te sale a la primera. Quizás veas la programación como algo único, pero esta consta de diferentes áreas: Diseño, Programación, Gráficos, Audio, Distribución y Marketing. En resumen las podemos analizar de la siguiente manera:
- Diseño. El factor clave de un videojuego. El cual comprende historia, guión, jugabilidad, conceptos básicos, reglas y todos los aspectos que formaran parte del juego.
- Programación. Una vez que se tiene claro los diferentes aspectos del diseño del juego, se debe atender a los gráficos, audios y lineamientos que van a dar vida a tu videojuego. Existen varias disciplinas en esta área, como programación gráfica, gameplay o inteligencia artificial.
- Gráficos. Corresponde a todo el aspecto visual del juego, lo que se presenta al usuario en la pantalla. Existen varias disciplinas tanto en 2D como en 3D.
- Audio. Efectos de sonido, voces, melodías o música de ambiente. Todo lo correspondiente a la parte auditiva del videojuego y debe estar en armonía con los gráficos.
- Distribución y marketing. Es el punto final, cuando tu videojuego está finalizado, llega el momento de publicar y promocionar tu creación. Este es un factor importantísimo que hará que tu juego sea un éxito o no.
Como te pudiste dar cuenta, programar un juego no se trata de un proceso único, sino de varios procesos que conforman uno. Entonces, si aún crees que la programación de videojuegos es tu área comencemos a profundizar un poco.
Qué áreas debes conocer para programas videojuegos
Las grandes compañías de videojuegos que ya conoces, como Blizzard y EA, tienen a su disposición un gran número de programadores, cada uno con una especialidad. En este mundo, los principales equipos y/o disciplinas que puedes encontrar son los siguientes:
- Programación del motor. El motor de un videojuego es un término que hace referencia a una serie de rutinas de programación que permiten el diseño, la creación y la representación de un videojuego. La funcionalidad básica de un motor es proveer al videojuego de un motor de renderizado para los gráficos 2D y 3D, motor físico o detector de colisiones, sonidos, scripting, animación, inteligencia artificial, redes, streaming, administración de memoria y un escenario gráfico.
- Programación gráfica. Consiste en un método para elaborar programas informáticos sin tener que recurrir a la redacción del código mediante líneas de texto. Lo que se utiliza es un entorno gráfico consistente en bloques con distinta funcionalidad que encajan unos con otros, y su finalidad es lidiar con las diferentes apis gráficas como DirectX y OpenGL. Son necesarios conocimientos de estas apis y de matemáticas, sobre todo álgebra y geometría.
- Programación de física. En este apartado se trabaja sobre los comportamientos físicos de los diferentes aspectos del videojuego. Son necesarios conocimientos de matemática vectorial y física dinámica y mecánica.
- Programación de inteligencia artificial. Se encarga de proveerle razonamiento a un ser que no está vivo, es decir, a nuestros enemigos o aliados. En esta área es fundamental que se tenga conocimientos de lenguajes de script, matemáticas y algoritmos de IA como pathfinding, máquinas de estados finitos o redes neuronales.
- Programación de red. Tiene como objetivo darle vida al aspecto multijugador del juego.
- Programaición de Gameplay. Este equipo tiene como función programar la lógica del juego, sus reglas. Se requieren conocimientos de lenguajes de script y uso de las partes desarrolladas por los otros equipos.
Básicamente, estas son las áreas principales en las que se trabaja a la hora de crear un videojuego.
Un programador indie debe tener en cuenta que al principio ninguna de las áreas tiene un grado muy alto de dificultad, pero es importante tener en cuenta cada una de las especializaciones para un futuro, y aprender un poco de todo es fundamental.
¿Cuál es el primer paso?
Una vez expuestos los procesos que constituyen la programación de un videojuego, su complejidad y especialización, podemos empezar por el principio.
Generalmente, cuando se comienza desde nada, lo primero que viene a la mente es crear algo parecido a Final Fantasy o GTA y casi siempre se fracasa en el intento. Pero esto es bueno para conocer el nivel de complejidad de esos proyectos.
Es conveniente que te olvides del 3D, por lo menos al principio. Tus primeras creaciones pueden ser similares a videojuegos como Pong, Breakout, Pacman o tipo Danmaku y cuando ya te sientes con más confianza en el tema puedes pasar a juegos de plataformas.
Aunque estoy suponiendo demasiadas cosas, no quiero adelantarme en temas que son básicos y me gustaría repasar.
¿Cuáles son los conocimientos básicos que se necesitan para programar videojuegos?
- Conocimintos de matemáticas. Para creaciones simples, no se requiere demasiado conocimiento. Pero la trigonometría y geometría suelen constituir la parte básica de este proceso.
- Conocimintos de física. Generalmente para los juegos de plataforma se requieren conocimientos básicos de cinemática.
- Conocimintos de programación. Es importante que se tengan conocimientos de un lenguaje de programación que sea popular y que tenga el soporte de una gran comunidad.
Si se poseen estos conocimientos, lo siguiente es buscar una biblioteca para el desarrollo de videojuegos de tu lenguaje. Aquí van algunas de las bibliotecas para los lenguajes más populares.
- C: SDL
- C++: SFML
- C#: XNA / MonoGame
- Python: PyGame
- Java: libgdx, spiller
- Ruby: Gosu
- Flash: Flixel
- Lua: Love2D
Como puedes ver, lo importante en este punto es que se cuenten con buenas bibliotecas 2D, los cuales te permitirán avanzar sin problemas en tus primeros pasos al programar tu juego indie. Es conveniente que aprendas las técnicas de la programación en tiempo real y eso es aplicable a cualquier lenguaje. También es importante que antes de desarrollar tu juego pienses en el modo de monetizalo y hagas al menos un esbozo de un plan de marketing, algo e muchos desarrolladores no hacen, y es un error. En caso de no disponer de recursos , ya sean de tiempo o de dinerom puedes recurrir a una estrategia basada en el crowdfunding.
Lo más importante: haz juegos. Escribe códigos y no te canses de probar, ya que es la única manera de aprender y mejorar.
No Comments