Bajo un océano de bits, mes I

Por Javier Albizu, 7 Febrero, 2018
Yo tenía un plan. Aunque erra un mal plan, era mío. Mirándolo en perspectiva, reconoceré que era un plan de mierda, un plan nada realista planteado desde una serie de asunciones erróneas. Un plan que, al final, no me habría servido para lo que quería.
Pero yo tenía un plan.

Antes de eso, mucho antes, yo tenía un deseo: Quería hacer un vídeo juego.
Quizás este deseo no se remonte tanto como para retrotraernos hasta el momento en el que contemplé las interioridades de una recreativa, o aquel día en el que mis manos se posaron sobre el primer Pong familiar que llegó a casa, o hasta mi primer y fallido contacto con Commodore1.
Quizás tampoco llegue tan atrás como para vincularlo al Spectrum que sucedió a aquellas máquinas y que pereció esa misma noche2, o con el MSX que siguió a este3.

Puestos a suponer, mis memoria podría tratar de ubicar el germen de este deseo con el regreso de la máquina de Jack Tramiel a mi vida y el advenimiento de SEGA4. Es probable que también ayudasen el paulatino descubrimiento de los lugares secretos de Pamplona5 y las primeras e inesperadas relaciones de amistad que surgieron en algunos de ellos6.
Pero yo tenía que hacer un juego de ordenador (y un libro, y un tebeo, y un juego de rol y…)

Así que pedí a mis padres que me apuntasen a clases de informática (fuese lo que fuese eso), y así lo hicieron… varias veces. Pero en los lugares en los que acababa sólo me enseñaban a hacer programas para sumar en BASIC, así que lo dejé… una y otra vez.

Cuando abandoné la enseñanza reglada el deseo seguía ahí. Oculto y acechante se hacía presente ante la aparición de nuevas recreativas y consolas. Así pues, una vez más pedí a mis padres algo para poder llevarlo a buen término. Era el noventa y poco y lo que llegó a casa fue un curso de BASIC de CEAC. La edición del año noventa de un curso de BASIC del ochenta y tres que anunciaban en el 93 como “Curso de informática” (sea lo que sea eso).

Curso CEAC

Tras ojearlo por encima y ver que era más de lo mismo no le hice ni caso. Ni a él ni a la pasta que les habían tangado a mis padres. Amor de hijo.

La siguiente intentona fue al año siguiente. En el noventa y cuatro salió en los kioskos el “Curso IBM de animación diseño gráfico y multimedia”. Un curso que la kioskera a la que le comprábamos la prensa (y que al mismo tiempo era uno de mis múltiples proveedores de tebeos) me reservó eficientemente durante un año.
Este curso incluía entre sus fascículos la versión reducida de otro coleccionable, el “Curso IBM de Programación en C++”.
Tras mirarlo y ver que no me enteraba de la misa la media también lo aparqué.

Hubo muchos más intentos (aunque no demasiado intensos) para llevar aquello hacia adelante. Libros prestados de Turbo Pascal y tomacos que hablaban de programación estructurada. La zona metafórica de mi cráneo está poblada por los chichones causados por mis cabezazos contra la programación, pero no había manera de que nada de aquello entrase en mi cabeza.

Habré leído las primeras cien páginas de más de dos docenas de manuales, cursos y tutoriales de programación, pero siempre ha llegado un momento en el que no entiendo nada de lo que me están diciendo. Es probable que en cada una de estas ocasiones haya avanzado un par de páginas más, pero la frustración siempre me ha hecho dejarlo.

Hasta aquí, me dije hace unos años. Tengo que elaborar un plan. Un plan realizable con un objetivo claro y perfectamente delimitado.
Y así lo hice. Cada día hice un plan. Un plan que era postergado, remodelado e invalidado con la llegada de cada nuevo amanecer.
Mientras tanto, con el paso de los años iba haciendo acopio de información7. Decenas de enlaces, cientos de libros y vídeos que me decía “esto puede venirme bien”. Material que nunca volvía a mirar.
Estos planes no abarcaban únicamente a la programática, sino que se extendían por todas las facetas creativas tocantes a mis aficiones.

