Я тоже задалась вопросом, насколько RPG Maker VX Ace (именно эта версия) универсален или, наоборот, ограничен. Я, правда, происхожу не из Сишников, а из веб-разработчиков. Мне очень хочется научиться делать традиционные игры (платформеры, стратегии и так далее) силами себя. Во-первых, это очень интересно и полезно профессионально, во-вторых, выбора особо нет, если я хочу делать какие-либо нормальные игры... До того, как я задумалась о Мейкере как об универсальном движке, я пыталась сделать что-то простое на JavaScript/HTML5. Оказалось, что нужно решить тьму мелких задач, на которые в хорошей игре просто не обращаешь внимания. Например, простое перемещение по клеткам: движение должно начинаться сразу после нажатия стрелки или спустя доли секунды, чтобы убедиться, что игрок нажал кнопку, а не задел? Что если он отпустит кнопку до того, как персонаж дошёл до узла сетки - должен ли персонаж тут же остановиться? В котором узле он будет считаться различными эффектами? Что если он оттуда пойдёт в другую сторону - нужно ли выравнивать его по сетке? Когда персонаж останавливается, должен ли он сразу замирать или нужно проиграть короткую анимацию? Что если в середине этой анимации игрок снова нажмёт стрелку? И это ещё до каких-либо вопросов о коллизиях и задолго до программирования игровой логики.
RPG Maker решает львиную долю этих проблем. Здесь уже есть понятия о кэше, спрайтах, тайлсетах, движении персонажей по сетке, анимации во время этого движения, коллизиях, взаимодействии с объектами и очень, очень много нюансов, о которых не задумываешься (не подозреваешь, что разработчикам приходится решать и оттачивать их!), пока не закодишь и не увидишь, что твой персонаж двигается как-то не так, как в любимой игре, и нет той лёгкости.
RPG Maker представляет собой союз трёх составляющих:
- Редактор, включающий редактирование карты, объектов на карте и того, что они делают, импортирование ресурсов (картинки, звуки, тайлсеты...), генератор портретов, создание игровых персонажей и редактирование их ролевых параметров, редактирование монстров, их действий и анимаций их действий (также можно применять на карте к персонажам)... Эта часть очень удобная в рамках стандартной JRPG, но довольно ограничивающая, если хочется выйти за них (даже к нестандартным JRPG). Редактор сохраняет всё получившееся в зашифрованный формат и делает запускаемый независимо (без необходимости ставить редактор) экзешник.
- Движок на Ruby, запускающий игру. Ruby - это не просто язык для примочек в Мейкере. Всё в игре, от загрузки данных и создания каждого экрана и картинки до игровой логики выполняется на Ruby. И весь этот код открыт и изменяется в редакторе. Иначе говоря, если угодно, можно переписать всю игру до основания и использовать столько основ из Мейкера, сколько захочешь. Например, только тайловую карту. Насколько я знаю, многие забивают на стандартную боевую систему и используют совершенно другие, написанные с нуля. Я слышала и о платформерах, и о пазлах, и о данженах от первого лица... Важно также то, что это полноценная, ничуть не урезанная. Всё то, что не вошло в документацию Мейкера, но верно для Руби 1.9.2, работает, даже подключение виндовых библиотек.
- Скрытый фреймворк, который собственно запускает движок на Руби в соответствующем контексте и обеспечивает некоторые специфические классы и функции. Их реализация скрыта, так что, может быть, они и не на Руби, но я не замечала ничего, что бы на это указывало.
Я, к сожалению, не знаю, есть ли выгода в использовании Мейкера по сравнению с другими движками и фреймворками. Но определённо это было куда более дружелюбно, чем работа в Юнити, по крайней мере для меня, которая не может похвастаться опытом профессионального программиста. Также рубишный движок Мейкера показался мне написанным очень грамотно, так что модифицировать его было просто. Очень редко когда увидишь такой грамотный код в проекте.