Articulo ¿Quieres desarrollar videojuegos?

Mensajes
1,139
Oro
235,024
En informática, el desarrollo de videojuegos puede ser una actividad divertida, o por lo menos si la comparamos con la programación de software de gestión empresarial. Es una oportunidad de expandir la imaginación hasta el infinito para la gente creativa, especialmente si tenemos en cuenta como para llevar a cabo la tarea suelen reunirse varias personas con intereses más o menos parecidos, con lo cual pueden estimularse unas a las otras. Pero por desgracia no todos están preparados para afrontar el desafío, sólo superado con éxito por los más perseverantes, gente con un verdadero amor por el género.

En efecto, la creación de videojuegos también constituye un difícil reto, y de ahí parte de su atractivo para algunos, dado no son muchos los capaces de crear software de entretenimiento como Quake, Tomb Raider, Starcraft, o Diablo II, en cambio, no resulta tan complicado llevar a término un sistema cliente/servidor para la gestión, digamos de personal, a pesar de que para esto también se debe de poseer un cierto caudal de conocimientos.

La causa de la creciente complejidad en la creación de videojuegos, además de en las propias características de esa clase de software, podemos encontrarla en el mismo crecimiento de la industria a lo largo de los años, debida a su vez a la gran demanda de videojuegos. El nivel de facturación de la industria de videojuegos ha llegado a alcanzar a los de las industrias del cine, la televisión, y de la música, e incluso los ha superado. Pero toda esa demanda ha atraído a la actividad a una multitud de contrincantes, y como resultado ha emergido una competencia feroz entre ellos por una cuota cada vez menor del mercado.

La situación descrita ha llevado a los desarrolladores a innovar constantemente, aun si fuera para sacar el máximo provecho del hardware disponible en cada momento, so pena de no ser capaces de mantenerse.

Por supuesto, esa misma creciente demanda mencionada antes ha impulsado el avance de la industria de la computación con sus demandas de nuevas características; los fabricantes tienen la oportunidad de crear hardware con mejores prestaciones con confianza y seguridad porque la industria de videojuegos garantizará la venta; eso es así porque sin hardware cada vez más potente es imposible lograr efectos en los videojuegos con la fluidez necesaria para hacerlos creíbles.

En todo caso, por lo general no basta con sólo estos adelantos en los circuitos, y como se ha comentado, los programadores deben devanarse igual los sesos para extraer un poco más a la computadora, porque sin lugar a dudas en eso puede estar la diferencia entre un videojuego exitoso y su correspondiente recompensa, o un fracaso comercial con el peligro de bancarrota de una empresa.

En resumen, el desarrollo de videojuegos no es un asunto sencillo de llevar a término en esta época, como tal vez pudo haberlo sido en cierta medida en otros tiempos, en lo fundamental debido a todo lo dicho antes, a la cantidad creciente de conocimientos necesarios para lograr hacer algo relevante hoy en día; estos conocimientos no sólo deben ser profundos, también van o pueden ir desde la matemática avanzada o la física hasta la programación gráfica y las técnicas más propias de la inteligencia artificial, entre muchos otros saberes poco relacionados entre sí y difíciles de dominar por una sola persona.

Por todo esto, por lo menos en mi opinión, la tarea de crear un videojuego compite en la actualidad por su dificultad con el desarrollo de sistemas operativos y de compiladores e intérpretes para un lenguaje de programación determinado.

Por supuesto, hasta ahora me he referido a la creación de videojuegos como los desarrollados por las empresas importantes del sector, por eso, lo dicho no significa que para una persona común resulte del todo imposible crear muchos videojuegos divertidos.

¿Qué se necesita para desarrollar un videojuego?

En primer lugar es necesario tener los pies sobre la tierra, porque a pesar de ser posible para una persona común o grupo pequeño desarrollar distintos videojuegos, e incluso si tienen la creatividad necesaria llegar a venderlos y obtener un beneficio, esto último será mucho más difícil de lograr, por lo que es más saludable abordar todo esto a manera de afición, sin esperar en serio otros resultados además de la satisfacción personal conseguida durante la realización de la tarea.