Esto fue así hasta hace cuatro años. En 2014 decidí dejar de leer sobre las cosas que quería hacer y empezar a aprender a través de la práctica. Me planteé retos personales con una duración de dos años durante los que evaluaría mi evolución. No era la primera vez que me planteaba algo parecido pero, en las anteriores ocasiones, nunca me había establecido una fecha de fin. El objetivo no era alcanzar una meta sino el ver hasta dónde llegaba. Al menos esto fue así en el primero de estos retos.

Este consistió en hacer un dibujo diario durante esos dos años8. Mientras lo hacía me preguntaba “y después... ¿qué?”. Una pregunta que respondí durante los últimos meses de este primer “tour de force” conmigo mismo.
Al maltrato del papel le siguió otro de los objetivos de antaño; el crear un manual básico para Daegon9. La misión con la que os ido torturando (y me ha servido para mantener viva esta web) desde 2016.
En este caso el objetivo era más concreto y complejo que en el primero. Estaba dividido en varios sub-retos más pequeños que he ido ampliando a lo largo de su duración, en algunos de los cuales, pese a fracasar en el principal, he salido triunfante.

Al igual que sucedió con los anteriores, cuando se acercaba el final de esta fuente de frustración, volvía una y otra vez la pregunta; “Y después... ¿qué?”. Y esta vez la respuesta fue… darme de cabezazos una vez más contra la programación.

Y aquí estamos. Dos años para hacer un vídeo juego y descontando.
Mientras aún me encontraba en los que creía que eran los últimos estertores del anterior reto traté de preparar el terreno. Le dí un tiento a la obra de los padres del C10 sin erótico resultado. Poco parece haber cambiado en mis procesos mentales a ese respecto.

Buscando algo más accesible, leí a gente que recomendaba ganar algo de conocimiento sobre los más amistosos ofidios antes de pasar a temas más arcaicos y áridos11. Así pues, me puse a aprender Python a las duras y avancé bastante en este asunto. Llegué a teclear treinta y ocho de los cincuenta y dos ejercicios de ese libro antes de decirme “Bah, tengo tiempo, ya lo finiquitaré cuando toque dedicarle toda mi atención”.

Y llegó la fecha. Como ya comentaba la semana pasada, todo se me descuadró un poco pero no iba a retrasar esto durante más tiempo. Pero tenía un pequeño problema de base.
Por más irregulares que sean las líneas, sé manejar un lápiz. Por más inconexas que sean las palabras resultantes, sé juntar letras. Pero sigo sin tener ni idea de cómo empezar a hacer un juego de ordenador.

Así pues, durante el primer mes me he dedicado a leer sobre el asunto. Ya sea desde el punto de vista de un escritor12, o algo un poco más generalista13.
Tras la lectura tengo una idea aproximada de en qué debo centrarme. Temas que ya intuía se han confirmado, pero muchas de las dudas no han desaparecido.

Tengo claro que mi juego será un plataformas 2D de scrol lateral. Sé que estará ambientado en Daegon y que será software libre. Y hasta aquí puedo leer.
En primera instancia quería hacerlo con píxeles gordotes, pero ante mis limitaciones artísticas me he planteado el darle una estética de lápiz sin entintar.

Durante todo el proceso previo había decidido utilizar Godot como motor del juego. Iba mirando su evolución y me apunté a un par de cursos sobre él en Udemy, pero, se acercaba la llegada de la versión 3.0 y no sabía si lanzarme a comenzar el juego con la 2. Así pues, tanteé otro de los materiales que tenía por el disco duro. Grave error.
Tras comenzar a leer el primer libro de los disponibles por la Universidad de Ciudad Real me picó el gusanillo de hacerlo todo desde cero. Porque yo soy así y me gusta ponerme las cosas fáciles.

De cara a lanzarme a ello ese manual no me parecía el más adecuado, así que me acordé del curso de C++ del noventa y cuatro. Son once libretos de veinte páginas y me parecía algo más asequible para empezar que cuatro libracos de más de trescientas. Pero para el cuarto libreto la cosa empieza ya a hacerse confusa.

Curso IMB de C++

