Как [Баян Гордыня] для [ЛОКИ] игру делывает

?
в блоге ОКИ

Кодовое название: «Электрожаба на донышке»

Сначала был Disco Elysium. Задумка была простой и прямолинейной. «Я хочу свой Disco Elysium, с Psychedelic Trance музыкой и про меткоискательниц»

— сказал Баян Гордыня и привычным движением запустил RPG Maker MV, чтобы тут же попытаться реализовать высокоразвитые диалоги с дуркой со своими чертами. Но годы отсутствия практики в чтении и писательстве дали о себе знать. Кроме того, в RMMV почти совершенно невозможно писать сложные разветвлённые диалоги. Идея перешла на чердачок «Крутых Идей Которые Я Обязательно Воплощу». Начался новый поиск.



Задумка была простой и прямолинейной. «Я хочу свой Сокобан, с клёвыми механиками и понями» — сказал Баян Гордыня и привычным движением запустил RPG Maker MV, чтобы тут же попытаться реализовать ключевые механики. Ключевой механикой была возможность толкать ящики перед собой. Никаких проблем.
Затем Баян Гордыня позвонил другу: «Привет! Помнишь, как на втором курсе ты нарисовал пару клёвых карт для моего консольного Сокобана? Мне нужно ещё, но только чтобы на одной карте было сразу три персонажа!». Друг радостно отправился рисовать карты, пока я впервые за 10 лет качался на качели под дождиком и курил трубку ОСУЖДАЮ НЕ ОДОБРЯЮ ЭТО ВРЕДНО ДЛЯ ЗДОРОВЬЯ (меня потом вырвало).
Наступает утро и я вижу, что на карте есть странные объекты. Достаю баклажку домашнего кваса и иду к другу, по пути постоянно отпивая свою долю. Когда я пришёл — стало ясно, что домашний квас крепче магазинного пива ОСУЖДАЮ НЕ ОДОБРЯЮ ЭТО ВРЕДНО ДЛЯ ЗДОРОВЬЯ. Друг пояснил, что странные объекты есть мины-убивающие да порталы, куда нужно затолкать ключ. На бумажке прошёл карту, было очень интересно (в следующий раз пройти карту я смог только через три недели). Ба, делов-то. Нужно добавить реализацию мин и порталов. Но вот беда — RMMV не поддерживает обработку столкновения двух объектов. И так я пытался, и сяк — не получилось. Начался новый поиск.

Задумка была простой и прямолинейной. «Я хочу свой движок для Сокобана на C# + SFML, с клёвыми механиками и расширяемостью» — сказал Баян Гордыня и привычным движением запустил VS2019, чтобы тут же попытаться реализовать ключевые механики. Ключевой механикой была возможность безболезненного добавления всех новых безумных штук, которые придумает мой друг в попытке сделать новую карту. И тут я впал в ступор на целые три недели. Как только я пытался думать о программировании и проектировании, мой мозг сразу же притворялся мёртвым. Начался новый поиск.

Несколько дней назад я вновь запустил RMMV. Теперь со мной было пивное вдохновение, безысходность и разбирающийся в RMMV человек. Первым делом я решил волевым усилием убрать из игры все сложные механики, вроде мин и порталов. Сказано — сделано. Оставалось реализовать ключевую механику игры — смену персонажей. Что ж, это не так уж и сложно. Запоминаем координаты каждого из персонажей, и когда переключаемся на нового — сохраняем координаты старого. Переключение работает в виде заклинаний.

Поначалу переключение работало как безумие: менялась картинка героя и его имя. Добрый человек подсказал мне, что можно добавлять в партию нового героя и удалять старого.
Теперь я задался вопрос: как разделять инвентарь? Ведь в RMMV инвентарь общий для партии, и даже если менять героев, вещи останутся! Решение пришло из моей старой истории про попытку сэкономить немного памяти и хранить бинарную карту как биты в байтах через специальный переводчик. Только здесь нужно было завести по одной переменной для каждого предмета, и хранить в ней номер персонажа, который этот предмет имеет.
А потом добрый человек подсказал мне про плагин для разделения инвентарей. Это был первый мой плагин. И я покатился по наклонной. Стал играть в орлянку на кладбище...
После раздельных инвентарей мне подсказали про плагин для обработки любых кнопок (RMMV считывает только около десятка стандартных клавиш). Больше не нужно искать заклинание «Стать Sweetie Bell»! Достаточно нажать на «1», «2» або «3»!
А потом я нашёл плагин для обработки столкновения двух событий, скрипты для которого работали не из раздела «скрипты», а из раздела «комментарии». И тут понеслось. В итоге первая карта моего друга была реализована целиком и полностью.

Что нас ждёт? Вторая карта, а потом и вовсе попытки таки реализовать потенциал поней с их особыми способностями (но на это я бы сильно не надеялся, слишком сложно как реализовать механику, так и встроить ей в дизайн уровня).

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

11 комментариев

