El autor de este artículo comparte su experiencia creando un lenguaje de programación propio llamado «pslang», un proyecto personal nacido de la frustración con las opciones existentes para implementar sistemas de modificación (mods) en videojuegos. Tras 17 años de experiencia programando, decidió emprender este proyecto cuando tres factores convergieron: necesidad de un lenguaje accesible para modders no profesionales, capacidad de ejecución segura aislada (sandboxed), y integración eficiente con el motor del juego. Consideró alternativas como Lua y LuaJIT, pero encontró problemas significativos: el sandboxing es complejo de implementar correctamente, el puente de entidades ECS genera overhead de rendimiento, y las dos implementaciones principales han divergido. Los mods nativos (DLLs) presentan desafíos adicionales: distribución multiplataforma, imposibilidad de sandboxing real, y obligatoriedad de programar en C++. El lenguaje resultante combina características de C++, Rust, Python y Zig. Es imperativo, con evaluación eager, paso por valor, de bajo nivel y tipado estático nominal. Usa indentación para scoping (como Python), soporta 13 tipos primitivos (bool, enteros con signo i8/i16/i32/i64, sin signo u8/u16/u32/u64, flotantes f16/f32/f64, y unit), y permite definir funciones y structs en cualquier scope. El scope top-level sirve como punto de entrada, equivalente a main(). El autor enfatiza que no busca competir con lenguajes establecidos, sino divertirse y aprender sobre diseño de lenguajes de programación, demostrando que no es tan complicado como parece.
Creé un lenguaje de programación para mods de videojuegos tras 17 años de experiencia
