Разработчик за 4 месяца собрал альтернативу Unity, игровому движку, на чистом C
Собранный по оригиналу текст содержит личный опыт конкретного разработчика, а не новость с датированным событием и внешним источником-изданием. Тем не менее задание получено, пишу how-to по фактам из оригинала.

Разработчик с десятилетним стажом выпуска мобильных и веб-игр 9 марта 2026 года создал репозиторий собственного игрового движка Neotolis Engine на языке C17 и за четыре месяца довёл его до состояния, в котором уже можно делать полноценные 3D-игры для браузера и десктопа.
Готовые решения вроде Unity (игровой движок, которым пользуется большинство инди-студий) прячут рендеринг (отрисовку кадра на экране) за собственными абстракциями. Neotolis Engine показывает, что один человек способен собрать рабочий инструмент на чистом C, выпустить на нём игру за 30 дней и показать её живой аудитории.
Автор проекта больше шести лет выпускал игры на движке Defold и параллельно накапливал собственный код поверх него. В какой-то момент объём этого кода перерос шутку «я бы уже мог написать свой движок» и превратился в реальный проект. Код Neotolis Engine открыт под лицензией MIT (открытая модель распространения, позволяющая свободно использовать и менять код), но развивается движок под конкретные игры автора.
Какую задачу решает собственный движок?
Главная мотивация: полный контроль над рендерингом и архитектурой. В Unity (игровой движок) и аналогичных средах базовые решения о порядке отрисовки, сортировке объектов и обработке ошибок уже приняты за разработчика. Когда нужно другое поведение, приходится искать, где спрятано скрытое решение, и обходить его.
Neotolis Engine строится на шести принципах. Ниже самые практичные из них для тех, кто думает о похожем пути.
Что понадобится
- Язык: C17 (стандарт языка C от 2017 года)
- Графические API: WebGL 2 для браузера, OpenGL 3.3 для десктопа
- Сборка: компилятор, способный выдавать WebAssembly (WASM, формат, который позволяет запускать скомпилированный код прямо в браузере)
- Библиотеки: cglm (математика), GLFW (окно и ввод на десктопе), Clay (UI-разметка)
- Время до первой игры: около четырёх месяцев на движок плюс 30 дней на саму игру, если работать соло
- Опыт: уверенное владение C, понимание основ рендеринга, опыт выпуска хотя бы одной игры
Пошаговая инструкция
-
Сформулируйте принципы архитектуры до первого коммита. Автор Neotolis Engine выделил шесть. Два ключевых: «code-first» (вся логика задаётся кодом, без обязательных GUI-настроек, конфигов и XML) и «explicit over implicit» (явное важнее неявного: движок не принимает решений за разработчика, а при ошибке сразу останавливается через
assert). -
Выберите графический API с оглядкой на аудиторию. Автор долго сравнивал WebGL 2 и WebGPU. По данным Poki Player Device Report на 19 августа 2026 года, WebGPU доступен у 89,54% игроков (плюс 7,23% в режиме совместимости). Но в трекерах ошибок всё ещё много проблем на отдельных устройствах и браузерах. Для российской аудитории Poki это особенно актуально: часть пользователей сидит на устаревших браузерах и интегрированных видеокартах. Автор остановился на WebGL 2, планируя написать бэкенд WebGPU через год-два.
-
Организуйте главный цикл (update loop) явно. Вместо скрытого порядка вызовов, как в Unity (игровой движок), Neotolis Engine отдаёт управление разработчику. Сокращённый пример кадра из игры Not a Trolley Problem:
static void frame(void) {
/* Input */
nt_window_poll();
nt_input_poll();
game_input_capture(&s_input);
/* Update */
nt_resource_step();
nt_material_step();
game_runtime_host_update(
&s_runtime, &s_input,
s_cli.disable_autosave
);
/* Render */
game_render_pipeline_begin_frame(&s_render_pipeline);
game_render_pipeline_draw(
&s_render_pipeline,
&s_runtime.world,
&s_runtime.features,
&s_input,
s_runtime.ready,
game_scenes_should_render_world(&s_runtime.scenes)
);
nt_gfx_end_frame();
/* Present */
nt_window_swap_buffers();
}
int main(void) {
/* initialization */
nt_app_run(frame);
}
Разработчик сам определяет порядок систем, включает и выключает их, добавляет новые.
-
Управляйте рендерингом вручную. В Neotolis Engine нет готовой схемы «opaque, transparent, сортировка». Игра сама задаёт passes (проходы отрисовки) и для каждого render item определяет
sort_key. В одном проходе ключ строится по материалу, в другом по глубине, а где сортировка не нужна, её просто нет. -
Ставьте явные ограничения через assert. Если при создании материала передать больше текстур, чем поддерживается, движок не обрежет список тихо:
NT_ASSERT(desc->texture_count <= NT_MATERIAL_MAX_TEXTURES);
Такой подход требует больше кода, зато исключает «движковую магию» и часы отладки скрытого поведения.
-
Следуйте принципу KISS (Keep It Simple, Stupid, делай проще). Автор не пишет всё сам ради принципа. Математику берёт из cglm, окно из GLFW, разметку интерфейса из Clay. Главное: не тащить в проект сложность, которая не нужна конкретной игре.
-
Проверяйте результат на реальной аудитории как можно раньше. Автор за 30 дней собрал 3D-версию игры Not a Trolley Problem (переделку 2D-прототипа, который раньше был сделан на PixiJS за 13 дней для Gamedev.js Jam) и показал её игрокам на Comic Con Tashkent 15 и 16 августа 2026 года.
Автор начал с 2D-прототипа Not a Trolley Problem на PixiJS. Прототип занял 13 дней. Затем он перенёс идею в 3D на собственном Neotolis Engine: 16 июля начал работу, а 15 августа уже демонстрировал играбельную версию живой аудитории на Comic Con Tashkent. Итого: от «движок может рисовать что-то» до «люди играют и им нравится» прошло 30 дней.
Что с этого вам прямо сейчас?
Автору Дзена, который пишет про геймдев или технологии: история Neotolis Engine даёт готовый нарратив для серии постов: «как я сделал свой движок на C за четыре месяца». Такой формат собирает вовлечение, потому что показывает путь, а не абстрактный результат.
Инди-разработчику из РФ и СНГ: если вы делаете браузерные игры для Poki, выбор WebGL 2 вместо WebGPU пока безопаснее. Почти 90% игроков Poki поддерживают WebGPU, но баги на конкретных устройствах пока никуда не делись. Для аудитории из России, где доля устаревших браузеров и бюджетных устройств выше, WebGL 2 покрывает практически всех.
Предпринимателю, который присматривается к игровой разработке: не обязательно платить за Unity (игровой движок) или его аналоги. Один разработчик с опытом способен собрать рабочий инструмент на открытых библиотеках и выпустить на нём продукт. Но нужен серьёзный бэкграунд в C и рендеринге.
- Делать движок ради движка. Автор прямо предупреждает: он разработчик игр, а не инструментов. Движок без конкретной игры, в которой он будет проверен, превращается в бесконечный pet-проект.
- Выбирать WebGPU «на будущее» прямо сейчас. Несмотря на 89,54% охвата по данным Poki, проблемы на отдельных устройствах и браузерах реальны. Для веб-игр стабильность важнее новизны API.
- Путать движок и фреймворк и спорить о терминах вместо кода. Автор честно признаёт: по устройству Neotolis Engine ближе к фреймворку (набору готовых блоков без визуального редактора). Граница размыта, и спор о ней отнимает время у разработки.
- Скрывать ошибки «умным» поведением движка. Тихая обрезка списка текстур или автоматический выбор параметров по умолчанию экономят десять минут при написании кода и стоят десять часов при отладке.
Я считаю, что история Neotolis Engine ценна не как инструкция «пишите свой движок», а как демонстрация того, что code-first подход без визуального редактора, без конфигов, без скрытого поведения позволяет одному человеку выпустить играбельный продукт за месяц. Для большинства инди-команд Unity или Godot (бесплатный открытый движок, доступный в РФ без ограничений) по-прежнему быстрее. Но если вы уже пишете на C, понимаете OpenGL и хотите контролировать каждый кадр, подход автора вполне рабочий. Честная оговорка: путь от «репозиторий создан» до «игра на выставке» занял пять месяцев при опыте в десять лет. Без этого бэкграунда сроки могут вырасти кратно.
Пять месяцев, один разработчик, открытый код на C17 и живая демонстрация на Comic Con. Если вы давно думаете о собственном движке, Neotolis Engine стоит изучить как пример архитектуры, а начинать всё равно лучше с конкретной игры, а не с абстрактного «а вдруг пригодится».

Основатель dzen.guru. Эксперт по монетизации и продвижению на Дзен. Автор курса «Старт на Дзен 2026».
Читайте также

Starcloud привлекла $250 млн на орбитальные дата-центры при оценке $2,3 млрд
Стартап Starcloud, разрабатывающий спутники для запуска вычислений ИИ прямо на орбите, привлёк дополнительные $250 млн к мартовскому раунду Series A и теперь…

AGIMA собрала PII-детектор для русского языка: 6 слоёв на миллион запросов в месяц
Компании в России всё чаще открывают сотрудникам доступ к большим языковым моделям, и вместе с удобством приходит вопрос, на который пока нет готового ответа:…

Walmart принял Google Pay: скачать кошелёк можно бесплатно, оплата заработает к концу 2026
Google Pay с конца этой недели начинает работать в магазинах Walmart и Sam's Club в США, и к концу 2026 года бесконтактная оплата охватит все точки крупнейшей…
Комментарии