Niko_de_Andjelo
0
kek Табун опять сломался немного



tabun.andreymal.org/ — ошибка 522
Niko_de_Andjelo
0
Изменён автором
ОСУЖДАЮ НЕ ОДОБРЯЮ ЭТО ВРЕДНО ДЛЯ ЗДОРОВЬЯ.

Домашний квас вредным быть ниможет!
Gedzerath
0
Домашний квас полезный! Но он сделан из воды, а вода губит людей!
Niko_de_Andjelo
0

Ересь, вот каково истинное звучание психоделики:
McFord
+1
Изменён автором
[UPD 31/07/2022]
Разработка вышла на финишную прямую.
Осталось настроить звуки и музыку, отшлифовать баги и облагородить тексты.
Niko_de_Andjelo
+2
Интерфейс:
Niko_de_Andjelo
+1
Мини-отчёт по проделанной работе на текущий момент:

Задача Решено?
Удалять ключи при открытии дверей Да
Запретить выход с уровня с ключом в инв. Не хочу
Счётчик шагов на экране Доделать/не хочу
Показывать взятые ключи на экране Да
Вступление и сюжет Почти
Случайные фразы Твай Почти
Коррекция цвета гребешков и ключей Да
Дракончики поворачиваются к игроку Да
Запретить поворот ключей Да
В интерфейсе ключи переносятся на новый уровень (на самом деле нет) Да
Не хочешь покормить перед выходом?\ Не хочу
Проницаемые порталы Не совсем
Порталы выхода на кнопку Да
Иконки поней с цифрами Да
Починить шары Частично
Звук снежным шарам Да
Лубок прозрачность после ТП Да
Нет звука при переключении на 1 2 3 Да
Толкать пони Да
Подружки смотрят на нас Да
Переместить Звук смены пони в Стать_пони
Статистика шагов

Ещё добавил вроде как титры
Niko_de_Andjelo
+2
За второй этап разработки было поставлено 30 задач, большую часть которых мы решили
Niko_de_Andjelo
+2
Но вот беда — RMMV не поддерживает обработку столкновения двух объектов.

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

Для двух персонажей я просто менял местами ивент с игроком местами, графику ивента и набор пати (а меню игры у меня нет, ха-ха).

А еще однажды я понял, что очень круто делать карты по возможности сильно большего размера, чем активная область (кроме, офкос, комнат на один экран), это позволяет
— избавиться от странного ощущения на границе карты, когда нужно смотреть в другое место (естественно, кроме переходов в другие зоны)
— можно гадить ивентами по краям (даже видимыми) и они точно не будут мешаться.

А еще попробуй в идеале графику более говорящую. В эту штуку я достаточно много играл в детстве, там много всяких механик и осталось место приколюхам, при этом обучение пусть и методом проб и ошибок, но в целом достаточно говорящее.
StaSyaN
+2
Изменён автором
А как накостылять проверку столкновения? Для двух событий ещё наверное можно через проверку координат события, но у меня событий куда больше… В любом случае нашёл плагин, который решил проблему ;)


С картой в самую точку, сам пришёл к такому же выводу, если я всё правильно понял.

Персонажей я меняю так — сохраняются координаты событий и игрока, и в нужный момент происходит то что ты описал + стоит плагин на несколько раздельных инвентарей
Niko_de_Andjelo
0
Я сейчас точно не помню, ибо снес код через полгода по сторонним причинам (это использовалось для проигрывания звука, в какой-то момент я понял, что даже мой звуковой движок захлебывается где-то минуте на пятой). И, возможно (смотрю на остатки), оно реально работало попарно (в переменную клалось айди события, с которым надо сверять, а this.eventId() для общего события равен текущему… ладно, я вроде через жс координаты получал), ибо я тогда знал, кто с кем потенциально может столкнуться. Если бы писал сам, скорее всего дописывал в комменты/названия событий/в код самих ивентов факт того, что надо сверять столкновения, ну то есть как плагин делает.

А так регионы ванлав, если хотя бы что-то сидит статично. Только жалко, что изкоробки рпгмейкер не позволяет в динамике рисовать на карте

а еще у купленного мейкера в комплекте уже куча плагинов идет, их просто достать надо
StaSyaN
0
Изменён автором
А откуда?
а еще у купленного мейкера в комплекте уже куча плагинов идет, их просто достать надо


Не надо, нашёл. Это ж надо так спрятать купленные дополнения, лол
Niko_de_Andjelo
+1
Изменён автором
Сейчас я буду устанавливать все плагины
Уже воткнул плагин на переназначение кнопок. Довольно сырой и неуклюжий, но теперь можно листать варианты ответа прямо с WASD. Эти настройки ведь сохранятся в выпущенном билде? Я надеюсь…

Не сохранились =(

Не знаю, может быть если я релизной сборке сам выставлю все настройки и запакую — тогда настройки сохранятся?
Niko_de_Andjelo
0
Изменён автором
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.
Скрыто Показать