Aprender a programar videojuegos
Aprender a programar videojuegos desde cero, ¿piensas que puede ser fácil? Ahora disponemos de una cantidad de herramientas y opciones que nunca nos habíamos planteados. Antes, un par de personas podían hacer un juego para Pc o Mac, pero ahora nos encontramos con un mercado casi infinito: Windows, Mac, Ubuntu, HTML5, Android, iOS y hasta con la posibilidad de consolas de última generación como PlayStation o xBox.
También los lenguajes de programación se han adaptado a todas estas plataformas, y nos podemos encontrar con engines y frameworks de todo tipo y con todas las exportaciones posibles. GameSalad, Unity, Unreal Engine, Construct 2, Game Maker Studio… todas estas herramientas están a un precio asequible y con posibilidad de competir con los grandes estudios (dependerá del esfuerzo y el tiempo, claro está).
Mira este CURSO DE GAME MAKER STUDIO 2 para principiantes que he preparado.
Lo dicho, parece más fácil que nunca poder crear tu propio videojuego. Sin embargo, aunque muchos de los programas tienen una interfaz gráfica que te puede ayudar mucho para hacer juegos simples, al final toca empezar a programar, así que hay que aprender a programar desde cero.
¿Qué debo saber para aprender a programar videojuegos?
Para programar videojuegos, antes necesitarías tener conocimientos de otras áreas, o tener un compañero que te apoye. Por ejemplo, existe la parte de diseño, la parte de lo que se hace en un papel: un guión, bocetos, dónde colocar los items en pantalla, diálogos del personaje, menús, etc.
Pero también tenemos la parte gráfica, dónde es aconsejable que alguien esté especializado en esta parte (a no ser que seas un crack como Locomalito, tú te lo guisas, tú te lo comes). Siempre se puede adquirir los gráficos gratuitamente o comprarlos, al igual que la parte de audio, pero lo ideal de un estudio serían dos personas, una especializada en programación y otra en gráficos, para que tus juegos tengan un toque personal.
Y no hablemos ya de la parte de marketing. Publicar un juego en una tienda cualquiera (ya sea para móviles o PC) no te garantiza descargas o ventas. Si quieres hacerlo bien, tienes que tener una página web y/o aprovechar las redes sociales para que todo el mundo conozca lo que estás haciendo.
Como vemos, no sólo hay que pensar en la parte de picar código.
¿Como aprender a programar?
Espero no haberte deprimido con todo lo que he comentado (ahora se empieza a animar). Volviendo al tema: si quieres empezar a aprender programación, que sepas que no es difícil, pero no vas a saber hacerlo en una semana.
¿Y si soy yo el que se va a dedicar a programar? ¿Por dónde empiezo?
Para empezar, tener una buena base de matemáticas ayuda mucho. Sobretodo con álgebra, geometría, vectores y algo de física (así es más fácil entender los conceptos para hacer un Angry Birds).
También ayuda tener conocimientos de informática: si quieres hacer un juego online o multiplayer, debes conocer cómo se comunican los servidores y los clientes, que protocolo utiliza, etc. También podemos hablar de procesos multihilo, inteligencia artificial, etc.
Todo esto es prescindible al principio, recordemos que estamos en el punto inicial. Ahora viene el dilema del lenguaje de programación.
Qué lenguaje de programación elijo para empezar a programar
Uno de los principales dilemas a la hora de empezar a programar es saber cuál es el mejor lenguaje de programación para aprender. Encontrarás en muchos sitios que te recomiendan empezar con Java, Visual Basic, Phyton (muy de moda actualmente)… También puedes creer que si quieres dedicarte al desarrollo web solamente tienes que aprender cosas como PHP, el comentado Phyton, ASP, etc, y si quieres hacer videojuegos tienes que empezar con Android, Java, Unity…
Mi sincera opinión: el lenguaje de programación da absolutamente igual. Yo aprendí a programar con Pascal y Visual Basic 4, y no hace tanto (si 12 años no es mucho tiempo). Me refiero a que esos lenguajes eran casi obsoletos cuando empecé (imaginate ahora). He visto en muchos estudios universitarios que empiezan con Java o C. Para alguien que no ha programado nunca, desde un principio usar punteros, objetos, y demás parafernalia que no necesitas hasta que no tienes unas bases mínimas creo que confunde más que ayuda.
Lo importante son los fundamentos de programación. ¿Y eso que es?
Al final, todos los lenguajes de programación tienen sus particularidades específicas, pero también tienen muchas cosas comunes. Las variables, los condicionales, los bucles, todos funcionan de la misma manera, así que lo importante es aprender cómo utilizarlos. Los lenguajes actuales también tienen herencia de objetos, y todos comparten la misma filosofía.
Una vez ya tienes esos fundamentos, aprender un lenguaje de programación nuevo o aprender nuevas características, como pasar de PHP a Ruby, es mucho más fácil gracias a esa base adquirida. Es mucho más fácil aprender japonés si sabes inglés ;).
Curso para aprender a programar desde cero
Después de esta mega-introducción, un lector me recomendó la página Escuela de videojuegos, gestionada por Héctor Costa.
Si te has decidido por Unity para programar videojuegos, te recomiendo el curso TOTALMENTE GRATIS que hay en Udemy para probar como funciona este programa.
También puedes encontrar videotutoriales de Game Maker: Studio 1.4. Puedes hacer un Curso de introducción al GML, dónde aprenderás por pasos todas las opciones básicas para empezar a programar videojuegos. Creo que es la mejor manera de complementar todos mis posts relacionados con el tema.
Si quieres ver algún ejemplo completo, también tienes estos cursos completos de:
que te ayudarán a entender mejor cómo funciona el lenguaje. Yo me he enfocado a pequeños ejemplos que pueden servir en varios juegos, por ejemplo, a usar diferentes idiomas en un juego, pero aquí podrás ver cómo se hace un juego entero desde el principio al fin.
¿Y si quiero aprender a programar videojuegos directamente?
Si quieres aprender a programar videojuegos, es obvio que has elegido como herramienta Game Maker Studio, porque estás en mi web 😁. Aparte de aprender la herramienta, tengo un apartado de GML, que abarca toda la parte del lenguaje de programación propio de Game Maker.
Pero reconozco que si no tienes ningún conocimiento de programación, va a ser más difícil aprender el lenguaje GML desde cero. Para una persona acostumbrada a programar, conocerlo y usarlo es bastante fácil, ya que explico las características propias del lenguaje, como el uso de la herencia, que no es igual a como se hace en otros lenguajes, las palabras reservadas como self y other, o sus eventos propios, como las colisiones o el evento step.
Aprender a programar con Game Maker Studio 2
Yo ahora me estoy centrado en Game Maker Studio 2, la última versión del programa y que ha cambiado radicalmente si siempre has usado esta herramienta. Aunque la programación en su lenguaje GML sigue siendo igual, si estás empezando verás que las acciones Drag&Drop son totalmente diferentes, al igual que la interfaz del programa.
Te recomiendo que hagas el curso del siguiente enlace para conocer Game Maker y así empezar a programar desde cero.
Verás como hacer varios juegos paso a paso, empezarás a entender como se programan los eventos, y luego podrás dar el paso para escribir código con un lenguaje de programación.
Si tienes cualquier duda, escribe un comentario o contacta conmigo.
Para finalizar: unas palabras de Héctor
Espero haberte resuelto las dudas que pudieras tener. Para finalizar, quiero decirte para animarte
- Que no sea fácil no significa que sea difícil. Lo sé, es raro de explicar. Me refiero a que al principio puede parecer una tarea difícil, pero verás que al poco tiempo podrás hacer cosas que ves en la mayoría de stores.
- No empieces a lo grande. Todo el mundo quiere hacer un League of Legends, pero empieza haciendo juegos sencillos en 2D para adquirir práctica.
- ¡Escribe mucho código! Yo me sorprendo mucho cuando miro código de hace un par de años, así que la experiencia ayuda mucho. Pero sólo puedes adquirirla practicando mucho, mucho, mucho. Aquí la perseverancia es la clave del éxito.
- Es mejor empezar haciendo 20 juegos pequeños que uno grande. Así te ayuda a conocer tus progresos y superar los límites en cada uno de ellos.
- Como he dicho al principio, ahora tienes muchas herramientas para elegir, pero también puedes mostrar tu juego de muchas maneras. Es muy fácil subir tu juego de Android a Google Play, o tu juego de pc a itch.io, pero piensa que incluso las videoconsolas tienen un apartado de juegos indie. ¡Nunca sabrás hasta dónde puedes llegar!
Y para finalizar, que mejor que el propio Héctor puede tener sus propias palabras
Hola muy buenas a todos, supongo que no hace falta presentarme ¡con toda la buena publi que me han hecho!
Sólo quiero decir que es un placer para mí estar en sincronía con el proyecto de David. Creo que compartir el conocimiento es un deber que tenemos todos los desarrolladores hispanos, no importa si somos de servicios o juegos. Tenemos que fomentar el desarrollo independiente para hacer también de nuestra comunidad un ejemplo en el que nos ayudamos y enseñamos entre todos, creo que esa es la mejor forma de avivar un sector al que todavía le falta mucho para ponerse al día.
¡Os animo a todos a seguir aprendiendo y os deseo mucha suerte en vuestros proyectos!
Me gusto esa frase “aprender a programar no es facil, pero esto no significa que sea dificil”, me motivo a empezar con mas ganas a programar.
Este topic lo lei dos veces, porque despues de la primera vez no sabia exactamente con que empezar… Ahora ya se, con lo que sea.
Lo que me gusta es que animas a las personas a empezar, cuanto mas practica mejor.
Tengo una sola pregunta… Hace tiempo empece a estudiar C, pero no me gusto, no lo entendia… la programacion la deje por un lado y ahora quiero empezar de nuevo con Java, o hacer simples juegos con game maker. Me servira de algo?
Decias “escribe codigo, mucho codigo”
En que programa puedo generar mis codigos?
Y despues del Game Maker, a por que voy? Unity? Obviamente en 2D
Muchas gracias por tu atencion. Un gran abrazo desde Rumania.
Empezar con C no es la opción más fácil del mundo, en mi opinión, y con Java al principio tienes que creerte un poco algunas cosas hasta que empiezas a entender todo el tema de objetos.
Si haces Java ,obviamente te servirá mucho, no solo para Game Maker sino para aprender cualquier lenguaje.
Para escribir código, lo puedes hacer con Java o cualquier lenguaje. Cuando hacía yo Visual Basic .NET me creaba mis pequeños proyectos (un generador de ejércitos para Warhammer, un programa de optimización de bases de datos, etc). Si practicas con Gaem Maker, puedes hacer 20 prototipos de juegos pequeños, antes de empezar con un juego grande. Un poco como mis tutoriales, que están muy enfocados a hacer cosas concretas.
Y después de Game Maker, ¡conquistar el mundo! 😉
Pues la razón por la que vine a esta página fue para aprender a hacer un RPG como Undertale.
Deberías crear una página dedicada a eso.
El mismo Hector tiene un curso sobre el tema que es bastante completo
Curso de uego RPG en Game Maker
¡Seguro que te sirve!
Hola a todos. Soy docente y me interesa este programa para enseñar en la escuela secundaria. leí, leí y más leí….. muy bueno tu blog! Mi problema surge cuando descargo e instalo el software: Todo bien hasta que lo abro para investigarlo y me vuelve a la etapa de descargar e instalar (como si estuviese en un ciclo). Una sola vez pude ver parte de la ventana porque un cuadro tapa la mitad derecha y no hay cómo quitarlo.
Mi sistema en windows 8.1, no sé si convendrá usar linux o un SO más antiguo o más moderno…. me podrían orientar? Gracias
Te refieres a Game Maker 1.4?
Perdón. No hace falta que apruebes los 2 comentarios anteriores ya que pude instalar bien el programa. Ahora A PROBARLO 🙂
Me alegro 🙂
Ya me dirás si todo funciona bien.
Hola. Quería preguntar en qué pestaña (en acciones) encuentro la opción START OF A BLOCK /END OF A BLOCK. Gracias
Ya lo encontré 🙂
Si es que tengo que responder a los comentarios diariamente 😉
Hola,
Mi duda es la siguiente.
Cuales son los pasos que hay que dar para acabar viviendo de programar videojuegos?
Es decir , tengo una FP de desarrollo de aplicaciones ( conocimiento en java, lo basico de c# y visual basic) y no se que he de hacer para “perseguir mi sueño” que sería ser programador en la industria.
Hay gente que recomienda hacer el grado de Ingeniería informática, otros que recomiendan currártelo de manera autodidacta a base de cursos como los tuyos y experiencia creando sus propias obras.
Se que es un comentario complicado, y que igual estoy preguntando por la fuente de la juventud, pero no tengo nadie que me guíe.
pd: tengo 21 años, por si eso ayuda
Gracias de antemano.
Saludos
Hola,
este tema daría para otro post de lo largo que es :).
Si estás hablando de la “industria del videojuego”, está claro que debes hacer estudios universitarios, y posiblemente el máster de videojuegos que ofrecen muchas universidades, y así poder entrar en una de las empresas grandes que hay. Si tienes un buen nivel de inglés, pues lo más recomendable sería buscar trabajo en países como Canadá, EE.UU o Reino Unido.
Y si no tienes experiencia, siempre va bien poder enseñar cosas que has hecho tú, tu portfolio vamos, no digo de tener juegos publicados, pero algo que puedas enseñar (con el proyecto del master sería suficiente).
Luego está el tema de querer vivir de los videojuegos, y lo que quieres realmente es dedicarte a tu pasión. Una alternativa sería autopublicarte tus propios juegos. Hay ejemplos muy buenos en España de gente que ha hecho juegos muy buenos, incluso con Game Maker Studio, pero el camino es muuucho más complicado (todo lo que sea emprender lo es). Conozco varios ejemplos de un grupo de amigos que se juntan para publicar un proyecto, conseguirlo y no tener el retorno esperado.
Repito, es muy complicado. ¡Ya me gustaría a mí poder vivir de los videojuegos! 🙁 Pero con 21 primaveras que tienes (¡aún eres joven!, jeje), es el momento perfecto para trazar tu plan y trabajar para conseguirlo.
¡Te animo a que lo hagas!
Hola, temgo un buen rato queriendo hacer vidojuegos, temgo una especialidad en 3D y la verdad es que en mi país es casi imposible encomtrar trabajo sobre eso, pero decidí intentar mi sueño, temgo 24 años y cada vez me siento peor y peor, leer esto me motiva a aprnder a programar, nunca he tenido problemas con aprender, realmente lo hago muy rápido, pero solo necesito la motivación, en fin, mi pregunta es si me recomiendas aprender primero con algo sencillo en 2D (estudié arte así que no me es problema lo de esa part xD) o ir directamente a lo que es mi especialidad, que es el 3D, sinceramente los videojuegos son mi pasión y desde niño he querido hacerlos, quiero hacer de todo tipo, no me importa si es 2D o 3D, solo quiero que alguien más los disfrute igual que yo.
Uno de los principales problemas que nos encontramos los que trabajamos con Game Maker Studio es la parte de gráficos, que no sabemos dibujar o no saber dónde conseguir gráficos gratis. ¡Pero tú tienes esa parte cubierta al 1005!
Mi consejo es que si la parte de arte la tienes cubierta, es que busques a algún programador para cubrir la otra parte, y así montar un equipo para avanzar al máximo. Pero si lo quieres hacer todo tú, empezar con Game Maker es la opción más fácil, ya que puedes hacer prototipos o juegos sencillos de una manera rápida.
¿2D o 3D? Si usas GMS, mejor es 2D. Si es 3D, entonces lo mejor es Unity. Yo creo que debes probar los dos programas y decidir con cual te sientes más cómodo.
Espero ver tus resultados, así que ¡compártelo!
mil gracias por este post. Yo estaba buscando para adelantarme a la universidad antes de entrar y esto me viene de maravilla
Super interesante todo, yo particularmente recomiendo javascript para iniciar a programar juegos https://www.escuelajavascript.com/realizando-tu-primer-juego-en-javascript-primer-parte/
Buenas, mi nombre es Jaume y soy un chico de 17 que estoy acabando mi grado medio de Sistemas Micro Informáticos y Redes y tengo conocimientos de HTML, CSS Y JavaScript.
Me gustaría empezar con el tema de los videojuegos ya que es mi pasión, gracias por motivarme aún más.
Empezaré con GMS y si me veo con fuerzas, en u futuro are Unity.
Muchas gracias
Empieza con pequeños prototipos que estén completos, que es una buena manera de adquirir experiencia.
Aunque si tienes conocimientos de JavaScript, verás que Game Maker es más fácil que otros motores y puedes hacer resultados muy buenos.
¡Espero ver tus proyectos!
Buen día a todos.
Actualmente soy diseñador gráfico y estructural, además fotografía y edición de videos. Llevo aproximadamente un año tratando de aterrizar la idea de crear un video juego. Al contrario que los demás la parte de la creación… El guión, sprites etc considero que la tengo cubierta, pero reconozco que la parte de programación, me hace falta mucho por aprender. Opino que Seguiré el consejo de David y haré proyectos cortos para adquirir experiencia y no morir en el intento jeje. Gracias a todos por sus comentarios… Aprendo de cada uno.
Saludos desde Panamá
Buenas Kenzo, también puedes buscar o aliarte con alguien que se le de bien la programación. sé que no es fácil, pero si encuentras a esa persona será lo mejor, te lo digo por experiencia. Puedes probar de preguntar en algún grupo de Facebook
La verdad sólo estoy buscando un inicio para entrar a la universidad,
Mi sueño es introducirme en el mundo de los vídeo juegos.
Solo quería preguntar si estoy tomando un buen camino al comenzar por aquí.
Tengo 16 años y aún no tengo idea de programar, me descargue GameMaker y se algo de HTML. Me manejo regular por lo de diseño.
En resumen: ¿me estoy saltando algo importante que debería tener antes?
¿Depende de cuál es tu objetivo final? ¿Quieres trabajar en una compañía de videojuegos? Entonces tienes que ir a la universidad.
¿Quieres publicar tus propios juegos? Puedes hacerlo ahora mismo, aunque es recomendable aprender a programar. Una muy buena manera de empezar es con Game Maker, y si luego quieres hacer cosas en 3D pasar a otro motor.
Muy buena este block, he querido hacer juego, pero lo que me traba es que trama de ir y que sea algo que no se vea seguido y es difícil escoger
A mi me interesa mas es diseñar niveles y todo lo que tenga que ver con eso pero ni idea de que programa me podri ayudar con eso
El diseño de niveles está completamente separado del programa, o lenguaje de programación, en cuestión. Por ejemplo, un amigo tuyo podría programar un juego de plataformas, y tú dedicarte solo al diseño de niveles, que en Game Maker Studio sería la parte de las rooms.
Luego también está el testeo, que puede hacerlo exclusivamente otra persona (o usuarios), o los mismos del equipo.
Aquí te dejo un artículo que habla de como empezar con el diseño de niveles
Como empezar en el diseño de niveles
hola, me gusto mucho tu blog, es muy completo y tiene muchas recomendaciones buenas, queria preguntar, si como tu dices la mejor forma de empezar es con 2D, que tipo de juego puedo intentar hacer? algo así tipo flappy bird o anry birds?
Plataformas, shooter y un largo etc. Una muy buena manera de empezar es intentar recrear los clásicos: Galaga, pacman, Tetris, etc.
También puedes ver los ejemplos del showcase de YoyoGames
Oye men todo esto me encanto mucho muchas gracias men te lo agradezco mucho!!!!
YA LEI TODO QUIERO ACER UN VIDEOJUEGO
Pues descarga cualquier programa como Game Maker y a practicar mucho! 😉
esta pagina me a motivado a desarrollar mi primer vídeo juego, es un plataformas en 2D muy sencillo pero divertido
Me alegro mucho 😄. Espero que puedas enseñarnos el resultado muy pronto.
Hola! Muy bueno todo esto! Quiero consultarte cómo hacer un spawn aleatorio de objetos para que estos al iniciar la room aparezcan al azar y en cantidades variadas? Gracias por tu atención!
Hice algo parecio en este post
https://www.aprendegamemaker.com/ejemplo-como-guardar-juego/
Hola, yo acabo de empezar hoy, tengo la prueba gratis y pues estoy mirando tutoriales en youtube, ya que yo no puedo pagar el tutorial que recomendaste al principio, (tengo 14 años), mire el tutorial en ingles del juego de plataformas y me da como 5 errores en la linea 34 del codigo paso, y queria preguntar por qué podria ser, incluso lo he copiado al milimetro y nada…
bueno ojala alguien responda
Buenas,
aunque tengas la versión GMS 2, busca tutoriales de versiones anteriores, como Game Maker Studio 1.4, ya que el lenguaje GML casi no ha cambiado tanto. Te recomiendo el canal de HektorProfe.
Me gusto mucho me esforsare para ser un gran creador de juegos grasias a lo que lei me sera mas fasil pero sera cada ves mas difisil aser el juego que tengo en mente
Gracias