Где-то примерно в середине лета мне предложили изучить такую интересную штуку как «Godot Engine», тем более, что она доступна бесплатно и есть даже в Steam.

В отличии от того же RPG Maker, Godot это уже серьёзная система или как говорят «движок». Он разрабатывается сообществом Godot Engine Community и использовался внутри некоторых компаний Латинской Америки.

Среда разработчика работает на Windows, Linux, OS X, BSD и Haiku и может экспортировать игровые проекты на ПК, консоли, мобильные и веб платформы.

Godot можно смело назвать конструктором конструкторов. Это своего рода коробка с кубиками Lego, с той лишь разницей, что в Lego у вас много разных кубиков, но у всех жестко заданы свойства (форма, размер, количество соединительных элементов, цвет итд). В Godot вы вольны создавать свои собственные «кубики» с какими угодно свойствами и параметрами. И самое главное, что из нескольких «кубиков» вы можете создавать новые, задавать им новые свойства, объединять или удалять, в общем всё как в настоящем программировании.

В Godot отличный скриптовый язык (GDScript) с большими возможностями, который очень похож по синтаксису на Python. Конечно, если вы раньше никогда не занимались программированием, вам будет немного труднее разобраться, возможно стоит начать с чего-то попроще, например, с RPG Maker. Но если вы владеете хотя бы базовыми знаниями, то вы без труда (в большинстве случаев) быстро получите желаемый результат.

В системе достаточно много готовых «кубиков» таких как спрайт, полигональный объект, камера итд. Но кроме этого есть так называемые модули «физических свойств». Например, можно «наделить» свой «кубик» физическими свойствами, и он будет автоматически падать вниз, до тех пор, пока не встретится с другим объектом, у которого указано, что он является поверхностью. Таким образом отпадает необходимость в проверке столкновений, система делает это автоматически.

Впрочем, если вы привыкли всё контролировать самостоятельно, в Godot отличная система сообщений (event) и вы можете обрабатывать ситуацию с помощью скриптов.

Но вернёмся к середине лета. Особых идей у меня не было, но лапы уже чесались и изучать систему с чего-то начинать надо. В этот момент на «нейтральной полосе» проходил конкурс и одной из номинантов была игра «The One» от Лис.

Игра представляла из себя квест-бродилку, с изучением комнат, предметов, поиском ответов и небольшими головоломками. События происходят в некой сумрачной «лаборатории», из-за чего многие приписали игрушке «хоррор», хотя сама автор так и не считает.

Мне понравилась сама идея и как мне показалось простота в реализации. Тем более что опыта работы с 3D у меня нет, да и для ознакомления с системой 2D вполне достаточно.

Игру захотелось сделать в минималистичном стиле pixelart. В результате чего появилась идея «The One: Prototype».

К сожалению, в сети не так много русскоязычной информации на тему Godot, поэтому пришлось штудировать уроки на англоязычном youtube. Впрочем, если вы неплохо понимаете английский и тем более программируете, это быстро поможет разобраться в предмете вопроса.

Первая «бродилка» получилась достаточно быстро. Единственным неприятным моментом, стал встроенный редактор тайлов и собственно сам редактор карты. Плюс, по умолчанию, godot сглаживает загружаемую графику и весь мой pixelart, как говорится, «поплыл». К счастью этот режим оказался отключаемым:

Как альтернативу встроенному редактору можно воспользоваться редактором «Tiled», тем более что в godot есть плагины, которые позволяют импортировать и тайлы и собственно сами карты.

Вторым пунктом в реализации задуманного стал вывод текстовых сообщений. С одной стороны, мне не хотелось бы повторения всего функционала RPG Maker, а с другой, какая игра не обходится без вывода текстовых сообщений? Так проект обзавёлся своим модулем.

Чуть позже система была немного доработана, появилась возможность отображать аватарку как справа, так и слева. У сообщений появился звук имитирующий речь.

После реализации сообщений, встал вопрос о том, что надо как реализовать взаимодействие с окружающими нас предметами. Мне захотелось немного расширить банальную систему «тыкнись — получи сообщение» как в RPG Maker.

То, что получилось в итоге уже более менее походило на систему в квестовых играх. По задумке, взаимодействовать с любым предметом можно четырьмя способами: говорить(спросить), ударить(пнуть), осмотреть и сделать(взаимодействие).

Далее был добавлен ещё один компонент «eventbox», по аналогии с «event» в RPG Maker. У него так же появилось несколько «шагов», по которым можно двигаться, и проект стал вырисовываться уже в более-менее что-то интересное:

Следующим шагом стал компонент выбора варианта ответов. С одной стороны, мне хотелось чего-то оригинального, а с другой мне нравилась система в играх BioWare.

В результате чего была честно слямзена идея из Mass Effect и адаптирована под pixelart стиль.

Причём, что интересно, в модуле «select» можно задать количество отображаемых пунктов и оно будет выглядеть идентично натуральной игре Mass Effect:

По задумке Лис, автора оригинальной «The One», приключения героини начинаются с загадки, а точнее с поиска шифра кодового замка. В шкафу спрятана одежда и его надо как-то открыть.

Для реализации задуманного был создан ещё один компонент — кодовый замок.

Цифры можно вводить, как управляя курсором в виде пальца, так и непосредственно нажимая кнопки на клавиатуре (в цифровой части).

На данном этапе разработки стала «проблемой» анимация, а точнее корявая её реализация.

Как видно из видеороликов, в качестве гг использовался «чибик» с анимацией из RPG Maker MV. Кадров всего три, и достаточно выглядят грустно.

И как оказалось, не просто подобрать временную задержку, что бы получилось более-менее вменяемое передвижение.

Поэтому пришлось искать альтернативу. Взор упал на вариант слямзить кадры из RPG Maker XP.

К сожалению реализация анимации в 4 кадра не сильно помогла. Там были всё же «чибики», хотя немного перерисовав персонажа, мне удалось добиться более-менее вменяемой внешности.

Но тут встал другой вопрос, с анимацией ног во время перемещения вверх и вниз. Стало понятно, почему авторы RPG Maker склонялись к идее «чибиков». Рисовать при этом меньше, ног практически не видно и перемещение не выглядит столь корявым.

На какое-то время всё «замёрзло», но тут мне попались кадры анимации для изометрической проекции.

И как говорится «душа понеслась в рай», мне срочно захотелось попробовать вариант с изометрической проекцией:

На практике оказалось не всё так радужно как хотелось. Как таковой реализации изометрии в godot нет. Есть возможность несколько сместить чередование столбцов тайлов, таким образом, чтобы получилось подобие изометрии.

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

К сожалению, на данный момент в силу жизненных вопросов изучение godot несколько приостановлено. Но я не отчаиваюсь и постараюсь всё-таки закончить начатое дело и поделится опытом создания на страницах блога.

Ну а пока, если вам интересно, вы можете скачать проект «The One: prototype» для самостоятельного изучения модулей. Либо запустить демку и немного побегать по локациям лаборатории. Так же можно ещё глянуть самую первую мою попытку сделать что-нибудь на godot — титульное меню (:

Сим не прощаюсь, ещё увидимся.

ps. Проверено на VirusTotal — вирусов нет: