← На главную

moonBASIC: 2D/3D-игры без установки Go, GCC и Node.js

14.07.2026 17:53 · hackernews

moonBASIC — это современная среда для создания 2D и 3D игр, которая не требует установки Go, GCC, Node.js или Raylib. Достаточно скачать один архив под свою платформу, и в нём уже лежит всё необходимое. Репозиторий проекта на GitHub — официальный источник документации, примеров и готовых сборок для Windows, Linux и macOS (Apple Silicon).

Один архив даёт сразу несколько утилит: moonrun для запуска игр, компилятор moonbasic для проверки синтаксиса, компиляции в байткод .mbc и работы с LSP, а также moonBASIC IDE — встроенный редактор с полной документацией. В движок вшиты Raylib (графика и звук), Box2D (2D-физика) и Jolt (3D-физика и KCC), плюс сетевой движок ENet. Всё это закрывает более 4200 встроенных команд в 40+ пространствах имён: WINDOW.*, ENTITY.*, PHYSICS3D.*, GUI.*, NET.* и так далее.

Самый простой путь — скачать IDE-сборку, распаковать в постоянную папку и запустить START-IDE.bat (Windows) или ./START-IDE.sh (Linux/macOS). В редакторе можно сразу писать код на .mb, запускать игру по F5, проверять синтаксис через Ctrl+Shift+C, компилировать в .mbc через Ctrl+Shift+B или открывать справку по Alt+H. Документация открывается в боковой панели — там и BEGIN_HERE.md, и полный справочник команд.

Для тех, кто предпочитает терминал, есть полная сборка рантайма. С её помощью создаётся новый проект через moonbasic new MyGame, а запускается он командой moonrun main.mb. Примеры лежат в репозитории отдельно, например moonrun examples/spin_cube/main.mb.

Под VS Code и Cursor тоже есть интеграция. После распаковки полной сборки достаточно запустить скрипт INSTALL-VSCODE.bat или ./INSTALL-VSCODE.sh. Он установит расширение и автоматически пропишет пути к moonbasic.languageServerPath и moonbasic.moonrunPath. После этого в редакторе работают автодополнение, подсказки при наведении, запуск через Ctrl+F5, проверка через Ctrl+Shift+C и помощь по Alt+H.

Пример минимальной программы выглядит так:

APP.OPEN(960, 540, "Hello moonBASIC")
WHILE NOT APP.SHOULDCLOSE()
    RENDER.CLEAR(20, 24, 32)
    RENDER.FRAME()
WEND
APP.CLOSE()

При этом APP.* — это синонимы WINDOW.*, то есть одно и то же для совместимости с туториалами.

Проект распространяется под лицензией MIT, полный текст — в файле LICENSE.

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