ДевЛог#17 - Спавнеры

Расставлять каждого врага по карте очень муторно, а реализовать их перерождение в ручном режиме - проще повеситься. Поэтому для врагов нужен спавнер. Поехали, поглядим что у меня получилось!

Сами враги в игре пока выглядят примитивно, бесплатных ассетов нужных я не нашёл, а тратить время на моделирование и анимацию я себе позволить не могу.
Сами враги в игре пока выглядят примитивно, бесплатных ассетов нужных я не нашёл, а тратить время на моделирование и анимацию я себе позволить не могу.

Спавнер в первой интерпретации просто спавнил объект каждые n секунд, и как итог враги наслаивались друг на друга. Ввёл запоминание врага, и проверку жив ли он в момент попытки спавна. Если нет, отодвигаем таймер на пару секунд, чтобы не проверять каждый кадр. Дальше врагов надо было разнести в радиусе вокруг спавнера и был добавлен радиус, затем и возможность спавнить сразу несколько врагов.

И вот незадача - враги пушки спавнились, и работали, а шарики-камикадзе нет! Что-то не то в скрипте, в префабе... нет, оказывается просто кто-то забыл построить navmesh, поэтому камикадзе проваливались под уровень и валялись там до посинения.

Вот он малыш спавнер, правда милаха?<br />
Вот он малыш спавнер, правда милаха?
Пока так!<br />
Пока так!

Итак, для моего минимального спавнера потребовалось знать:

  • что нужно спавнить
  • где нужно спавнить
  • как часто спавнить
  • в каком количестве спавнить
  • что уже заспавнено и живо ли оно
  • режим (одноразовый\бесконечный)

Скорее всего дальше потребуется больше. Но заранее добавлять ненужные параметры, конечно, не хочется. Пусть всё растёт по мере необходимости!

Однако, так как спавнер можно использовать не только для врагов, его можно будет использовать и для лута, да и любых других объектов, бонусов, денег... Тут я вижу дальнейшее развитие спавнера — возможность указать несколько мест спавна и выбирать один из них случайным образом. Без этого сделать мир, где игрок сможет заучить всё за короткие сроки будет сложно. Разумеется при необходимости зафармить что-то конкретное игрок найдёт все точки спавна, запомнит и будет их обходить, но это всё-равно лучше бега к одному и тому же месту в каждой сессии, потому как враги тоже будут менять места дислокаций, а значит каждый поход будет отличаться.

Как всегда всех рад видеть в телеграм-канале и любым обсуждениям\предложениям в комментариях!

44
23 комментария

Спавнеры тоже приходится расставлять вручную. Теперь пиши генератор расстановщика спавнера. :D

3
Ответить

О да, но они дают вариативность. Враги спавнятся в указанном радиусе и количестве, а значит для спавна группы из 5-10 врагов одного типа в кучке не надо выставлять аж 10 врагов, а всего один спавнер. В целом пространства для манёвра побольше выходит с меньшими усилиями.

Ответить

Ееее бой уже прям игрулина растет)

1
Ответить

Так в этом же и смысл!

Ответить

Что-то мне кажется написать статью заняло больше времени чем написать спавнер.

1
Ответить

Даже если и так, то одно не отменяет второго. А блог ведь нужен для того, чтобы следить за проектом тем, кого он заинтересовал. Так почему бы не выдавать информацию о всех аспектах разработки?

Ответить