Últimamente ha surgido un boom de desarrollo de videojuegos indie, videojuegos hechos por pequeños estudios o grupos de personas sin los millonarios presupuestos de las grandes compañías, pero que a veces consiguen verdaderas obras maestras.
Muchos ven en esto un modelo de negocio y quieren saber cómo empezar a programar videojuegos. Otros simplemente por curiosidad, diversión o un poco de todo, en cualquier caso vamos a ver que necesitamos para empezar en este mundo de la programación de videojuegos.
¿De verdad lo que quieres es programar videojuegos?
Parece una tontería de pregunta, pero es clave. En el desarrollo de videojuegos existen varia áreas, estas son las cinco principales: Diseño, Programación, Gráficos, Audio, Distribución y Marketing. Vamos a pasar a analizarlas brevemente.
- Diseño. La parte más importante de un videojuego. Historia, Guión, jugabilidad, reglas y demás conceptos que hacen a un juego ser lo que es.
- Programación. Una vez elaborado un diseño es la parte donde se juntan gráficos, audios y reglas para dar vida a un mundo interactivo. Existen varias disciplinas a su vez dentro de ella como programación gráfica, gameplay o inteligencia artificial.
- Gráficos. Interfaces, modelos 3D, animaciones y todo lo que “se ve” de el videojuego, existen varias disciplinas tanto en 2D como en 3D.
- Audio. Efectos de sonido, música de fondo, diálogos. Muy importante para crear ambiente.
- Distribución y marketing. El arte de publicar y promocionar un videojuego, responsable del éxito o no de muchos productos dependiendo de las estrategias que sigan.
Como vemos la programación solo es una parte del proceso y nunca un todo, si aún crees que la programación de videojuegos es tu área vamos a analizarla a fondo.
Programar videojuegos, sus áreas
Los grandes estudios tienes varias decenas de programadores, especializados en diferentes áreas. En programación de videojuego los principales equipos y/o disciplinas que puedes encontrar son los siguientes.
- Programación del motor. Son los encargados de implementar la base sobre la que se sustenta el videojuego. Comunicación con el sistema operativo, gestión de memoria, gestión de cadenas, gestión de recursos, etc. Son necesarios grandes conocimiento de la plataforma para la que se programa, algoritmia y complejidad, opimización y gestión a bajo nivel.
- Programación gráfica. Su misión es lidiar con las diferentes apis gráficas como DirectX y OpenGL. Conocimienos de dichas apis, y matemáticas sobre todo álgebra y geometría.
- Programación de física. Se encarga de emular los comportamientos físicos del videojuego. Conocimientos de matemática vectorial y física dinámica y mecánica.
- Programación de inteligencia artificial. Es la encargada de hacer nuestros enemigos (o nuestros aliados) inteligentes. 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. Se encarga de la parte multijugador, servidores y todo lo que sea conectar una máquina con otra.
- Programaición de Gameplay. El equipo que se encarga de programar la lógica del juego, sus reglas. Conocimientos de lenguajes de script y uso de las partes desarrolladas por los otros equipos.
Estas son las principales áreas en las que se dividen los grandes estudios pudiendo variar en muchos de ellos, pero estas son las principales disciplinas de la programación de videojuegos. Vale, lo tengo claro, ¿Por cual empiezo? Por todas y por ninguna.
Cuando uno empieza ninguna de las áreas tiene un alto grado de complejidad y el programador indie debe aprender a lidiar con todas las áreas, las especializaciones es bueno tenerlas en cuenta de cara a un futuro, pero para empezar te tocará aprender un poco de todo.
Ahora sí, por donde empezar a programar videojuegos
Ahora que quedan claros los diferentes niveles que existen y el grado de complejidad que puede alcanzar cada área no te asustes, vamos a empezar por el principio.
Cuando uno se mete por primera vez en el desarrollo de videojuegos lo primero que le da por hacer es un clon de su Final Fantasy, GTA o MMORPG preferido y sucede lo que tiene que suceder: fracasa estrepitosamente. Todos los que un día empezamos pasamos por eso y es bueno para ver el nivel de complejidad de esos proyectos y lo que significa tal obra de la ingeniería de software.
Una vez superado este trauma inicial y con los pies en el suelo llega la primera regla: olvídate del 3D, al menos, de momento. Tus primeros juegos deben ser clones de los clásicos del 2D: Pong, Breakout, Pacman y cuando te sientas con confianza, incluso un juego de plataformas.
Aunque estoy suponiendo demasiadas cosas y una de ellas es que ya sabes programar así que vámonos más atrás aún.
Conocimientos básicos necesarios para programar videojuegos
- Conocimintos de matemáticas. En principio no son muchos y dependerán básicamente del tipo de juego, pero suelen ser esenciales conocimientos básicos de trigonometría y geometría.
- Conocimintos de física. Como las matemáticas depende del tipo de juego, para juegos de plataforma con conocimientos básicos de cinemática es suficiente.
- Conocimintos de programación. Se debe saber programar y conocer bien un lenguaje de programación el lenguaje elegido es lo de menos siempre que sea popular y con una amplia comunidad y colección de bibliotecas.
Si se poseen estos conocimientos lo siguiente es buscar una biblioteca para el desarrollo de videojuegos de tu lenguaje. Aquí van algunas de las para los lenguajes más populares.
- C: SDL
- C++: SFML
- C#: XNA / MonoGame
- Python: PyGame
- Java: libgdx
- Ruby: Gosu
- Flash: Flashpunk
- Lua: Love2D
Como vemos el lenguaje es lo de menos en todos existen buenas bibliotecas 2D para empezar a desarrollar videojuegos. Lo importante es que aprendas las técnicas de la programación en tiempo real y eso es aplicable a cualquier lenguaje.
Lo más importante, haz juegos
Esto es lo más importante de este artículo, si quieres ser programador de videojuegos: haz juegos, muchos juegos. Escribir código y probar y probar es la única forma de aprender y mejorar lo demás vendrá poco a poco con paciencia y empeño.
via Genbetadev http://www.genbetadev.com/programacion-de-videojuegos/como-empezar-a-programar-videojuegos
Comentaris
Publica un comentari a l'entrada