Игровой движок для РПГ · какой выбрать

Сравнение игровых движков для РПГ: RPG Maker, Godot, Unity, Unreal и браузерные конструкторы

Создайте свой игровой движок для РПГ

RPG Maker MV/MZ, Godot, Unity, Unreal, Phaser или браузерный конструктор? Сравните стоимость, программирование, 2D/3D и варианты экспорта — плюс вариант без движка, который можно запустить прямо сейчас.

✦Игра
Создайте игровой движок для РПГ

Выбор игрового движка для РПГ — это в основном решение о трёх вещах: как создаётся ваша графика, кому придётся писать код и где должна работать готовая игра. Варианты чётко разделяются. RPG Maker MV и MZ — это 2D-редакторы, в которых системы РПГ уже собраны. Godot, Unity, Unreal и Phaser — универсальные движки, которые вы программируете. Ren'Py — движок, ориентированный прежде всего на диалоги, он относится к игре как к сценарию. Браузерные конструкторы полностью обходят установку и этап сборки.

Эта страница сравнивает эти пути по тому, что действительно решает судьбу проекта: стоимость и лицензирование, придётся ли вам трогать код, 2D или 3D, что можно экспортировать и сколько времени пройдёт до играбельного результата. Там, где число было бы догадкой, вместо него описан механизм. Если вы хотите увидеть работающий мир до того, как свяжете себя с движком, начните с раздела о варианте без движка ближе к концу.

Краткий ответ

Если игра — это 2D-РПГ с видом сверху, с характеристиками, предметами и окнами диалогов, быстрее всего до играбельной сцены доведёт RPG Maker MV или MZ, потому что база данных и система событий уже моделируют эти системы. Если вы хотите контролировать рендерер и правила, не платя ни за то, ни за другое, Godot — самый дешёвый путь, который не привязывает вас к формату. Unity и Unreal оправданы, когда задействованы команда, выпуск на консоли или промежуточное ПО. Phaser — ответ, когда РПГ является веб-страницей, а вы уже пишете на JavaScript. Ren'Py — ответ, когда игра состоит в основном из текста и ветвящихся выборов.

Таблица ниже охватывает семь путей: RPG Maker MV/MZ, Godot, Unity, Unreal, Phaser, Ren'Py и браузерный конструктор, где результат — это страница, а не файл сборки. Столбцы — это стоимость и лицензирование, необходимость программирования, 2D или 3D, целевая платформа и время до первого играбельного результата. Читайте последний столбец как время, за которое на экране появится управляемый персонаж со столкновениями и одним интерактивным объектом, а не как время до завершения игры. Большинство проектов РПГ проваливаются на системах, а не на отрисовке, поэтому воспринимайте таблицу как фильтр, а решение принимайте в последующих разделах.

Таблица сравнения

Две ячейки в этой таблице заслуживают предупреждения. Цель сборки Web в Unity работает, но сборка через WebAssembly даже для скромной 2D-РПГ до сжатия ассетов обычно занимает десятки мегабайт, а многопоточные сборки требуют заголовков изоляции между источниками (COOP и COEP), которые многие статические хостинги не отправляют по умолчанию. Симптом — пустой холст и сообщение в консоли про SharedArrayBuffer, а не понятная ошибка. Многопоточный веб-экспорт Godot предъявляет то же требование к заголовкам, и это самая частая причина, по которой проект на Godot работает локально и не запускается на бесплатном хостинге.

Экспорт Unreal в HTML5 убрали в эпоху версий с 4.23 по 4.24, и поддерживаемой замены нет, поэтому РПГ, сделанная на Unreal, распространяется как бинарник или через магазин. Если модель распространения — это ссылка, то Unreal выпадает из короткого списка ещё до того, как вы напишете хоть строку кода.

Развёртывание RPG Maker в браузере выгружает всё дерево ассетов сразу. Это нормально для небольшого проекта и мучительно для проекта с длинным саундтреком, потому что аудио начинает доминировать в объёме загрузки задолго до карт. Вашей первой проблемой производительности считайте время первой загрузки, а не частоту кадров.

