Guía: Programación de videojuegos
Índice de contenidos:
- 1. Introducción.
📖 Presentación de la guía
Estás ante un tutorial sobre creación de videojuegos que hemos elaborado un grupo de usuarios y docentes de informática. Lo compartimos de manera libre con el objeto de que sirva de ayuda en tu autoformación o sirva como texto en clases y aulas de informática.
Para revisar cada unidad haz clic en los enlaces que desarrollan cada tema. Además, incorporamos a la teoría enlaces a otros tutoriales gratuitos disponibles en Internet en diversos formatos PDF, html, Youtube, etc.
1.- Introducción.
Deseamos que nuestra pequeña recopilación de manuales y tutoriales de programación de videojuegos para principiantes te sirva de guía para iniciarte en este maravilloso mundo:
Todos los expertos coinciden que lo más importante en la creación de un videojuego son las ganas, el esfuerzo y la dedicación que se ponga en ello, incluso por encima de los conocimientos iniciales. «La ignorancia es atrevida, y eso es bueno para crear e innovar».
Una vez creada la idea (historia), programarla es una cuestión técnica, que con el tiempo, esfuerzo y algo de ayuda seguro podrás resolver.
Por otro lado, el mundo de la programación de videojuegos se está profesionalizando mucho y son numerosas las universidades que ofrece programas de grado relacionados.
Comencemos analizando, los entornos de desarrollo más populares …
RPG Maker o Little Big Planet son títulos que pueden servir de introducción a la creación de videojuegos. Aunque puedes programar juegos casi en cualquier lenguaje, los más utilizados suelen ser C en sus diversas variantes, Unity, LimeJS, Python, Java o Flash.
En cualquier caso, lo importante es el guión o historia, más adelante añadir se puede desarrollar el diseño gráfico y el código. Otra cuestión, más complicada será encontrar hueco en el mercado y conseguir su distribución.
La serie de tutoriales sobre Java (threads, AWT, Swing, etc.) y conceptos básicos para la programación de juegos (Game loop, FPS, Stripping, Sprite, etc.) sirven tanto para programar videojuegos como para afianzar conceptos de programación general.
Te recomendamos este excelente blog de edu4java.com y su grupo en facebook.com/edu.java.5.
Software Development Fundamentals de Microsoft Virtual Academy. «El contenido de este videotutorial es de nivel introductorio y ayuda a los espectadores a comprender los diversos aspectos en el desarrollo de software.
El curso se centra en los conceptos fundamentales clave de los programas de desarrollo de software que todos los desarrolladores de software necesitan conocer.» Videotutorial gratis de 25 min. incluye las actividades del curso online.
📄 Notas: En Microsoft Virtual Academy se comparten vídeos formativos de gran calidad. Como por ejemplo Curso aprendiendo a programar (básico).
También puede interesarte este curso relacionado Porting Unity games to Windows 8.1 & Windows Phone.
Programación de juegos para Android con libgdx desde cero de xymind. Programación para juegos en Android. Configuración del proyecto. Programación para juegos en Android. Configurar Manifest y primera aplicación.
Videojuegos en Android: Cómo dibujar pixmaps en canvas de aplicación Android (libgdx). Proyecto juego en android 01: Diseño y planteamiento del videojuego. Proyecto juego en android 02: dibujando personajes en pantalla. Todos por latincoder.
Si te interesa Python tienes recursos para programar videojuegos en 2D en pygame.org a través del manejo de las librerías SDL. Como ves se pueden utilizar diversos lenguajes pero es muy importante el manejo de librerías gráficas.
Game Maker para un desarrollo rápido de juegos.
Unity es un software de desarrollo de videojuegos gratuito muy utilizado por beginners.
Lograr una alta jugabilidad en nuestros games requerirá conocimientos sobre diversas disciplinas. Como suele decirse «saber de todo un poco» respecto a varios lenguajes de programación, diseño gráfico, drivers y hardware.
Lo que supondrá realizar muchas pruebas, escuchar la opinión de otros jugadores, familiares y amigos y mucho trabajo ensayo-error para pulir nuestras creaciones.
2.- Foros y comunidades de desarrolladores.
La información sobre desarrollo de videojuegos y entretenimiento digital suele encontrarse por Internet muy difuminada y la mayoría en inglés. Pero existen algunos portales web y comunidades que recopilan numerosos artículos, os indicamos algunas de las más conocidas:
- Foros: gpwiki.org «A community driven resource for everything related to game programming».
- En el blog gamedev.net (en inglés).
- En la web gamasutra.com, un portal muy extenso sobre la programación de games en inglés.
- En playcanvas.com. Free and open source engine for games.
- En stratos-ad.com portal en español.
- Club Desarrolladores de Videojuegos de México.
3.- Cursos y manuales en Internet.
Desarrollar un videojuego requiere disponen de cantidad de conocimiento sobre computadoras y su programación, a todos los niveles, hardware, drivers, programación, diseño gráfico.
Así que tendrás que armarte con todo un arsenal de información y mucha paciencia. Aquí tienes algunos recursos que te resultanrán de inestimable ayuda:
- Programación de videojuegos IPJ 2012 e IPJ «clásico» de la web de nachocabanes.com.
- Manuales de makehuman.org. Opensource tool para crear elementos en 3D. Documentación para «hacer humanos».
- escueladevideojuegos.net. Gran curso en línea para aprender a programar videojuegos. Muy completa y didáctica.
- Manuales y ayuda de unity3d.com. Learn, Comunidad de usuarios, documentación, Unity QA, Everyplay, FAQ y comparativa de licencias.
- Blender: Manuales online de Python API reference (2.7); Bundled Python scripts (2.7) y Blender for Developers. Guías y tutoriales de ayuda en Blender e-Shop for Training DVDs and Books; Soporte en Video and Text Tutorials; Tutorials on the Blender Wiki y a través del canal oficial de Youtube.
- MOOC: Videojuegos: ¿de qué hablamos? de la Universidad Autónoma de Barcelona. Este gratuito forma parte de una serie de 6 cursos, el Programa especializado Diseño y Creación de videojuegos en coursera.org.
-
- Presentación, introducción e historia de los videojuegos. Componentes y diseño de un videojuego y roles. El arte en el videojuego. Tecnología. Gameplay (inteligencia artificial de los enemigos, o la lógica del juego).
- Videotutorial: Curso Programación de Juegos 2D con Gamemaker de Alexis Jeansalle en Youtube. Módulo I del curso de Programación de Videojuegos 2d con gamemaker.
- PDF: CURSO DE INICIACIÓN A LA PROGRAMACIÓN DE VIDEOJUEGOS CON EL LENGUAJE BENNU v1.0 en Windows y GNU/Linux por Óscar Torrente.
3.1 Adobe for Games.
Las soluciones de Adobe son muy utilizadas en la industria del videojuego. Productos destacados.
Adobe Flash Builder. Entorno de desarrollo para games y aplicaciones con el lenguaje ActionScript y el entorno Flex (de código abierto). Flash Builder Premium incluye herramientas de pruebas profesionales, como perfiladores, supervisión de la red, y soporte las pruebas unitarias.
Incluye:
- Adobe Flash Media Live Encoder: Software de captura de audio y vídeo.
- Adobe Scout CC. Para crear perfiles SWF, pensado para los desarrolladores de juegos Flash.
4.- Creando un videojuego.
Curso que incluye todos los campos en la creación del videojuego, desde el diseño 3D, hasta la creación de nuestros propios sonidos en foro.elhacker.net.
Merece la pena seguirlo para adquirir conocimientos sobre las técnicas básicas en la creación de videojuegos.
5.- Software de diseño gráfico y APIs para videojuegos.
5.1 Blender.
Blender es un software de diseño 3D compatible con la mayoría de sistemas operativos.
Dispone de complementos o Addons como por ejemplo Rigify que asisten en la creación de estructuras rígidas como esqueletos y armaduras.
- A modo de introducción ver en Youtube Que es Blender ? de Digital Media Tutor.
- PDF Tutorial de creación de videojuegos mediante Blender en es.gnu.org.
- Modelar con Blender de huayra.conectarigualdad.gob.ar.
- En Youtube hay decenas de vídeos de ususarios sobre Blender, como: Aprende a crear videojuegos con blender: Avances de mis trabajos diciembre 2010 Fisico Molon.
- Comunidades y redes sociales: blender.stackexchange.com, blenderartists.org, Extensive listing of support and community website y en el chat IRC: irc.freenode.net, #blender and #blenderchat
* Blender cambia de interfaz en sus últimas versiones, pero no es inconveniente para seguir con provecho tutoriales de versiones anteriores. Los comandos anteriores también sirven para crear animaciones.
5.2.- La API Microsoft XNA.
XNA es una API desarrollada por Microsoft para desarrollar videojuegos. Microsoft XNA Game Studio 4.0 facilita la creación de videojuegos para PC basados en las plataformas Windows, consolas Xbox 360 y Windows Phone.
Tenemos unos interesantes recursos formativos en los enlaces:
- Tutorial XNA Game Studio: Tutorial programando videojuegos XNA en codecrab.blogspot.com.
- Aprendiendo XNA. Más info relevante en primeros pasos, qué es XNA en aprendiendoxna.wordpress.com.
5.3 Otros entornos destacados.
Comenzamos nuestra lista de entornos de desarrollo con LimeJS HTML5 Game Framework.
Programa los juegos más rápidos y eficientes en C++. Utiliza directx y opengl, los lenguajes utilizados por muchos títulos comerciales. C# es más asequible.
Utiliza .net framework, XNA (para Xbox), librerías Simple DirectMedia Layer (SDL) y directx para crear videojuegos para dispositivos móviles, consolas y ordenadores de sobremesa. Descarga manuales y tutoriales gratis de C#.
Programación de videojuegos en Java. Puedes ampliar información en edu4java.com (programación nivel iniciación).
Stencyl ideal para el desarrollo de games 2D.
MODO, es una aplicación de diseño y creación de contenido para juegos, animación de personajes, y producción de imágenes publicitarias de alta calidad.
Permite la creación de contenidos digitales y diseños de manera muy rápida y cómoda. Dirigida a artistas y diseñadores gráficos que desean centrarse en su creatividad y optimizar la producción.
Adventure Maker, freeware. «Crea rápidamente juegos de apuntar y hacer clic y recorridos virtuales para Windows (nativo), PSP, iPhone e iPod Touch (aplicaciones web).
No requiere programación, muy fácil de usar! Edición libre contiene todas las características principales Incluye herramienta de dibujo libre y compositor de música.»
E-Adventure, «La plataforma eAdventure es un proyecto de investigación que aspira a facilitar la integración de juegos educativos y simulaciones basadas en juegos en procesos educativos en general y Entornos Virtuales de Aprendizaje (VLE) en particular.»
DarkBASIC, «En su día, DarkBASIC Professional era un paquete de desarrollo de juegos avanzado basado en el lenguaje BASIC. Fue fácil de usar y comenzó muchos jóvenes programadores en su viaje en el negocio del juego.
Con frecuencia actualizamos el producto y creció hasta incluir muchas características poderosas para hacer juegos.»
Cube 3D Engine, «Juego de disparos en primera persona para un jugador multijugador rápido y satisfactorio con un juego rápido y satisfactorio de oldskool.
Una gran variedad de modos de juego desde SP clásico a 1 en 1 MP rápido y juego en equipo basado en objetivos, con una gran variedad de mapas originales para jugar.»
The lost Realm of Anoria. «The Lost Realm of Anoria (LROA) es el nombre del Massive Multiplayer Online Roleplaying Game desarrollado por Realm of Anoria Productions (ROAP). Hace tres años, comenzamos con el desarrollo de un juego prototipo 2D completamente jugable.
Esto nos ha permitido crear los conjuntos de habilidades, bibliotecas y herramientas necesarios para construir este nuevo sistema que puede impulsar un mundo virtual alojado en Internet y permitir que grandes cantidades de usuarios participen en él.»
Pygame, «da la bienvenida a todos los proyectos de juegos, arte, música, sonido, video y multimedia de Python. Si ellos usan pygame o no. Una vez que haya terminado de comenzar, puede agregar un nuevo proyecto o colaborar con otras personas.
¿O quizás está interesado en hacer que Pygame (la biblioteca multimedia de Python) sea mejor? En primer lugar, es posible que necesites aprender una o dos cosas sobre pygame leyendo los documentos.»
Torque Game Engine, «Torque 3D es la mejor solución de código abierto y fuente completa disponible. También es nuestro motor estrella basado en los puntos fuertes de nuestro galardonado Front Line Torque Game Engine Advanced. Torque 3D ha sido rediseñado para una máxima flexibilidad y rendimiento en una amplia gama de hardware.
Torque 3D viene equipado con un conjunto completo de herramientas que permiten a su equipo sobresalir y producir juegos y simulaciones de alta calidad. Torque 3D es compatible con Windows y con la implementación web basada en navegador.»
Antiryad Gx, «Es un motor de juegos 3D multiplataforma unificado que se destaca gracias a su amplia capacidad de soporte de plataforma.»
Kaneva, «Kaneva permite a millones de personas explorar, interactuar y crear sus propios mundos. Puedes hacer un mundo virtual o un mundo MMO en 3D. Explora una gran cantidad de mundos creados por nuestra comunidad y diviértete con amigos. Trae tu imaginación y entra en tu propio mundo en Kaneva.»
Basic4GL, «Con Basic4GL Mobile puede: Escribir juegos y programas en BASIC en su PC. Pruébalos en tu teléfono o tableta Android. Permite publicarlos en la tienda Google Play.»
PlayBasic, «PlayBasic es un lenguaje de programación basado en Windows diseñado para la creación de videojuegos en 2D, e incorpora más de 25 años de experiencia en el campo de la programación de videojuegos.
Nuestro objetivo es crear un lenguaje de programación de juegos que ofrezca a los nuevos programadores la flexibilidad y el conjunto de funciones para un desarrollo rápido del juego, sin la complejidad ni el costo. ¡Así que todos pueden volver a experimentar el desafío de la programación de juegos!»
Blitz3D, «Blitz Research Ltd es una empresa de desarrollo de software dedicada a ofrecerle lo último en herramientas de programación de juegos.
Nuestro último producto es Monkey X, que se dirige a las plataformas de moda del momento; incluyendo iOS, Android, Windows Phone 8, HTML5, Flash y mucho más!
Por favor, consulte el sitio web de Monkey X dedicado para más detalles. Nuestro último producto Blitz es BlitzMax, un lenguaje de programación que puede compilar para Windows, Mac y Linux.
BlitzMax es el último lenguaje de programación para aplicaciones de escritorio – es potente y extensible significa que hay un módulo para casi todo.»
Unreal Engine, «GRATIS para el desarrollo de juegos. GRATIS para la realidad virtual. GRATIS para la educación. GRATIS para la arquitectura. LIBRE para la película.»
Genesis 3D, «Genesis3D es un entorno de renderizado 3D en tiempo real para todas sus necesidades 3D en tiempo real. Con una gran comunidad en línea, foros en línea gratis y muchos enlaces con los desarrolladores de Genesis3D … encontrarás todo el soporte y las herramientas que necesitas para comenzar a desarrollar aplicaciones 3D de clase mundial y en tiempo real.
Si es nuevo en el desarrollo con Genesis3D, la versión actual del Software Developer’s Kit es 1.1. Utiliza los tutoriales que se encuentran en nuestras páginas enlazadas y haz preguntas en nuestro foro. El motor es gratuito para descargar y jugar.
Descarga GDemo1, un impresionante ejemplo de Genesis3D en acción. Por favor, lea nuestro acuerdo de licencia con respecto a la creación de su propio contenido con el motor.
Si modifica la fuente del motor Genesis3D, extrae una parte de ella o si utiliza una versión modificada de la fuente del motor, debe hacer que su código fuente esté disponible para que otros lo utilicen bajo los mismos términos que le hemos otorgado.
Si no desea que su código fuente esté disponible, debe obtener una licencia pagada separada de Eclipse.»
Crystal Space, «Crystal Space is a mature, full-featured Software Development Kit (SDK) providing real-time 3D graphics for applications such as games and virtual reality. It is free (LGPL) and cross-platform (Windows, GNU/Linux, Mac OS X).»
Glest, «es un juego de estrategia en tiempo real libre, donde controlas los ejercitos de dos facciones completamente diferentes: Tech, que se compone de guerreros y artefactos mecánicos y Magic, que usa magos y criaturas invocadas en el campo de batalla. Glest no es solo un juego si no también un motor para hacer juegos de estrategia basado en XML y una serie de herramientas.»
Multimedia Fusion 2, «¡La creación de juegos y software nunca ha sido más fácil ni más rápida que con Multimedia Fusion 2! Descubra la herramienta utilizada por tantos profesionales multimedia, creadores de juegos y personas creativas de todos los ámbitos de la vida.
En su primera hora, habrá aprendido lo básico que le permitirá hacer juegos para Windows, iOS, Android, Flash y XNA para teléfonos móviles con Windows y Xbox (XNA for windows mobile). Aprovecha el poder de Multimedia Fusion 2 hoy.»
Otros programas para la creación de videojuegos son …
- Entidad 3D (en español)
6.- Recursos relacionados que te resultarán de ayuda.
- Manuales y tutoriales gratis de 3D Autodesk Maya 2015. Maya LT es un software de modelado 3D de Autodesk muy utilizado en el desarrollo indie de videojuegos (desarrollos independientes) y en games APP´s para dispositivos móviles.
- Pequeña guía para el manejo del software de animación Autodesk 3DS Max. Quizá uno de los programas más utilizados por los grandes títulos de la industria digital del ocio en la animación de personajes de videojuegos …
- La peli Indie Game The Movie refleja el proceso de creación de tres videogames. Bajo nuestro punto de vista es muy realista y consigue acercarse al mundo de la programación independiente a lo largo de todos sus procesos.
-
- Resulta interesante observar aspectos del trabajo del programador de videojuegos así como de su comercialización.
- Es casi seguro que este film-documental te aportará ideas interesantes que pueden ayudarte a llevar a cabo tus proyectos… En el siguiente enlace puedes ver el trailer de Youtube. (La película está en inglés pero puede verse subtitulada).
7.- Novedades y últimas tendencias.
- Desarrollo de videojuegos independientes (indie games).
- Desarrollos de videojuegos para relojes tecnológicos o inteligentes.
8.- Libros y ebooks para aprender a programar videojuegos.
Creación de videojuegos con Construct 2: Preparando la defensa contra los invasores extraterrestres de Fernando Paniagua. Puedes consultar una vista previa de algunos capítulos en la tienda Kindle, para ello ve al enlace del libro.
Aprende a Desarrollar Videojuegos de Ángel Arias. Desarrollar un videojuego es una tarea complicada, por lo que requiere mucha organización y conocimientos de diversas áreas de la informática como la programación, el diseño gráfico, el trabajo en red, inteligencia artificial o multimedia. Este libro trata herramientas como Ogre3D, Unity y XNA que simplifican el proceso de desarrollo.
C++ Programación para programar Juegos: Módulo I de Gary Spencer. Tienda Kindle. Incluye variables, consolas, entrada/ salida, funciones y bucles, programación lógica, punteros, cadenas, clases y diseño orientado a objetos y las metodologías. Temas avanzados de programación en C++ como operadores, sobrecarga, entrada y salida de archivos, herencia y polimorfismo.
Desarrollo de Videojuegos. Un enfoque Práctico: Volumen 1. Arquitectura del Motor: Volume 1 de David Vallejo. Es el primer volumen de una serie que trata el desarrollo completo de videojuegos. Herramientas de desarrollo, compilación, depuración de errores, en definitiva todos los aspectos en el desarrollo de videojuegos.
Desarrollo de Videojuegos_Volumen 2. Programación Gráfica. Volumen 3. Técnicas Avanzadas. Volumen 4. Desarrollo de Componentes. Por varios autores especializados en cada materia. Una gran colección.
Gameplay de Jami Todd. ¿Desea escribir para juegos ? Tanto si deseas escribir para juegos independientes, de moda o dar cuerpo a una idea de juego que acaba de tener en la ducha , el seminario Gameplay ™ brinda asesoramiento experto en todo el proceso.
Desde el diseño de misiones y objetivos para el desarrollo de los personajes del jugador de manera memorable. Jami Todd ha escrito cuentos y juegos interactivos para los últimos diez años . El presenta su seminario de juego para ejecutivos en todo el mundo.
En este seminario contiene consejos de la industria y estrategias para ayudar a definir la audiencia para el equipo antes de que comience la producción. Tienda Kindle.
Cómo Programar Videojuegos en Windows por Antonio Ruiz Fernández. Otro enlace ¿ Cómo programar Videojuegos en Windows?.
📌 No olvides: Seguimos completando este tutorial de programación de videojuegos. Tus aportaciones y comentarios nos ayudarán a mejorarlo.
Gracias por seguir nuestras guías !!! En esta web puedes encontrar más manuales en la categoría Programación. Tienes más info sobre cómo empezar a programar videojuegos en los enlaces relacionados al pie de este artículo:
F. G. dice:
Excelente web para aprender a programar games desde cero
Paco Fernández dice:
Este vídeo está bien si te acabas de instalar Unity y no sabes por donde empezar https://www.youtube.com/watch?v=bXkKxUKdWrU
Jesús García dice:
Supercomplicado programar games, hay que saber un poco de todo. En esta web tenéis algunos videos sobre cómo crear Videojuegos con Unreal Engine 4, un entorno de desarrollo que nos facilita enormemente la tarea y nos permite ir progresando en las habilidades de creación de videojuegos https://vimeo.com/ondemand/cursovideojuegosunreal
Victoria dice:
Podemos programar videojuegos con lenguajes genéricos como c++, java, php, y liberías opengl o sdl, pero para comenzar es más sencillo utilizar lenguajes diseñados al efecto como unity 5, …
Jon dice:
Hooola ¿En qué lenguaje se programan los juegos para la plataforma de Nintendo Wii? He leido que estos juegos se hacen en C ¿o es un lenguaje específico de Nintendo?.
Ana María Terrón dice:
Les indico una aplicación que les permitirá hacer videojuegos y aprender a programar. Yo estoy muy contenta con los progresos conseguidos. En esta página se explica como instalarla y hacer los primeros proyectos https://blogs.technet.microsoft.com/adunatech/2012/07/16/kodu-game-lab-crea-tus-propios-videojuegos/
Garci489 dice:
Recomiendo las plataformas de creación de videojuegos GameMaker: Studio y Unity, son gratis y sólo pagas si deseas exportar tus juegos a las distintas plataformas. Es decir que para empezar sin saber mucho de programación y diseño resultan ideales.
Frida N. dice:
Muchas gracias por la información, tenéis algo sobre programar videojuegos en c++???
Nilde2 dice:
Quizá os pueda interesar esta iniciativa para aprender a programar http://gamesupm.es/
Aitana dice:
quiero hacer un juego sencillo para android ¿qué me recomiendan?
Leire Run dice:
Game Maker es lo más sencillo e intuitivo dentro de la dificultad de hacer videojuegos para Android. Unity3D es otra buena aplicación.
J. Mia dice:
Busco tutorial para aprender a manejar los Direct x de Microsoft en la programación de videojuegos
tiff3469 dice:
Un gran sitio donde conectar con desarrollos independientes de videojuegos IndieCade Festival https://www.youtube.com/channel/UCu3Kt–CWKvP1wCIMrqRnjQ
penxi7 dice:
Carrera en Videojuegos: Maya Autodesk, Adobe Photoshop, Illustrator, ZBrush, 3Ds Max, Keyshot, DAZ Studio y Sketchup. http://www.trazos.net/carrera/carrera-en-videojuegos
Susana Mola dice:
Muchas gracias por compartir esta genial recopilación de recursos para aprender a programar videojuegos. Estoy mirando hacer algún curso tipo máster o carrera relacionada ¿Conocéis o tenéis referencias de una buena escuela para aprender a programar games que no sea demasiado cara y ofrezca una formación seria en este campo?
Martín Hernández dice:
Recomiendo asistir a eventos, sobre gamers donde suelen hacerse charlas muy interesantes sobre desarrollo de videojuegos.
WillisLagergren dice:
Independientemente de su nivel de programación, usted también puede escribir su primer juego. Hace dos años, pensé que era imposible, pero aún intenté lograrlo. ¡Para mí, el desarrollo de juegos se ha convertido en la prueba más difícil de mi vida! ¡Pero valió la pena!
Ahora entiendo que el desarrollo del juego es como cualquier habilidad en nuestra vida: uno mejora cuando hace algo, falla, gana experiencia y mejora sus habilidades