Открытый кроссплатформенный игровой движок для разработки игр на настольных и мобильных платформах.
Ключевые идеи Stappler Xenolith:
Золотая середина
Движок для игр среднего класса (не AAA), со средними требованиями по качеству графики. Не CryTech и UE5, а эффективная средняя рабочая лошадка.
Передовые технологии
Используем только современную технологическую базу. Устаревшие подходы не берём.
Удобство разработки
За счёт современных технологий упрощаем разработку и оптимизацию игр.
Наш подход
Клонируем и упрощаем технологии вроде Lumen и Nanites, в первую очередь, для упрощения жизни разработчикам игр, так как они удобнее в использовании, чем предшествующие. При этом, делаем их вычислительно эффективными, не требующими чрезмерных ресурсов. Затем, строим движок и средства разработки вокруг них. В разработке мы отталкиваемся прежде всего от возможностей мобильных устройств, предполагая, что там основная аудитория.
Высокопроизводительная 2D-графика
Основной принцип - перенос максимально возможной части работы на GPU. Частицы, анимации, трансформации, текстурные атласы, поиск коллизий - всё на GPU с минимальным участием CPU.
Современный Vulkan
Не поддерживаем устаревшие устройства, за счёт чего поддерживаем наиболее современные техники работы с графикой.
Эффективная многопоточность
Используем максимум из того, что может дать система, все доступные потоки системы, все доступные очереди Vulkan.
Расширяемый вариант RenderGraph
Эффективное построение асинхронного графического конвейера, автоматическое вычисление эффективного пути рендеринга с параллельным (за счёт многопоточности) выполнением задач. Работает не через линеаризацию графа (как в Unity, Unreal 4, других движках, вынужденных поддерживать однопоточные API), а data-driven: путь рндеринга зависит от того, какие данные предоставлены раньше, чтобы как можно раньше начать работу.
Эффективный стриминг текстур и данных
За счёт использования многопоточности на уровне очередей и семейств очередей Vulkan. Даёт возможность для создания бесшовных больших миров с динамической загрузкой-выгрузкой текстур на ходу.
Вычисления на GPU
Возможность использовать вычислительные блоки Vulkan как в RenderGraph, так и для отдельных операций (физика, стратегическая и ИИ-логика)
Аналог Lumen
Использование SDF-эффектов, в том числе, в качестве основного механизма освещения.
Эффективный тесселятор для векторной графики
Позволяет напрямую использовать векторные объекты в играх, без предварительной растеризации или трансформации в меши.
Максимальный охват платформ
Все технологии поддерживаются на настольных и мобильных платформах
В разработке:
Совмещённая система анимаций и частиц на GPU (упрощённый аналог Nanites).
Автоматическое упрощение векторных элементов по LOD.
Создание Acceleration structure (словаря рёбер) на основе работы векторного тесселятора для операций рейкастинга и поиска коллизий на GPU.
Данные и сетевой код
Поддержка работы с базами данных
Встроенный в движок эффективный интерфейс к локальным БД на базе sqlite (примерно как в движке Larian). Подходит для работы с данными больших миров, для сохранения игр, и подобного. Для разработчиков этот же интерфейс работает с PostgreSQL, для совместной разработки уровней с использованием удалённой БД.
Скриптовые модули на WebAssembly
Любой язык, компилируемый в Wasm (включая подмножество Javascript) может быть языком скриптов. Универсальный ABI (бинарный интерфейс к функциям движка) реализуется через WIT.
Интерпретатор WASM с поддержкой максимально доступного числа оптимизаций (tail-call, SIMD, расширенное управление памятью)
Модули wasm могут быть дополнительно скомпилированы под целевую платформу, так, что их скорость исполнения не будет отличаться от нативной (скрипты с минимумом накладных расходов, только на песочницу).
(в разработке) поддержка современных интерфейсов WASI для Wasm, включая wasi-threads (позволяет создавать потоки из скриптов, как в Godot).
Работа с сервером
Механизм самообновления и синхронизации данных с сервером.
(в разработке) Сетевой код на базе протокола QUIC (и HTTP/3 как надстройки). Скорость UDP + гарантия доставки пакетов, решает проблему плохого качества связи, характерную для мобильных устройств.
Один код
Единая кодовая база для клиента и сервера. Реализация всего проекта на одном фреймворке.
Команда проекта
Катунцев Роман
Ведущий разработчик
Рыбников Виталий
Разработчик
Немчинов Михаил
Тестировщик
Муканин Дмитрий
Менеджер, технический писатель
При поддержке
Фонда содействия развитию малых форм предприятий в научно-технической сфере
Учебное пособие по финансовой грамотности и учебно-методические материалы к нему. В проекте реализована wiki-подобная редакторская система, система сборки учебника в нескольких форматах и уникальное мобильное приложение, контент которого доступен даже в условиях полного отсутствия интернета.
С технической стороны, используются возможности SDK по интеграции со сторонними системами (например, для трансляции формул в формате LaTeX используется серверный пакет, транслирующий формулу в SVG), дельта-запросы к БД для обновления контента приложения, графический движок для отрисовки страниц приложения (собственный мини-браузер). Для подготовки приложения используются дополнительные системы, позволяющие встроить актуальную БД учебника напрямую в пакет приложения, чтобы приложение содержало контент даже если запущено без интернета.
Перейти
Искусственный интеллект, экспертная система, оценивающая вероятность болезней и состояний на основании опроса пользователя. Экспертная система работает в качестве ассистента для живого консультанта, значительно повышая качество выводов специалиста. Система указывает специалисту, на какие ответы и сочетания факторов стоит обратить внимание для принятия решения. С помощью SDK реализована как сама экспертная система, так и среда для работы консультантов и общения с клиентами.
Перейти
Приложения и сайты для журналов научной направленности. C помощью SDK реализованы как сами приложения, так и система загрузки, хранения, обработки и доставки информации. Гибкость SDK позволяет конвертировать данные из различных форматов, извлекать метаданные и подготавливать данные для экспорта в наукометрические базы.
Перейти
Профильный сайт для подготовки и контроля недвижимости на торгах. Для экспертов сайта на базе SDK создана аналитическая система, находящая, классифицирующая и оценивающая объекты из общегосударственных баз данных ЕФРСБ и torgi.gov.ru. Кроме этих данных, система собирает и комбинирует массу дополнительной информации о кадастровых записях и проведении торгов непосредственно на торговой площадке.
Система позволяет обрабатывать и архивировать всю совокупность данных средствами одного локального сервера, расположенного в офисе у заказчика, тогда как альтернативные предложения предполагали в десятки раз большие затраты на техническую инфраструктуру. Для оценки эффективности, полная пересборка архива и актуальных внутренних баз с нуля занимает не более 32 часов (около 750Гб сжатых архивов, около 4Тб распакованных). Аналогичные задачи, выполняемые другими средствами на том же аппаратном обеспечении, занимают более 240 часов.