Por otra parte, se tenga o no la idea de entrar en el mercado de videojuegos seriamente, e incluso cuando se puede disponer de muchas herramientas o entornos de desarrollo con los cuales se consigue hacer videojuegos de calidad prácticamente sin programar nada, considero mucho más recomendable llegar a dominar un lenguaje de programación, y esto en ocasiones también podría llegar a ser un motivo de satisfacción en sí mismo.

La lista a continuación menciona algunas de las herramientas para la creación de videojuegos de modo resulte más sencillo (en ocasiones sin la necesidad de programar casi nada):​
  • Adventure Game Studio.​
  • Buildbox Free.​
  • Entidad 3D.​
  • Game Maker.​
  • Gamesalad.​
  • Godot.​
  • M.U.G.E.N.​
  • RPG Maker​
  • Scratch.​
  • Stencyl.​
  • Twine.​
  • Unity 3D.​
En realidad existen muchos más de estos entornos de desarrollo orientados a la creación de videojuegos de una forma se podría decir más simplificada, en muchos casos más orientados a la creación de un género determinado de estos software.

Pero una vez más recomiendo llegar a dominar un lenguaje de programación, porque si de pronto algo sale bien, es mejor no verse limitados, y dado lo visto hasta ahora, se puede deducir podríamos necesitar un conocimiento como ese en un momento determinado.

En adición a lo dicho, también se necesitarán herramientas como Blender 3D, usada para la creación de los modelos en 3D, o como programas de edición de imágenes 2D de los cuales existen algunos gratuitos como Iconomaker, Krita o Paint.NET, aun cuando esas actividades no están entre las específicas de un programador de videojuegos.

¿Qué lenguaje de programación se considera más adecuado?

En cuanto a los lenguajes de programación más adecuados para desarrollar videojuegos, esto depende de muchos factores, entre ellos el objetivo a ser alcanzado y el género de videojuego a crear, y así, si se trata nada más de divertirnos sin propósitos comerciales, podría servirnos un lenguaje u otro indistintamente, sin encontrar muchas diferencias, todo según nuestras preferencias.

Los videojuegos de varios géneros pueden realizarse lo mismo con C++ que con Delphi o con Visual Basic u otros lenguajes de propósito general de los disponibles, incluso se ha utilizado un lenguaje como Python en muchos desarrollos más recientes, no obstante, la ventaja de un lenguaje como C++ radica, además de en sus infinitas posibilidades, portabilidad, e integración con un gran número de APIS, en la existencia de mucho código fuente, con la posibilidad de usarlo de muestra.

La desventaja principal de C++ sería la mayor dificultad en su aprendizaje en comparación con otros lenguajes de programación.

Por motivos históricos, lenguajes de programación de la familia BASIC, han sido bastante utilizados también, y por eso han existido o existen lenguajes como: GamesBasic, DarkBasic, BlitzBasic, Blitz3D, BlitzMax, GLBasic, NaaLaa, PlayBasic, entre muchos más.

Por eso, como se ha dicho, en cuanto a lenguajes de programación existen muchas opciones, y en caso de hacerlo por afición, podemos usar uno u otro para desarrollar un videojuego.

En cambio, cuando debemos desarrollar videojuegos un poco más ambiciosos, de un género con más demanda de recursos o necesidades específicas, u orientados a Internet o un mercado determinado, la selección de un lenguaje de programación podría llegar a hacer la diferencia.

En esta época, además del mencionado C++ y los distintos BASIC orientados a los videojuegos, podría ser más recomendable dominar C#, dado es uno de los lenguajes modernos usados en Unity, y conocerlo nos facilitaría utilizar dicha herramienta (Unity también usa C, C++, y hasta Javascript) en adición a desarrollar videojuegos sin ella.

Pero la lista no termina ahí ni mucho menos, porque en dependencia de los objetivos también podría ser recomendable un lenguaje de programación como Java, tanto por su calidad de ser multiplataforma como por contar con un cierto número de frameworks como JMonkeyEngine, LibGDK, Slick2D, Ardor 3D, Java 3D, etc.

