Найти в Дзене
Surtr Nerd

SpaceGeon. Дневники разработки #9

Всем привет!

Большая часть прошедшей недели я провёл за улучшением алгоритма генерации уровней и расстановки лестниц, т. к. ранее алгоритм ставил слишком много лестниц (избыточность), при этом периодически не ставил их в нужном месте и выходило, что герой не может достичь некоторых областей (а вот это уже чистой воды баг). На данный момент, после долгих и упорных тестов могу сказать с 90% уверенностью, что избыточность устранена, как и баг с отсутствующими лестницами.

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

А теперь опишу, как обычно, что было сделано по пунктам:

  • В алгоритм генерации уровней добавлена информация о сундуках (открытых и закрытых), а так же о закрытых дверях, так что когда они будут нарисованы, появление предметов не заставит себя ждать.
  • Также в алгоритм генерации уровней добавлена информация о ловушках. Предполагается использовать 3 вида ловушек — напольные (подпольные), настенные и потолочные, и, соответственно, несколько моделей для каждого типа.
  • Завершена интеграция двуногой крысы — она ходит, она стреляет, поворачивается спиной и (за счёт щита) не воспринимает урон сзади.
  • В игру введён огнемёт. Данный тип оружия будет доступен только классу Тяжеловес.
Маленький, но удаленький огнемёт
Маленький, но удаленький огнемёт

5. Скорость анимации стрельбы настроена таким образом, чтобы совпадать со скоростью ведения огня.

6. Улучшен алгоритм генерации уровней и расстановки лестниц.

7. Написан алгоритм расстановки предметов по уровню.

8. Перерисована ловушка «шипы», дабы соответствовать текущему «стилю» игры.

Новые шипы
Новые шипы

YouTube0:55А здесь можно увидеть демонстрацию созданных огнемёта и шипов. Запись произведена в тестовом окружении, поэтому многие геймплейные особенности отсутствуют

Вот так и прошла неделя — в битве с багами и переписывании алгоритмов. На следующей неделе я очень надеюсь выпустить демо-версию, которая станет доступна сразу в Steam, IndieDB и, скорее всего, на Itch.io, так что всем, кто заинтересован уже можно будет приложить руки к текущему билду. Соответственно, после окончания работы над демоверсией, я собираюсь начать работу над поддержкой модов и квестовой системой.

Думаю, что стоит упомянуть каким образом я собираюсь поддерживать моды. Т.к. игра разрабатывается на Unity, у меня есть два варианта — быть привязанным к Unity от и до, то есть предоставить поддержку модов на базе asset bundle, либо таки написать независимую от движка систему. Меня больше привлекает второй вариант. Но, тут есть одно но. Для поддержки изменения поведения необходимо реализовывать, либо использовать интерпретатор некоторого скриптового языка, либо подгружать dll определённого формата, а на каком языке написана программа включённая в dll уже не так важно. В случае использования интерпретатора, у меня складывает ощущение, что скриптовым языком будет LUA, благо его реализация для Unity имеется в открытом доступе. Выскажитесь, пожалуйста, в комментариях какой способ поддержки модов Вам кажется более удобным?

У меня на этом всё, спасибо, что прочитали и до следующей недели!