Programar videojuegos es divertido

 Universitat Oberta de Catalunya

Tras un duro día en el trabajo como ingeniero de software y programador, finalmente vuelves a casa. Antes de ir a dormir, por fin tienes un rato para desconectarte de todo jugando tu videojuego favorito. El objetivo es desarrollar y desplegar algoritmos en código máquina con los que automatizar procesos de complejidad creciente.

Aunque el concepto de diversión es subjetivo y definir un juego no es trivial, es muy popular su concepción basada en el reto o desafío.

Este puede adoptar muchas formas, desde sortear barreras físicas en un mundo virtual, un Super Mario, a resolver algún tipo de rompecabezas, una mazmorra del Zelda. En este grupo de los rompecabezas, existe el curioso género de los programming games, o juegos de programación, donde el desafío a resolver se presenta como un problema de programación puro y duro. «A menudo, la estética e interfaz del juego se basan en una metáfora interna de la computadora y el código debe escribirse explícitamente, no es solo una cuestión pensar estrategias algorítmicamente. Pero sobre todo, es interesante el hecho de que se plantean como productos orientados sobre todo al entretenimiento, no como juegos serios o formativos» afirma Joan Arnedo Profesor de los Estudios de Informática, Multimedia y Telecomunicación en la Universitat Oberta de Catalunya (UOC).

Para tener una idea general sobre este tipo de juegos, el eLearn Center de la UOC, llevó a cabo un estudio sobre la plataforma de distribución Steam, a partir del interrogante cómo estudiar la programación, y si bien, nos centramos en esta plataforma para el entorno PC, estos juegos también son populares en plataformas de móvil como la Play Store, pero con productos quizá más orientados a un público infantil «En total se localizaron 116 productos de este tipo a fecha de Mayo 2020. Pero no todos aplican, pues en algunos casos se trata de herramientas de desarrollo – no juegos – o de juegos que incorporan herramientas de modding, pero no son propiamente de programación. En total, quedan unos 70. Desde 2014 hasta ahora se ve una clara tendencia al alza, entre 10 y 20 juegos nuevos cada año, y 16 juegos más anunciados como próximamente» indica Arnedo.

De acuerdo al experto, un vistazo a sus tags proporciona una idea más en profundidad de sus principales propiedades, más allá de la programación. Es interesante comentar antes, que en la plataforma Steam, los tags los definen los propios usuarios. La mayoría resultan ser juegos Indie y con una inclinación hacia la presentación de desafíos difíciles, alrededor del 33%, sin embargo, en algunos casos se detectan etiquetas de “broma”, pues indican algunos juegos como casuales, cuando en realidad son bastante complicados.

Alrededor del 18,5% todavía están en desarrollo activo, es el caso de los juegos en acceso anticipado. Además, para Arnedo, también es interesante ver que el ángulo educativo, aunque menor, no pasa desapercibido, y alrededor del 31% están etiquetados de este modo.

Entre todos los juegos de este tipo, sin duda destacan dos compañías cuyos juegos son los ejemplos de manual, y las mejores opciones para sumergirse en el género. Por una parte, está Tomorrow Corporation, con sus dos juegos Human resource Machine y 7 Billion Humans, en donde se desarrollan programas combinando bloques de código predefinidos, tipo Scratch. Y no por su aspecto simplista, con dibujos, son sencillos. Alerta que tus programas se puntúan por optimización en espacio y en tiempo. Por otra parte, tenemos a
Zachatronics, quizá el desarrollador que más ha capitalizado este género, con un amplio catálogo de todo tipo.

¿Automatización de células de fabricación flexible con bloques de código? ¿Procesamiento paralelo de E/S en ensamblador a través de una interfaz modo texto? Mejor aún, dispone de un programa de licencias gratuitas para todo el entorno académico sin ánimo de lucro.

«Pero también vale la pena mencionar que hay casos especiales, donde la programación no es el propósito en sí mismo, sino una herramienta en el contexto de un juego de aventuras donde la narrativa es más importante. Un ejemplo es el Else Heart.Break o también tenemos MMORPGs como Adventure Landa» indica Arnedo.

Quizá la pregunta interesante es si estos juegos sirven para aprender a programar, para el docente de la UOC «Hay que reiterar que no se trata de juegos creados con un objetivo puramente de aprendizaje, sino para el entretenimiento. Pero claro está, hay público que considera divertido resolver este tipo de problemas, igual que hay quien hace crucigramas o sudokus.»

A pesar de ello, tras su estudio, sí que se puede considerar que algunos contemplan una pequeña parte de un temario de iniciación a la programación, o pueden ser útiles como introducción al pensamiento computacional. Partiendo del estudio de B. A. Becker y T. Fitzpatrick, “What do cs1 syllabi reveal about our expectations of introductory programming students?” (2019), y un poquito del
Computer Science Curricula 2013 de la ACM, Joan Arnedo enumera los objetivos de aprendizaje típicos de un temario de iniciación a la programación detectados entre los distintos juegos analizados:

  • Resolución de problemas y diseño de algoritmos. Escritura de código.
  • Debug y test mediante ejecución paso a paso.
  • Dominio de sentencias de selección (tipo «if»).
  • Estructuras iterativas (tipo «while», pero a menudo «goto»).
  • Uso de variables y operadores.
  • Llamada a funciones.
  • En mucha menor medida, uso de arrays, listas y objetos.

Pero estrictamente, solo en unos pocos realmente se llega a codificar, ya sea simplificando mediante bloques de código o con texto como en la vida real. Así pues, la conclusión, según indica Arnedo, es que, servirían en los primeros compases de una asignatura de iniciación a la programación, pero no para empezar desde cero o como recurso auto-contenido. No por ello deja de ser un género muy interesante, ya sea para despertar el gusanillo por la programación, o para alguien a quién ya le va el tema y quiere un desafío.

Como en todos los juegos, solo hay que buscar uno que tenga el nivel de dificultad adecuado.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Categorías