El lenguaje Java también nos abre las puertas a un amplio mercado como el Android, aun si es verdad Unity y otros entornos especializados pueden compilar para esa y otras plataforma de software, con lo cual como se ha dicho se abren muchas más posibilidades.

En cambio, si tenemos pensado desarrollar videojuegos más bien para correrlos sobre un navegador, la selección del lenguaje podría recaer en Javascript.

¿Qué más se necesita?

En adición a lo dicho sobre la programación, y sobre tener los conocimientos suficientes por lo menos sobre las distintas técnicas básicas involucradas en la creación de videojuegos, como podrían ser colocar una imagen en la pantalla, animar un personaje por código, o mandar a reproducir un efecto sonoro cuando se produzca una colisión, es probable sea recomendable disponer de unas cuantas personas con la disposición de participar, porque si bien es cierto un individuo puede hacer un videojuego completo de algunos géneros, por lo común el desarrollo de uno de estos software involucra distintos roles difíciles de dominar por un solo implicado (a menos sea Leonardo Da Vinci).

Los roles más comunes involucrados en el desarrollo de un videojuego son los siguientes (en orden de relativa importancia):

Programador: El programador se encarga de escribir el código de programación del videojuego y por lo tanto debe tener un dominio suficiente de un lenguaje de programación y poseer una cierta cantidad de otros conocimientos relacionados con la actividad.

Diseñador de videojuegos: El diseñador de videojuegos en este caso se refiere a la persona encargada de desarrollar la idea del videojuego en cada detalle a partir del guión, y además de establecer los distintos niveles del videojuego, desafíos, las metas, etc., todo lo cual muchas veces lo hace el propio programador cuando se trata de una afición.

Artista o Diseñador gráfico: Los videojuegos se basan fundamentalmente en escenarios con gráficos y de ahí la necesidad de buenos artistas o diseñadores los cuales deben ser capaces de crear las escenas y los personajes y también de animar estos últimos (no todos los diseñadores son animadores y también existen grandes diferencias en esto cuando se trata de juegos en 2D o en 3D).

Animador: Tal como se comentó antes no todos los artistas o los diseñadores gráficos son capaces de lograr hacer una animación y por eso existen los animadores.

Guionista: Los videojuegos, como las películas, necesitan de una historia interesante, o por lo menos es así cuando se trata de ciertos géneros, incluso cuando casi todos los demás géneros también pueden beneficiarse de una buena trama para estimular a los jugadores.

Músico: La música incidental o de ambientación puede ser crucial para lograr la inmersión de los jugadores en un videojuego.

Ingeniero de sonido: El músico puede crear la música, sin embargo, un videojuego necesita de mucho más, como de efectos sonoros realistas.

Actor: En distintos videojuegos, como pasa con los animes, es posible se necesiten voces para los personajes.

En general pueden existir unos cuantos roles más implicados en el desarrollo de videojuegos que no he mencionado, algunos producto de la subdivisión de los anteriores, y otros un poco más indirectos como podría ser productor, probador o beta tester, distribuidor, etc., porque estos son roles más relacionados con el desarrollo de videojuegos con fines comerciales.

Es necesario tener presente también como varios de estos roles son llevados a cabo por una serie de personas externas, puesto en ocasiones los recursos pueden comprarse o conseguirse por otras vías, esto último en especial cuando se trata de desarrollar videojuegos a manera de hobby, cuando no se necesita de una calidad superior en los diseños.

Pero todo esto nos sirve por lo menos para darnos cuenta de cómo en esto de desarrollar un videojuego lo más conveniente es conformar un grupo de personas con interese comunes.

¿Por dónde empezar?

En cuanto se poseen los conocimientos básicos necesarios como los comentados antes, se dispone de las herramientas o entornos de desarrollo, se tiene hardware adecuado, y en caso ideal se conforma un equipo de desarrollo idóneo, se puede empezar a diseñar videojuegos.

En todo caso, no es recomendable comenzar desarrollando un videojuego de ciertos géneros más complicados de llevar a cabo, sino en cambio hacerlo con otros más sencillos, de modo nos sirva como una especie de entrenamiento a la vez nos da más oportunidades de éxito.

Los géneros de videojuegos más comunes se listan a continuación:

FPS (First Person Shooter)

El género de disparo en primera persona es uno de los más populares, consiste en videojuegos como Doom, Quake, Halflife, X-Wing, y otros muchos más por el estilo, obligatoriamente en 3D con el control de la cámara en primera persona como su nombre lo indica.

Los videojuegos de este género por lo común son multijugador, y necesitan de los recursos correspondientes como modelos en tres dimensiones para recrear tanto un mundo virtual como los distintos objetos y personajes en éste, así como de técnicas avanzadas de inteligencia artificial para controlar el comportamiento de los personajes no manipulados por un humano de modo se vea realista.

Plataforma (Side Scrollers)

El género de videojuegos de plataforma consiste en juegos como Sonic the Hedgehog y Super Mario Brothers.

En este caso se trata de videojuegos en 2D divertidos de jugar, sin embargo, poseen un cierto grado de dificultad cuando se trata de desarrollarlos.

La dificultad proviene tanto de la necesidad de un guión con una buena trama, como de la programación, y en mayor medida de la variedad de gráficos y animaciones a ser usados, así como de un importante diseño de niveles.

En estos videojuegos se utilizan técnicas básicas de inteligencia artificial para hacer creíble el comportamiento de los personajes, como cuando se debe decidir si un personaje controlado por la computadora puede ver o no a nuestro personaje.

Aventuras

Los videojuegos de aventuras como Monkey Island, tienden a tener gráficos intensivos en 2D, mas no así cuando se trata de animaciones, las cuales usan menos (necesitan bastante diseño gráfico).

En esta categoría también caen videojuegos en 3D en tercera persona con vista isométrica.

Por lo común también necesitan de complicadas historias, y de la implementación de solución de enigmas, pero no es necesario mucho más para desarrollarlos.

Mesa (Parlor Games)

Los videojuegos de este género incluyen los de cartas, de tablero, de palabras, de dados, y clásicos como las damas chinas, monopolio, póker, ajedrez, etc.

Por tanto no son videojuegos con grandes necesidades de gráficos, por lo común en 2D, y por lo general no llevan animaciones, o no muchas de ellas, ni técnicas de inteligencia artificial elaboradas.

Puzzle

Los videojuegos del género Puzzle consisten en lo fundamental en la resolución de distintos desafíos intelectuales, como habilidades de reconocimiento de patrones, agrupamiento de colores, resolución de crucigramas, etc.

Los videojuegos como Tetris también caen en esta categoría (o pueden considerarse arcade).

Por lo normal se trata de videojuegos en 2D con reducidas necesidades de gráficos, no piden mucha animación, y no se necesita tampoco de un guión o una trama para desarrollarlos.

La inteligencia artificial suele brillar por su ausencia.

Arcade

Los videojuegos del género arcade implican una gran coordinación ojo-mano por parte de los jugadores, como cuando se trata de los conocidos Asteroids o Breakout; pueden ser lo mismo videojuegos simples o difíciles de desarrollar y no reclaman un guión complicado ni necesitan tantos gráficos (por lo común en 2D).

La inteligencia artificial también suele estar ausente en estos videojuegos centrados más bien en la acción pura y dura.

Estrategia en Tiempo Real (RTS)

El género de Estrategia en Tiempo real consiste generalmente en videojuegos de guerra como Red Alert, Starcraft, Dune 2, etc.; se trata de juegos en 2D con vista isométrica o en 3D; en ellos los jugadores manejan un cierto número de unidades para obtener recursos o atacar a los oponentes.

En esta clase de videojuegos se hace un uso intensivo de gráficos y de animaciones así como de técnicas específicas de inteligencia artificial.

El nombre del género proviene del hecho de que todas las acciones toman lugar en tiempo real, es decir, simultáneamente y de una manera continua, con cada participante intentando derrotar a su oponente, sea este humano o una AI.

Por lo demás, se trata de uno de los géneros más populares de videojuegos.

Estrategia por Turnos

Los videojuegos de estrategia por turnos son similares a los de estrategia en tiempo real, salvo porque en ellos la acción transcurre por turnos en vez de simultáneamente, lo cual obliga a tener una estrategia más bien pensada o luego resultara más difícil corregir el rumbo.

