nklbdev
Сейм шит. Ну у меня и геймплей под такое будет подогнан.
Я параллельно другую игру делаю, там сохранение будет включать сохранение и восстановление состояний и положений всех предметов. Такое себе счастье.
Меня порой парит, в каком порядке после загрузки во все списки обновлений лягут объекты, в каком порядке подпишутся на сигналы/события/другое модное слово друг друга. Ведь это сильно повлияет на детерминизм.
Это как отложили бы мы с друзьями карточную игру, а потом через месяц расселись в другом порядке и продолжили играть
По идее ведь все эти игры должны быть в идеале пошаговыми с очень мелкими фиксированными шажками. Все по очереди делают свой ход.
Кстати, физические движки этим смущают: если кинематическим телом ты управляешь сам в нужный тебе момент, то как обрабатывается очередность ригидных тел - скрыто в черном ящике
Хорошо, что в сингл-плейере вся эта дрянь не слишком заметна. Делать сетевую игру с синхроном стейта... о нет, только не это))))
Для этого используют одну точку входа для всех апдейтов. Либо ецс, либо свое. У меня для всех важных объектов определен порядок вызова апдейта.
Я постараюсь выстроить геймплей так, чтобы сохранять минимум информации. В идеале - номера пройденных уровней.
Экспериментирую с кастомным редактором FSM/BT для настройки поведения мобов.
Activity-узлы - это "состояния", а Transition-узлы (не подписаны для экономии пространства) - узлы для конфигурации перехода (условие и приоритет).
В выпадающих списках узлам присваиваются C#-скрипты с условиями переходов и обработчиками нескольких видов событий (тик, вход в состояние и подобное).
(клик ведет на видео)
kkolyan
А я вот много BT-редакторов перепробовал, "standalone" и в составе движков (и сейчас это периодически делаю).
И всё-равно остановился на "велосипедном" решении: редактирую граф в стороннем mind-map редакторе (Freeplane),
потом разбираю его xml и импортирую в движок.
Из недостатков, основной только один: нет валидации (типа выпадашки скрипта-метода) для узлов-листьев во время редактирования.
Он же и преимущество: можно быстро накидать дерево логики в свободном формате, и потом доводить его до рабочего состояния.
При этом скорость работы с клавиатуры (вообще без мышки), быстрая работа с ветками, ноды с комментариями прямо в рабочем дереве,
и т.д. Незнаю почему, но "мышечные" редакторы до этого не доперли.
Хм, потестил лепение деталей и понял, что это никуда не годится. Динамика игры равна нулю, платформенность 0%. Но, опыт неплохой. Буду думать далее, что слепить.
Incvisitor
> Буду думать далее, что слепить.
Платформер бро ;)
Небольшой перерыв на Ludum Dare
Сделал менюху настройки управления.
Каждому действию можно сопоставить до двух кнопок на клаве и до двух - на геймпаде
Изначально загружается дефолтная конфа
Если перенастроить и нажать Accept, сохраняется пользовательская, и дальше будет автоматом загружаться она.
Можно нажать Reset и снова увидеть дефолтную конфу
nklbdev
> Сделал менюху настройки управления.
Есть такой плагин для godot, или сам пилил?
rcsim
любопытно) ну если привык к конкретным тулам, может и имеет смысл импорт из них) у меня пока ввод занимает пренебрежительно мало времени по сравнению с мыслительным процессом. Ну кстати, я так понял что у меня это всеж больше FSM, чем BT. ньюансы поведения всеже в коде будут скорее всего.
rcsim
> Есть такой плагин для godot, или сам пилил?
Это стандартные контролы Godot, два дня чтения мануалов и письмо скриптов)
Ловлю ивенты, сопоставляю с описаниями для обновления текста на кнопках. Сериализую все в словари и массивы из примитивных типов и сохраняю как JSON.
Из плагинов у меня только один - Vnen Tiled Importer, но он сам не идеален, и я его костыльно "подточил" под себя. Вообще есть мечта написать свой более четкий импортер, но этому не бывать))
nklbdev
> Это стандартные контролы Godot
Точнее сказать это дефолтный скин. Но вопрос был про плагин на кастомизацию InputMap.
Я просто видел как-то один, написанный довольно наивно. Вот думал может что-то появилось стоящее.
rcsim
> Вот думал может что-то появилось
Можно попробовать написать, если надо, но потом))
Тема в архиве.