МаршрутСтоимостьНужно ли программировать2D / 3DЦелевая платформаВремя до первого играбельного результата
RPG Maker MV / MZКоммерческая разовая лицензия на одно рабочее место; MV и MZ — отдельные продуктыНе нужно для системы событий; плагины на JavaScript для всего, что не выражается базой данныхТолько 2D; карты на тайлах, бои с видом сверху или сбокуСборки для Windows и macOS через NW.js; развёртывание в браузере и на мобильных зависит от версии и инструментов сообществаМинуты: встроенный пример проекта запускается сразу
GodotБесплатно, лицензия MIT, без роялти и платы за рабочее местоGDScript или C#. В Godot 4 убрали встроенный VisualScript, поэтому официального графа узлов для геймплея нетИ то и другое, с отдельными 2D- и 3D-рендерерами и типами узловWindows, macOS, Linux, Android, iOS и Web (WebAssembly)Час-два на персонажа, который двигается и сталкивается, если вы уже знаете движок
UnityБесплатный уровень Personal ниже опубликованных порогов выручки и финансирования Unity; платный уровень Pro выше нихC#. Визуальное программирование есть как официальный пакет и сторонние ассеты, но не как основной путьИ то и другое; в 2D используются атласы спрайтов и узлы tilemap, в 3D — URP или HDRPДесктоп, мобильные, консоли с одобрением платформы и цель сборки WebНесколько часов из 2D-шаблона; день и больше, если редактор для вас новый
UnrealБесплатно; роялти 5% с пожизненной выручки продукта свыше 1 млн долларов на продуктBlueprints покрывают большую часть игровой логики; C++ для критичной к производительности или движковой работыПрежде всего 3D. Paper2D существует для спрайтов, но окружающие инструменты рассчитаны на 3DДесктоп, консоли, мобильные. Поддерживаемого экспорта в браузер или HTML5 нетМеньше часа на шаблон Third Person; РПГ собирается, а не берётся из шаблона
PhaserБесплатно, лицензия MITJavaScript или TypeScript; слоя геймплея, создаваемого в редакторе, нет2D; рендереры WebGL и Canvas, для 3D нужна отдельная библиотекаСначала браузер; мобильные и десктопные обёртки через Capacitor, Cordova или ElectronЧас, если вы уже пишете на JavaScript; каждую систему вы строите сами
Ren'PyБесплатно и с открытым исходным кодом; коммерческие выпуски разрешеныСкрипт Ren'Py для диалогов и хода игры; Python для всего нестандартного2D; статичные фоны, спрайты, слоистые изображенияWindows, macOS, Linux, Android, iOS и веб-сборка через лаунчерМинуты: проект по умолчанию уже показывает сцену с диалогом и выборами
Браузерный конструктор (Neta Studio)Ничего не нужно устанавливать; инструмент работает во вкладке браузераНе требуется; вы описываете мир и его правила текстом3D, отрисовка с помощью Three.js во вкладке; 2D-вид — это выбор камеры и ассетовСама веб-страница; работает везде, где работает WebGL 2Одно описание — и вы ходите по миру
Вариант без движка, работает прямо сейчас: мир, по которому можно ходить, во вкладке браузера без единой установки.

Движки для РПГ: 2D или 3D

Рендерер — это дешёвая часть. Godot и Unity отрисовывают и 2D, и 3D в одной и той же установке, а переключение камеры с перспективы на ортографию — это одно свойство. Что меняется между 2D- и 3D-РПГ — это всё, что стоит перед рендерером: как создаются ассеты, сколько людей для этого нужно и сколько времени занимает, пока изменение станет видимым.

Путь 2D означает спрайт-листы и тайлсеты. Персонаж, который ходит в четырёх направлениях, обычно требует три кадра на направление, всего двенадцать кадров, нарисованных в размере 16x16, 32x32 или 48x48 пикселей. Настройки импорта значат больше, чем сама графика: поставьте режим фильтрации Point (без фильтрации) и сжатие None для пиксель-арта, иначе билинейная фильтрация по умолчанию размоет каждый тайл, и вы проведёте вечер, ругая художника. Итерации быстрые, потому что новый тайл просто рисуется и кладётся в папку. Карта 100x100 при 32 пикселях на тайл — это изображение 3200x3200 пикселей, что даёт реальный расход памяти, но вполне терпимый.