En este género se pueden mencionar a X-Com y Civilization.

RPG (Role Playing Game)

Los videojuegos del género RPG también son de los más populares como los RTS o FPS, pueden ser desarrollados en 3D como World of Warcraft o en 2D como en Diablo II.

En estos videojuegos el jugador interpreta un personaje capaz de desarrollarse o ir subiendo de niveles a medida va participando en distintas misiones, las cuales tienen lugar en un mapa enorme con un control de cámara en tercera persona o vista isométrica.

En cuanto a su desarrollo, suelen necesitar un complicado guión, elaborados diálogos, profusos gráficos y animaciones, y un cierto nivel de inteligencia artificial para controlar los NPC (Non-Player Characters) con los cuales se interactúa.

El personaje principal suele tener un inventario.

Educativos

Los videojuegos educativos, como su nombre lo indican, están diseñados para enseñar y dirigidos por lo común a los niños.

Simulación

En este caso se trata de software para simular un proceso del mundo real lo más exactamente posible, a veces usados para entrenamientos, y otras veces para entretenimiento, por lo cual tienden a ser bastante detallados en cuanto a gráficos y comportamiento, y complicados de implementar, con importante uso de las técnicas de inteligencia artificial.

En este género caen videojuegos como Sim City o simuladores de vuelo.

Deportes (Sports)

El género deportivo es un caso de simulación donde se intenta emular un deporte existente en el mundo real.

En resumen, como hemos visto existen variados géneros de videojuegos, cada uno con sus características específicas, aun cuando no se han mencionado todos, y muchos más pueden ir surgiendo.

Por lo general, en cuanto a géneros se refiere, la única limitación está en la imaginación de los desarrolladores, así es como se fueron creando los géneros conocidos actualmente, muchos de los cuales no existían antes de ser imaginados por sus creadores.

Por lo mismo, nada impide a una persona crear un nuevo género de videojuegos, si tiene la capacidad para imaginarlo.

Pero para nosotros lo más importante es conocer cuáles de estos géneros resulta más idóneo para comenzar, y si estudiamos la lista, podemos ver como los videojuegos de los géneros de mesa, puzle o arcade, serían los más recomendables por sus características.

Por su parte, los videojuegos de los géneros de aventuras o plataforma podrían ser excelentes como un segundo desarrollo dado sus necesidades superiores de gráficos y otras dificultades en su desarrollo.

El resto de los géneros podría estar fuera del alcance de un aficionado, lo cual no significa no se pueda lograr con esfuerzo y perseverancia, pero probablemente lograrlo tome años, y sin duda se necesita de un equipo de desarrollo.

En resumen, después de haber dado un corto paseo superficial por el mundo del desarrollo de videojuegos, espero haber podido servirle a alguno a orientarse y sacar más provecho de sus ideas de dedicarse a una actividad como esta.

En caso de alguien tener conocimientos sobre este tema tan interesante, no estar del todo de acuerdo con lo comentado, o tener más elementos para aportarlos, sería bueno expusiera su propio parecer sobre los distintos aspectos tratados.

El conocimiento es poder y sólo si se sabe se puede vislumbrar el camino más corto.​
 
El libro titulado A Theory of Fun for Game Design de Raph Koster está considerado uno de los mejores sobre diseño de videojuegos; si alguien siente afición por el diseño de videojuegos es posible le convenga leerlo a pesar de estar en inglés (no conozco de una traducción).
 
Los siguientes textos también tratan sobre diseño de videojuegos (no sobre programación sino sólo diseño de videojuegos):

Rules of Play - Game Design Fundamentals por Katie Salen y Eric Zimmerman.

Game Feel - A Game Designer’s Guide to Virtual Sensation por Steve Swink.

Design Values of Digital Role-Playing Games por Juha-Matti Pulkkinen (Tesis de maestría).

Exploring Serious Game Design Heuristics: A Delphi Study por Kevin W. Carmody (Tesis doctoral).

The Art of Computer Game Design por Chris Crawford

En caso de conocer otros libros sobre diseño de videojuegos comentarlo.
 
Atrás
Arriba