¿Es COBOL capaz de ejecutar un juego de acción?

COBOL no es precisamente el primer lenguaje que viene a la mente al pensar en un First Person Shooter (FPS). Después de todo, su nombre significa Common Business Oriented Language (Lenguaje Común Orientado a Negocios) y no Common Game Oriented Language. Sin embargo, para el creador de contenido icitry, ese es precisamente el punto. La única manera de determinar si COBOL sería suficiente para escribir un juego FPS era intentándolo.

Claro, uno podría conformarse con saber que el lenguaje es Turing complete y, por lo tanto, capaz por definición, pero ¿dónde estaría la diversión en eso? El pipeline para este juego es tan improvisado como parece: COBOL no cuenta con una pila gráfica robusta ni con muchas librerías para manipular píxeles, por lo que el autor optó por enviar cada fotograma del juego como bitmap crudo a STDOUT, dejando que ffplay se encargue de ensamblar las imágenes. El control funciona de manera similar, con la terminal configurada en entrada raw y el programa en COBOL leyendo desde STDIN.

En cuanto al contenido visual, el proyecto se basa en un shooter estándar de raycasting inspirado en Wolfenstein. icitry ofrece una explicación técnica sobre el algoritmo de raycasting y las razones por las que implementarlo en COBOL resulta una tarea disparatada. Ese es el tema central: el autor logra implementar sprites y la lógica necesaria para moverse y atacar enemigos, mientras se queja constantemente de las limitaciones de COBOL. Como si eso no fuera suficiente, añade sectores de altura variable para acercar el proyecto a un clon fiel de DOOM. Al final, el resultado es un juego completo, disponible bajo licencia Apache en GitHub.

Aunque este video no sea la introducción más amable a COBOL, demuestra fehacientemente que es posible manipular un lenguaje diseñado para la gestión empresarial para lograr cualquier objetivo creativo o técnico que uno se proponga.

Vía Hackaday.