Как я пытался освоить редактор мини-игр в Pamel Party

Всем привет! Я недавно совершил ошибку. Стандартную ошибку новичка: начинать задавать вопросы, в которых еще сам не до конца не разобрался и не попробовал решить проблему сам.

Одно то, что я не получил ответа и не привлек никакого внимания, дало мне мысль попытаться еще раз
Одно то, что я не получил ответа и не привлек никакого внимания, дало мне мысль попытаться еще раз

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

Начну с начала

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

Как я пытался освоить редактор мини-игр в Pamel Party

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

Есть классические элементы управления, но нельзя на экране выделить зажатием несколько объектов. Остаётся либо через Ctrl, либо выделять группу в списке объектов.

Что вообще я хочу сделать?

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

Вообще есть простой блок из стандартного набора пропсов:

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

Идея в том, чтобы сделать карту из рядом стоящих таких объектов – камней. И постепенно поднимая их группами вверх, смогу преобразить карту в гору. И вот первая сложность.

Что я делал не так?

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

По началу, у меня даже получалось размещать блоки без проблем
По началу, у меня даже получалось размещать блоки без проблем

Однако очень быстро я понял, что комбинировать блоки по типу: подвинуть руками один блок хорошо, а для других – отредактировать координаты, не получится и будет много ошибок. Я пытался даже группами пытаться из выставлять, но этого не достаточно.

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

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

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

  • Неужели надо применить математику, и задать управлением координаты?
  • Или как-то по-особенному стратегически расставлять группы блоков вместе и потом копировать?
  • Или я идиот и в редакторе есть способ как приклеивать объекты рядом друг с другом?

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

Для экономии времени запустил код в приложении, в котором параллельно тренировался
Для экономии времени запустил код в приложении, в котором параллельно тренировался
В итоге получил сетку из координат центров шестиугольников
В итоге получил сетку из координат центров шестиугольников

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

Мои мысли не покидало то, что количество блоков слишком много для отрисовки компьютерами. Все на столько плохо, что у меня просто предпросмотр просел с 144 до 80 фпс с просадками до 30, а переключение на мой фундамент вешало сцену на несколько секунд. При этом запуск все еще происходит, и в игре 135 фпс держатся. В любом случае при формировании горы я планирую оптимизировать количество блоков, заменяя группы блоков на один большой. В идеале иметь инструмент, чтобы объединять ландшафт из блоков в один, но редактор не позволяет делать новые пропсы, а 3D Max или что-либо еще у меня не имеется, и пока решения как это сделать я еще не принимал. Возможно в дальнейшем придется так и сделать, но на данном этапе пора сделать из этого танцпола мой уровень.

Прошло 4 месяца

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

  • Проваливающийся пол при прыжке на него
  • Сделать зону блоков, которые надо наступить, чтобы пройти дальше
  • Поработать внутри горы (например порталы сделать или ловушки)
  • Пустить на соперников Лаву или лавину
  • Система контрольных точек

А тем временем подходит к выходу обновление в другой отличной игре!

Надо допотеть уже с Pammel Party до отправки в Worshop, и попробовать себя в Fall Guys
44
4 комментария

Советую тебе переходить на Kokatsu party, и осваивать тамошний редактор. Намного удобнее и... приятнее...

1

Буду смотреть, я такое люблю очень!

Это в Вопросы. Или в Инди, на крайний случай. Но никак не в Геймдев!

1

Может и так. Ситуация для меня казалась пограничной