Путь 3D означает меши, риги, веса кожи и анимационные клипы. Одному персонажу нужны меш, скелет и как минимум клипы покоя, ходьбы и атаки. Если вы не берёте библиотеку по лицензии, это время на моделирование ещё до того, как появится хоть какой-то геймплей. Итерации медленнее в обе стороны: освещение, меши уровней детализации и формы столкновений приходится перепроверять всякий раз, когда меняется меш. Наградой становится камера, способная на то, чего не может сетка тайлов, и конвейер, принимающий отсканированные или собранные из готовых модулей окружения.

Практический вопрос не в том, что выглядит лучше. Он в том, сколько изменений ассетов вы ожидаете после первого играбельного часа. Проект 2D дёшево переваривает десятки изменений. Проект 3D переваривает десяток, а потом каждое начинает стоить вам недели.

Как каждый путь меняет конвейер графики в вашем игровом движке для РПГ

RPG Maker привязывает вас к 2D, и это преимущество: редактор карт, автотайлы и наборы персонажей рассчитаны на сетку тайлов, поэтому тайлсет — единственный тип ассетов, который вы обязаны создать. Unreal подталкивает вас к 3D — Paper2D умеет отрисовывать спрайты, но освещение, физика и анимационные инструменты построены вокруг мешей, так что 2D-игра там идёт против движка.

Godot и Unity — те две, что позволяют решить позже, но только за плату. Переключение прототипа со спрайтов на меши означает пересборку столкновений, повторную настройку дистанции камеры и пересоздание каждой анимации, потому что число кадров в спрайт-листе и длина клипа в риге не имеют между собой ничего общего. Выберите измерение до того, как построите первую боевую встречу, а не после.

Нужно ли программировать?

Нет — до того момента, когда вы захотите то, что инструмент ещё не моделирует. Система событий RPG Maker — это список команд с условиями, переключателями и переменными, и вы можете построить цепочку заданий, магазин и пошаговый бой, не набрав ни строки кода. Стена возникает на нестандартных макетах меню и боевых формулах, которые база данных не может выразить; в этот момент вы редактируете файлы плагинов на JavaScript и регистрируете их в списке плагинов, а это работа автора плагинов, а не новичка.

Blueprints в Unreal — это самое близкое к универсальному движку с полноценным слоем визуального программирования. Вы можете построить всю логику РПГ в виде графов узлов, и разница в производительности по сравнению с C++ становится заметной только в коде, который выполняется каждый кадр для каждого актёра, например в циклах для больших толп или снарядов. Визуальное программирование в Unity — это пакет плюс сторонние ассеты, и большинство руководств и ответов на форумах подразумевают C#. В Godot встроенного графа узлов для геймплея нет вообще; путь — это GDScript, и по синтаксису он намеренно близок к Python. Phaser — это код с первой строки. Формат скриптов Ren'Py читается скорее как киносценарий, чем как программа, а для особых случаев доступен Python.

Есть четвёртый вариант, который не вписывается в деление «граф узлов против языка»: опишите игру и позвольте инструменту построить её. 3D-конструктор игр Neta Studio принимает письменное описание и создаёт мир на Three.js, который работает во вкладке. Вы вносите изменения, описывая их, а не открывая файл сцены и разыскивая нужную панель инспектора. Это плохая замена графу узлов, когда вам нужен покадрово точный контроль над формулой урона, и очень хорошая замена двум неделям, которые большинство проектов теряют на настройку.

Какой игровой движок для РПГ обходится без редактора сцен

Ren'Py — самый наглядный случай. Проект — это папка с обычными текстовыми файлами скриптов; вы можете писать и запускать его из любого текстового редактора вместе с лаунчером, и единственная обязательная задача лаунчера — запустить игру. Phaser — второй случай: проект — это папка с JavaScript и файлом HTML, а редактором служит браузер. Ни один из этих путей не даёт визуального редактора карт, но ни один и не требует устанавливать формат проекта, который вы не можете прочитать в текстовом редакторе.

