← На главную

Экспериментальная воксельная игра на Dyalog APL тормозит на Windows

21.06.2026 08:04 · hackernews

Автор поспорил сам с собой, что нотация APL упростит создание воксельной игры. Результат — экспериментальный и багнутый проект. Игрок двигается WASD, прыгает пробелом, осматривается мышью. Q выходит, I показывает информацию рендера, F включает быстрый noclip, L блокирует курсор, клавиши 1–5 выбирают блоки для размещения.

В основе лежит Dyalog APL 20.0. Для сборки нужен C‑компилятор, CMake и поддержка одного из графических API: Vulkan, DirectX12 или Metal. Также обязательны библиотеки SDL3, sdl3_ttf и sdl3_image. На macOS их ставят через brew. Инструкции даны для macOS и Linux: сначала собрать LSE (в подпапке lse с помощью cmake и make), после установки libLSE.dylib (macOS) или libLSE.so (Linux) попадают в ./libs/ вместе с файлами SDL3. Запуск — ./main.apls. Некоторым пользователям Linux потребуется подправить shebang в main.apls на путь из which dyalogscript.

Windows сложнее: надо найти dev-библиотеки SDL3, использовать cmake-gui. Готовые .dll выложены отдельно — их кладут в ./libs/. После этого игра запускается через сессию Dyalog командами ]cd <ROOT DIRECTORY> и ]link.create # . /avg, затем state.Play.

Исходники шейдеров лежат в ./shaders/glsl. Они уже скомпилированы и вшиты в репозиторий. Чтобы изменить шейдеры, правят .glsl-файлы и запускают ./compile_shaders.sh. Для этого нужны DirectX Shader Compiler, glslc и spirv-cross.

Windows пока страдает от серьёзных проблем с производительностью. DirectX12 бэкенд на Windows не поддерживается. Нельзя сыграть несколько раз в одной сессии — возникает syserror 999. Вероятны утечки памяти. Текстуры созданы Madeline Vergani (@RubenVerg).

Читать оригинал →