Hete tú aquí que, mientras me estoy pegando con esto, otro amigo me descubre al señor Casey Muratori y su Handmade Hero14.
Tras echarle un vistazo a la obra de este seños, me creé una hoja de cálculo con los datos de todos los capítulos que hasta el momento se encuentran disponibles de su curso.
Vaya, me dije. “Sólo” son 751 horas de vídeos. Si le dedico dos horas al día podría terminar con ellos más o menos en un año. La tentación (suicida) estaba ahí y no tardé en lanzarme con los brazos abiertos hacia ella.
Empecé bien. Las cosas que explicaba en los vídeos previos al propio curso me ayudaron a asentar alguna de las nociones difusas que me había dejado el curso de C++ pero,una vez más, llegó el punto en el que no me enteraba de qué me estaba hablando.

Y así estamos en estos momentos. Una vez que hemos superado la fase de “Hola Mundo” y el calcular el área de un cuadrado, estamos mirando documentación de SFML, OpenGL para crearnos una ventana en la que dibujar cosas. Leo cosas de las API del sistema y no sé por dónde me da el aire. Copio churros de código que hacen las cosas que se supone que tienen que hacer, pero no entiendo el funcionamiento de por qué lo hacen.
Y el tiempo sigue pasando.

Así pues, toca cambiar la planificación… una vez más.
Si para junio sigo sin aclararme volveré al plan original de Godot, pero por el momento voy a seguir dándome de cabezazos contra el C.
Y vosotros iréis sufriendo las consecuencias por aquí, vuestro agónico canal amigo.
Pero os aseguro que yo tenía un plan.

1. Los tiempos míticos
2. Primeras andanzas
3. A la tercera tampoco va la vencida
4. Y llegó el amor
5. El ataque de las magdalenas
6. La secuela del ataque de las magdalenas

7. Herramientas para crear juegos

- Gammemaker
- RpgMaker
- BennuGD
- Arcade Game Studio
- La Churrera
- La Churrera MK I
- La Churrera MK II
- CPCTelera
- CC65
- CBM .prg Studio
- Unity3D
- GameSalad
- Construct 2
- Godot
- NightMod
- Adventure Game Studio
- Garry Kitchen's GameMaker
- Arcade Game Construction Kit
- Adventure Construction Set
- Gaming App Construction Kit
- Openbor
- Tilengine
- Löve
- V-Play
- 8 Bits de poder
- Shoot Em Up Construction Kit I
- Shoot Em Up Construction Kit II
- Shoot Em Up Construction Kit III
- XNA I
- XNA II
- Compilador cruzado para BASIC de Spectrum
- Compilador cruzado de C para Spectrum

Recursos:
- 10 Free Game Development Tools And Other Resources
- The Big List Of Game Making Tools
- Video game development software
- The Game Creators
- Uptopdown
- Ragzouken.itch.io
- Foro Nintendoage

IDEs:
- Netbeans
- Code Blocks
- QT Projects
- Brackets
- PyCharm
- Ninja Ide
- Eclipse
- Visual Studio

Cursos Programación:
- Documentación Godot
- Games From Scratch
- Godot en Games From Scratch
- Más Games from Scratch
- Kids-Started-in-Game-Development.aspx
- Más Kids-Started-in-Game-Development.aspx
- Writing a Game Engine from Scratch I
- Writing a Game Engine from Scratch II
- Writing a Game Engine from Scratch III
- Writing a Game Engine from Scratch IV
- Making a Game Boy game in 2017: A "Sheep It Up!”
- An introduction to writing for computers I
- An introduction to writing for computers II
- Curso de Experto en Desarrollo de Videojuegos Escuela Superior de Informática de Ciudad Real
- Cómo escribir juegos para el ZX Spectrum
- Cómo crear un juego para Gameboy

Plataformas formación:
- Progate
- Codecademy
- Khanacademy
- Quickcode
- Arcademi.co
- Codingame

8. Álbumes de dibujo
- Dibujos de 2014
- Dibujos de 2015
- Dibujos de 2016
- Dibujos de 2017
- Dibujos de 2018

9. Daegon
10. El Lenguaje de Programacion C
11. Learn Python The Hard Way
12. The Ultimate Guide to Video Game Writing and Design
13. The Computer Game Design Course: Principles, Practices And Techniques For The Aspiring Game Designer
14. Handmade Hero/

El contenido de este campo se mantiene privado y no se mostrará públicamente.

Plain text

  • No se permiten etiquetas HTML.
  • Las direcciones de correos electrónicos y páginas web se convierten en enlaces automáticamente.
  • Saltos automáticos de líneas y de párrafos.