RPG Maker не подходит, потому что база данных, карты и страницы событий хранятся в формате проекта редактора. Браузерный конструктор идёт в обратную сторону: описание и есть проект, а редактор — это текстовое поле, на которое вы уже смотрите. Если причина избегать редактора в том, что вы не хотите его изучать, это различие важнее списка возможностей.

  • Список событийRPG Maker MV/MZ. Команды, условия и переключатели. Покрывает задания, магазины и стандартные бои без кода; нестандартный интерфейс и формулы требуют плагинов на JavaScript.
  • Граф узловBlueprints в Unreal. Способен вместить всю логику РПГ. Цена по сравнению с C++ проявляется в покадровых циклах для каждого актёра, а не в обычном игровом коде.
  • Язык программированияGDScript, C# и JavaScript в Godot, Unity и Phaser; скрипт Ren'Py плюс Python. Полный контроль, и вся работа по настройке — ваша.
  • Описание3D-конструктор игр Neta Studio. Вы пишете мир, камеру и правила; конструктор создаёт сцену. Быстрее всего приводит к чему-то, по чему можно ходить, и меньше всего подходит для точного числового контроля боя.

Экспорт и публикация

То, что вы экспортируете, определяет, что игроку придётся сделать до начала игры. RPG Maker разворачивает сборки для Windows и macOS через NW.js, а развёртывание в браузере и на мобильных зависит от версии и инструментов сообщества. Браузерное развёртывание — это файл HTML, среда выполнения JavaScript и папки изображений и звуков проекта — их можно разместить на любом статическом сервере, но ассеты скачиваются до появления стартового экрана.

Godot экспортирует через пресеты, хранящиеся в export_presets.cfg. Веб-экспорт создаёт оболочку HTML, бинарник .wasm и файл .pck с данными вашего проекта. Многопоточному веб-экспорту Godot 4 нужен SharedArrayBuffer, а для него хостинг должен отправлять заголовки COOP и COEP. Без них вы либо выпускаете однопоточную сборку, либо страница вообще не запускается. Сборка Web в Unity идёт через IL2CPP и создаёт WebAssembly плюс пакет данных, с тем же требованием к заголовкам для многопоточности и тем же последствием, если их игнорировать.

Две практические веб-проблемы Unity — это начальная загрузка и память. Сцена, которая загружает всё при запуске, замирает на первом кадре; решение — адресуемые ассеты и разбиение сцен, а не уменьшение сборки. Unreal экспортирует нативные бинарники для десктопа и консолей и не имеет поддерживаемой цели для браузера. Phaser не экспортирует ничего, потому что файлы уже являются веб-файлами — развёртывание сводится к копированию папки. Ren'Py создаёт сборки под каждую платформу из своих настроек сборки, включая веб-сборку, и упаковывает ассеты вместе со средой выполнения.

Если вы публикуете на статическом хостинге, проверяйте заголовки раньше, чем тестируете игру. Локальный сервер, который выставляет COOP и COEP, скроет проблему хостинга, которая проявится только в проде.

  • Загрузка статической папкиБраузерное развёртывание RPG Maker, Phaser и веб-сборка Ren'Py. Скопируйте папку вывода на любой статический хостинг, и всё заработает.
  • Требует заголовковВеб-экспорт Godot и сборка Web в Unity, собранные с многопоточностью. Без COOP и COEP страница не запустится, а не будет работать медленно.
  • Бинарное распространениеUnreal и десктопные сборки из Godot, Unity, RPG Maker и Ren'Py. Игрок скачивает исполняемый файл и устанавливает его.
  • Страница вместо файла3D-конструктор игр Neta Studio. Мир работает во вкладке, а результат — это URL, который можно отдать кому угодно.
Та же идея в виде готовой игры: изометрический 3D-уровень, который распространяется по ссылке.

Вариант без движка

Есть путь, к которому ничего из перечисленного не относится, потому что нет движка для установки, нет папки проекта и нет пресета экспорта для настройки. 3D-конструктор игр Neta Studio принимает письменное описание и создаёт мир, отрисовываемый с помощью Three.js во вкладке браузера. Результат — страница. Вы отправляете кому-то ссылку, и мир открывается; ему не нужно скачивать архив, запускать установщик или решать, доверять ли исполняемому файлу.

Это меняет форму работы. Нет этапа сборки, который нужно перезапускать после правки, и нет экспорта под конкретную платформу, который нужно поддерживать. Вы описываете рельеф, ракурс камеры, освещение, существующих персонажей и то, что может делать игрок; конструктор собирает граф сцены, а Three.js его отрисовывает. Agent Sprite Forge закрывает случай, когда персонаж или предмет нужны раньше, чем появится художник, а Mini World и «Остров Циклопа» — это играбельные миры, которые можно открыть и увидеть, как уже работают камера, земля и движение.

