Что это и зачем
Существующие визуальные редакторы игр делятся на два лагеря:
Первый — инструменты, привязанные к одному жанру. Они великолепно делают своё, но границы закрыты. Хочешь платформер — либо изворачивайся, либо забудь. Жанр определяет всё: какие объекты можно создать, какие свойства у них есть, какая логика доступна.
Второй — универсальные движки. Они мощные и гибкие, но зачастую требуют навыков программирования или долгого изучения сложного интерфейса. Расстояние от «я хочу сделать игру» до «у меня что-то работает на экране» измеряется месяцами.
Я стараюсь расположить Egmatic между двумя этими крайностями. Визуальный редактор, не привязанный к жанру и не требующий знания программирования, — инструмент, в котором от задумки до работающего прототипа проходят недели, а не месяцы.
Как он устроен
Программа разрабатывается на современном фундаменте — .NET 9, кроссплатформенный интерфейс на Avalonia, игровой движок на MonoGame.
Структурно в Egmatic нет заранее заданных типов объектов. Нет «героя», «врага», «предмета» — есть пустой объект, который превращается во что угодно через добавление моделей поведения.
Хотите персонажа — добавьте модели поведения «изображение», «физика», «прыжки». Хотите собираемую монету — модели «изображение» и «контур соприкосновения». Единый механизм, но разное поведение.
Откуда берутся модели? Из расширений — дополнений, которые приносят свои типы объектов, модели поведения, условия и действия для визуального оформления.
Сам редактор не понимает смысл свойств — что такое «масса» или «здоровье» объекта. Он лишь отображает их по схеме из расширения: число — числовое поле, цвет — палитра, ссылка на объект — выпадающий список. Смысл свойств раскрывается только при запуске игры.
К примеру, механики ролевых игр — не часть редактора, а отдельное расширение. Вы можете установить только то, что нужно для вашего жанра и комбинировать их так, как захотите.
Игровая логика задаётся через листы событий — визуальные сценарии с простыми правилами «если — то — иначе». Без программирования, но с вложенностью, циклами и переборами:
Подробнее об их устройстве — в следующих постах.
Что уже есть
Уже работает в базовой конфигурации:
- Система объектов — создание объектов, присоединение моделей поведения, настройка свойств
- Система расширений — «паспорт» расширения, каталог типов, регистрация моделей поведения с их схемами свойств
- Редактор сцен — слои, размещение объектов, тайловая графика
- Листы событий — правила с условиями и действиями, вложенность, логика «и/или/не», виды правил (повтор, пока, для каждого, иначе)
- Редактор анимаций — определения анимаций, кадры, воспроизведение
- Редактор расширений — создание и настройка расширений, моделей поведения, схем свойств
- Темная/светлая тема окна, локализация на русский и английский языки, открытие и сохранение проекта
Редактор и движок — две части одного продукта. Редактор создаёт данные, движок их выполняет. Между ними — общий фундамент: вычисление выражений, обработка ошибок, контракты данных. Благодаря этому при пробном запуске сообщения и ошибки движка выводятся прямо в редактор с возможностью дальнейшего анализа.
Куда движемся
Ближайшие шаги — завершить базовый функционал:
- Управление камерой
- Переменные и звуковое оформление
- Рисование тайлов
- Физика и столкновения
и выпустить alpha-сборку.
Стратегические планы:
- Готовые к публикации шаблоны — не демки, а полноценные заготовки с уже подключёнными профилями сборки
- Пошаговый экспорт — один поток от проекта до готовой игры для нужной платформы
- Контрольный список перед публикацией — чтобы ни один шаг не был пропущен
- Аналитика и обратная связь — после релиза разработчик видит, что происходит с его игрой
- Интеграция в процесс создания игры ИИ агентов (анализ логов, помощь в создании сцен и объектов, организации проекта, написании сценариев)
- Экосистема расширений и ресурсов
gamedev
разработка игр
инди
devlog
игровой движок
редактор игр
без кода
визуальное программирование
2d