DEFINICION Y TIPOS DE VIDEOJUEGOS
Es una aplicación
interactiva orientada al entretenimiento que, a través de ciertos mandos o
controles, permite simular experiencias en la pantalla de un televisor, una
computadora u otro dispositivo electrónico.
Los videojuegos pueden ser
muy distintos entre sí, tanto en complejidad como en calidad gráfica y en
temática. Veamos a continuación algunos de los géneros principales:
Plataformas: se trata de una experiencia que gira en torno a
desafíos de tipo físico, que exigen un gran nivel de precisión por parte de los
jugadores para avanzar a través de complejas estructuras, generalmente
enfrentándose a diversos enemigos.
De disparos: un género amplio, al cual pertenecen tanto
algunos títulos de guerra como de naves espaciales.
De aventuras: son juegos en los cuales la historia es la
protagonista. Deben ser construidos en base a una rica narrativa, que atrape
poco a poco al jugador en el mundo virtual, y le transmita la necesidad de
resolver una serie de misterios.
De rol: suelen confundirse con los juegos de aventuras pero, a
diferencia de estos últimos, su foco son los personajes y su evolución a lo
largo de la historia. Este género es especialmente popular en Japón, aunque
existen muchas comunidades de jugadores de rol en todas partes del mundo.
Deportes: Si bien su nombre parece decirlo todo, existe una línea muy
delgada entre este género y el de simulación. Estos dos, a su vez, están
emparentados con el género de acción; todo depende del grado de realismo de la
experiencia y del tipo de interacción que se espere del jugador, entre otros
factores.
AREAS DE DESARROLLO DE VIDEOJUEGOS
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 los 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.
Programació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.
LENGUAJES PARA PROGRAMAR VIDEOJUEGOS
Lenguajes de programación de videojuegos web
A pesar de que la
mayoría de los juegos de Facebook siguen usando Flash, el futuro está en el
JavaScript.
El problema de Flash es
que Adobe ya no dará soporte a dispositivos móviles y recientemente anunció que
no desarrollará ActionScript 4, por lo que aprenderlo tiene cada vez menos
sentido.
Para comenzar podéis
leer el clásico, JavaScript: The Good Parts, de Douglas Crockford (2008).
Lenguajes de programación de videojuegos para PC o consolas
Deberás empezar
programando en lenguaje C#. Es un buen lenguaje para que te inicies en la
programación de videojuegos, existen librerías y frameworks muy maduros que te
facilitarán el aprendizaje.
Hay mucha gente que
recomienda que aprendas C++, pero no te será necesario salvo que te
especialices en el desarrollo de motores de gráficos o motores de inteligencia
artificial.
Lenguajes de Programación de juegos para móviles
Para crear juegos para
smartphones Android el lenguaje rey es el Java, por encima del Python.
Si tu trabajo se va a
centrar más en dispositivos que tienen incorporado el sistema Windows, entonces
en lenguaje escogido será el C#, estándar de Microsoft.
Por último, en los
iPhones e iPads y su iOS, tendremos que programar en Objective-C o Swift, el
futuro para la casa de la manzana mordida.
OTROS
EJEMPLOS DE LENGUAJES
C: SDL
C++:
SFML
C#: XNA
/ MonoGame
Python:
PyGame
Java:
libgdx, spiller
Ruby:
Gosu
Flash:
Flixel
Lua:
Love2D
ESTRUCTURA DE BASE DATOS
Es un
sistema que almacena datos que están relacionados. Es un repositorio en donde
guardamos información integrada que podemos almacenar y recuperar. Un conjunto
de información almacenada en memoria auxiliar que permite acceso directo y un
conjunto de programas que manipulan esos datos
* MySQL
* XML
* SQL
* XML
* SQL
APIS GRAFICAS
DirectX
DirectX esta compuesto de
7 componentes: DirectGraphics (incluye 3D y 2D), DirectInput, DirectSound,
DirectPlay, DirectShow, DirectMusic. Y ha venido ganando mucha popularidad en
los últimos años entre los programadores de videojuegos, en especial desde que
Microsoft comenzó a mejorar la parte de Direct3D haciéndolo más amigable y
eficiente, y se ha vuelto una seria competencia para OpenGL. Sin embargo, Algunos
juegos programados usando DirecX son "Age of Empires", "Close
Combat" y "Flight Simulator", además de todos los juegos para el
Xbox. Microsoft desveló en la Game Developer´s Conference que su proyecto XNA
consistirá en un Visual Studio en versión para el desarrollo de videojuegos.
VENTAJA.
Una de sus principales
ventajas es que no está hecho solamente para la parte gráfica, sino que puede
manejar toda la multimedia de la computadora como sonidos, música, dispositivos
de Entrada/Salida como teclado, joystick, y varias otras cosas más.
DESVENTAJA.
DirectX tiene una gran
desventaja: no es portable, es decir, una vez terminado de programar el juego
estará condenado a trabajar solamente en Windows, y cuando se quiera convertir
para que correrá en otras computadoras que usen Mac, Linux, o consolas, hay que
hacerle muchos cambios al código.
OpenGL
Librería Grafica Abierta:
Creado por Silicon Graphics en 1992, es el principal ambiente de programación
para desarrollar aplicaciones gráficas que existe. Es multiplataforma (habiendo
incluso un openGL para móviles). Esta diseñado para usarse en una gran variedad
de sistemas operativos sin tener que modificarlo o modificándolo muy poco, esto
significar una gran ventaja para cualquier desarrollador al abarcar el mayor
mercado posible. Además su arquitectura fue pensada para poder evolucionar
conforme avanza el tiempo, de modo que pueda adaptarse con facilidad a las
novedades que van surgiendo en la industria.
Desde que apareció, OpenGL
ha sido un ambiente de programación estable y confiable, y quizás la razón por
la que es más conocido es porque fue la primera en ofrecer la posibilidad de
desarrollar aplicaciones 3D; fue precisamente con OpenGL que se hicieron los
primeros juegos 3D como Wolfenstain y Doom, hoy también es muy usado en juegos
como Quake y muchos más.
LIBRERIAS DE VIDEOJUEGOS
Actionscript. Esta es una lista de librerías para desarrollar
juegos, la iré modificando para incluir más librerías. Ustedes mismos sugieran
sus librerías favoritas en este hilo para incluirlas:
Allegro: Librería en C altamente portable a muchas plataformas que
incluye rutinas básicas de videojuegos: gráficos 2D, matemática 3D, sonido y
controles.
SDL:
Simple DirectMedia Layer está hecho en C y es una librería madura utilizada en
grandes proyectos. Loki, una empresa que estuve a principios de 2000 portando
juegos a Linux utilizó esta librería para esta tarea.
OGRE: Es una librería open source para hacer gráficos 3D.
Crystal Space: Crystal
Space es una librería open source para hacer gráficos 3D en tiempo real. Fue la
librería utilizada para hacer Yo Frankie, o también conocido como Project
Apricot.
ODE:
Open Dynamics Engine (ODE) es una librería en C++ que facilita la
implementación de fenómenos físicos en tu juego. Es la librería que se utilizó
para implementar la física de World of Goo.
ClanLib: ClanLib Game SDK es una biblioteca de herramientas
multiplataforma cuyo principal enfoque se encuentra en la creación de juegos de
video. La misma es de código abierto y gratuito para uso comercial, bajo la
licencia ClanLib.
Python
Panda3D: Panda3D es una
librería open source implementada en Python y C++ por la gente del
Entertainment Technology Center, en la Universidad Carnegie-Mellon. Disney
utilizó esta librería para hacer el juego online de Pirates of the Caribbean
ENTORNOS PARA PROGRAMACION DE VIDEOJUEGOS
Unreal Engine
Antiguamente, este entorno de desarrollo venía con los propios juegos creados en este editor cuando este salía al mercado, de este modo el jugador que quisiera podría editar los contenidos del juego e incluso los escenarios y crear nuevos modos de juego.
Pero se cambió el modelo de negocio de y ahora se puede descargar de forma gratuita, con el añadido que si tu juego supera los 3.000 dolares de beneficios, a partir de ese momento Unreal se llevaría un porcentaje de los beneficios.
El entorno se parece mucho al de Unity 3D, permitiéndonos agregar formas geométricas al escenario y que después tengan sus texturas, interacciones… Sin lugar a dudas un gran competidor para Unity 3D y muy útil para los desarrolladores y creadores de juegos.
GDevelop
Es un programa de creación de videojuegos en 2D de código libre. Con este entorno podremos crear juegos para Windows, Linux e incluso para la web utilizando HTML5.
Al igual que Stencyl, cuenta con una interfaz drag and drop facil de utilizar. En su web podemos encontrar muchos ejemplos y tutoriales para aprender a utilizar esta herramienta perfectamente y de este modo empezar con el proceso de creación.
Lo que hace a GDevelop único y tan sencillo de utilizar son los eventos, ya que estos utilizan una forma de expresar la lógica de nuestro juego sin tener que aprender un lenguaje de programación a fondo.
Unity 3D
Considerada por muchos la mejor herramienta para crear y diseñar un videojuego. Con Unity 3D podremos sacar versiones de nuestro futuro videojuego para Xbox, PC, Linux, HTML5, iOS, Android, Play Station, BlackBerry, Samsung TV y una de las características que lo hace realmente potente es la integración del lenguaje C#.
Este entorno de desarrollo tiene tiene motor de diseño de juegos 3D y otro diferente para juegos 2D. Por último recalcar que dispondremos de una librería muy extensa con documentación con la que poder empezar a aprender cómo iniciarnos en el proceso de creación de un juego básico.
Stencyl
Este software se llamaba
originalmente StencylWorks, mientras que en el desarrollo de las últimas
versiones para el público se decidió que el nombre se debería acortar llagando
a llamarse Stencyl.
Stencyl es una plataforma de
creación de videojuegos en 2D. Esta plataforma nos permite crear videojuegos
desde Linux, OS X y Windows para varias plataformas como iPhone, iPad, Android,
Windows, macOS y Linux.
El método de empleo se basa
en el Drag and Drop mediante diferentes bloques con distintas
funcionalidades. Sin embargo, para aquellos usuarios más avanzados, también
tiene la opción de extender las funcionalidades a través de código.
PyGame
Para finalizar este apartado
vamos a presentaros PyGame, el entorno de desarrollo de juegos en Pyton.
Tiene una estética muy retro pero sin embargo sus módulos son muy potentes.
Lo cierto es que es perfecto
para empezar a programar videojuegos y aprender cómo funcionan las
diferentes variables y pantallas. Con PyGame encontraremos más programación que
en los anteriores ya que es un requisito indispensable para desarrollar
videojuegos.
También puede utilizarse
para crear otros programas multimedia o interfaces gráficas de usuario. Herramientas y entornos para
avanzados
CryEngine 3
Seguro que os suena este nombre.
Esto es porque es el entorno en el que se han creado los juegos de la saga
Crysis. Con este editor podremos desarrollar juegos para las plataformas más
importantes del mundo incluyendo las consolas.
Tiene muchas herramientas para el
desarrollo del juego que van desde el sistema de Scripting Visual a la
posibilidad de editar pistas de audio y vídeo para el juego. CryEngine es
para uso personal y no comercial, pero si nuestro proyecto prospera, podremos
adquirir por Steam una licencia de 9 dólares al mes.
No hay comentarios.:
Publicar un comentario