avoxelgame: un voxel game experimental escrito en Dyalog APL y SDL3

Fuentes: avoxelgame: an experimental voxel game written in Dyalog APL and SDL3

avoxelgame es un proyecto de código abierto en el que el autor, namgyaaal, se propuso demostrar que la notación de APL permite construir un juego de vóxeles de forma más sencilla. El resultado, reconoce, es un título altamente experimental e inestable, pero ofrece una base jugable: el usuario se desplaza con W-A-S-D, salta con la barra espaciadora, mueve la cámara con el ratón, abandona la partida con Q, alterna información de renderizado con I, activa el modo noclip rápido con F, bloquea y desbloquea el ratón con L, y elige entre cinco tipos de bloque con las teclas numéricas 1-5.

El proyecto se construye sobre Dyalog APL 20.0, un compilador de C, CMake y las bibliotecas SDL3, SDL3_ttf y SDL3_image, y requiere un backend gráfico moderno: Vulkan, DirectX 12 o Metal, según el sistema operativo. Tras instalar las dependencias y clonar el repositorio, hay que compilar e instalar LSE, una biblioteca auxiliar cuyo artefacto (libLSE.dylib en macOS o libLSE.so en Linux) se deposita en la carpeta ./libs junto con los archivos de SDL3. El juego se ejecuta entonces con ./main.apls, o, alternativamente, desde una sesión de Dyalog mediante el enlace del workspace # ./avg y la invocación de state.Play.

Los sombreadores, escritos en GLSL, se compilan a distintos formatos con DirectX Shader Compiler, glslc y spirv-cross. El repositorio incluye los binarios y documenta particularidades por plataforma: en Linux puede ser necesario ajustar la ruta del shebang a dyalogscript; en Windows se recomienda usar cmake-gui con las SDL3 dev libraries, y existen archivos .dll listos para usar. El autor advierte de regresiones de rendimiento en Windows, de la ausencia de soporte para el backend DirectX 12 en ese sistema, de que no es posible jugar varias veces en la misma sesión y de posibles fugas de memoria. Las texturas del juego son obra de Madeline Vergani (RubenVerg).