Это не замена Godot или Unity для крупной РПГ. Системы с точными числовыми требованиями — формула урона, формат сохранений, который нужно сохранять совместимым между версиями, конечный автомат боя с десятком взаимодействующих статусов — по-прежнему требуют настоящего слоя программирования. Что этот подход убирает, так это фазу перед этим, когда мир ещё не существует и вы не можете понять, читается ли камера и правилен ли масштаб на ощупь.

1

01

Опишите мир простым текстом: рельеф, освещение, ракурс камеры, какие персонажи существуют и что может делать игрок.

2

02

Откройте созданный мир во вкладке и пройдитесь по нему. Проверьте масштаб земли относительно роста персонажа, убедитесь, что камера не задевает геометрию, и что первый интерактивный объект виден из точки появления.

3

03

Меняйте по одной вещи за подход и генерируйте заново. «Перенеси точку появления на гребень» — допустимая правка, как и «сделай свет факела теплее и вдвое уменьши его радиус».

4

04

Следите за бюджетом кадров. Несколько сотен инстансированных объектов — это комфортно; сотни отдельных мешей, у каждого свой материал, просадят частоту кадров на встроенном GPU.

5

05

Поделитесь страницей. Мир загружается во вкладке без чего-либо, что нужно устанавливать, и без артефакта сборки, который нужно синхронизировать.

Как выбрать за десять минут

Пройдите по этим пунктам по порядку и остановитесь на первой строке, которая всё решит. Большинство проектов определяется первыми двумя.

1

01

Посчитайте людей. Один человек без художников — это RPG Maker MV/MZ или браузерный конструктор. Двое–пятеро с художником — это Godot или Unity. Команда с техническим художником и амбициями насчёт консолей — это Unity или Unreal.

2

02

Посмотрите на графику, которая у вас уже есть. Тайлсеты и спрайт-листы подталкивают к 2D. Персонажи с ригом или набор окружения — к 3D. Если нет ничего, выбирайте самый быстрый путь к чему-то видимому, а не самый впечатляющий на вид.

3

03

Решите, нужен ли вам десктопный бинарник. Выпуск на консоли, требование магазина или офлайн-игра означают Godot, Unity, Unreal, RPG Maker или Ren'Py. Если ссылка приемлема, браузерный путь полностью убирает этап сборки и распространения.

4

04

Задайте цель для первого играбельного результата. Меньше часа: пример проекта RPG Maker, проект Ren'Py по умолчанию или описанный мир в браузерном конструкторе. Около дня: Godot или Unity по руководствам. Неделя и больше: оригинальная 3D-РПГ в Unreal с вашими собственными ассетами.

5

05

Назовите системы, которые вы не сможете построить. Сохранения, боевые формулы и инвентарь — вот где проекты РПГ застревают. RPG Maker даёт все три. Godot и Unity дают примитивы и оставляют проектирование вам. Браузерный конструктор покрывает обычные случаи, но не экзотические.

6

06

Запишите цель экспорта до первой строки кода. Проект, который должен работать на консоли и в браузере, — это два проекта, а решение, принятое позже, означает переписывание слоёв ввода и сохранений.

7

07

Прототипируйте в самом дешёвом инструменте, потом переносите. Собрать уровень в браузерном конструкторе и пересоздать его в Godot дешевле, чем перебирать освещение внутри полноценного движка.

Войдите в мир, которому это принадлежит

Сравнение движков остаётся таблицей, пока одна строка не заработает. Строка браузера — та, которую можно проверить, ничего не устанавливая: откройте мир, описанный одним предложением и экспортированный как страница. Вот как на самом деле ощущается последняя строка таблицы.

Назад к 3D-конструктору игр

Все 31 готовых 3D-мира, игры и сцены собраны на одной странице — и в каждый можно играть.

Платформа: Neta StudioСтраница: Сравнение игровых движков для РПГ: RPG Maker, Godot, Unity, Unreal и браузерные конструкторыЧитайте далее: /explore/tool/rpg-creator · /explore/tool/ai-rpg-generator · /explore/guide/how-to-make-an-rpg
×