Lo que comenzó como un pasatiempo se volvió un desafío técnico para PICO-8

Fuentes: Simulated Evolution on the PICO-8
Lo que comenzó como un pasatiempo se volvió un desafío técnico para PICO-8
Imagen generada con IA

El autor Michael Martin decidió tomar un descanso después de semanas de artículos intensivos y optar por hacer algo 'simple y sin complicaciones' en un lenguaje de alto nivel: un port del simulador 'Simulated Evolution' para PICO-8, una 'consola fantasia' que usa un dialecto de Lua. Sin embargo, este proyecto aparentemente sencillas se convirtió en todo un reto técnico que le llevó a combinar múltiples técnicas de otros proyectos. Simulated Evolution es una simulación donde unas criaturas diminutas ('bugs') nadan en un mundo bidimensional buscando plancton para comer. El principal desafío fue adaptar el código escrito originalmente en C y ensamblador a Lua. Mientras que las versiones anteriores mantenían todas las criaturas en un array y lo manipulaban durante la iteración (moviendo elementos, ajustando índices), la versión en Lua aprovechaba mejor las características del lenguaje usando tablas hash con claves enteras. Para resolver las limitaciones de memoria de PICO-8, Martin reutilizó el spritesheet como un 'backbuffer' adicional para rastrear el plancton, organizando 247 de los 255 tiles posibles en una cuadrícula de 13x19 bloques de 8x8 píxeles. Dado que la pantalla de PICO-8 es de solo 128x128 píxeles y el mundo es de 150x100, implementó scrolling para permitir al usuario moverse por el mapa. También hubo que resolver las limitaciones numéricas de PICO-8, que solo acepta enteros de 16 bits con signo (-32768 a 32767). La solución fue aprovechar que PICO-8 usa números de punto fijo de 32 bits con 16 bits de fracción, dividiendo todos los valores a la mitad sin perder precisión. El proyecto demuestra cómo un proyecto aparentemente simple puede requerir soluciones creativas combinando técnicas de múltiples campos: programación de juegos retro, gestión de memorialimited, y técnicas de antiguas computadoras de 8 bits como Commodore 64 y Atari.