Заранее прошу прощения за длинный пост, я старался максимально минимизировать его, давая больше визуального сопровождения.
Прежде чем продолжить читать длиннопост, подпишись в сообщество, плиииииз. А также не забудь добавить игру в Желаемое!
Discord || VK || Ссылка на Steam страничку
В прошлой статье я рассказал немного про игру The Last World и вскользь затронул её механики. Кто не знаком с ней, прошу ознакомиться, это займет 5 минут. В этой статье (часть 2) пойдет речь о механиках и некоторых других аспектах игры. Кто не знаком с первой частью стать #2 - она тут.
Игрок добывает, производит, перерабатывает и копит, а дальше куда, что делать со всем этим добром? Для этого была добавлена космическая торговая площадка, на которой можно купить, продать или обменять ресурсы. На космической торговой площадке будут свои правила ведения бизнеса.
Первая версия окна торговой площадки. Может быть изменена.
Для доступа к космической торговой площадке нужна постройка – Торговая Площадка. Грузовые шаттлы будут сбрасывать груз при выгрузке и забирать, при загрузке. Грузовые шаттлы можно арендовать у торговцев, пока не будет введена орбитальная станция - основная база игрока.
В игре The Last World все цены предметов привязаны к ценам базовых ресурсов и рассчитываются автоматически, в зависимости от стоимости производства или переработки. Также торговцы могут накинуть какой-то процент на товар при продаже или скинуть процент, при покупке.
В целом, система торговли имеет огромный запас прочности, так что её можно улучшать и улучшать.
ИГРОВЫЕ СЕТЕВЫЕ ИНСТРУМЕНТЫ
Я не хотел нагружать мозг игрока, а тут ещё и конвееры делать нужно. Решил уйти от традиционного построения конвеерного мира переносом всего в "игровую виртуальность" обозвав это всё "сетями". Итак, в игре есть 3 сети – конвеер, электросеть и трубопровод. Все они независимы друг от друга и живут отдельно.
Переходя в режим инструментов, игрок переходит в "чертёжный режим". Там он будет соединять линиями постройки, которые хочет подключить к сети. Всего есть 5 подинструмента – линия, мост, считыватель, удалить элемент сети и удалить целую сеть. Целой сетью считается непрерывные участки этих самых линий. Всё просто и понятно. Хотите подключить две постройки между собой – соедините их линиями.
Всего в игре The Last World будет 3 древа технологий – основное, юнит и постройка.
В качестве построения основного древа я выбрал вертикальное вниз исполнение. При этом технологии, которые недоступны игрок всё же видит и может посмотреть, что же там интересного или нет.
По основному древу технологий игрок продвигается сверху вниз и вбок, проходя по всем разделам он открывает каждую технология не обязательно в определенном порядке.
Технологии исследуются в специальных постройках – Исследовательская Станция. В качестве "горючего" она принимает местный аналог "колбочек" называемое - чип-грант. Чип-гранты можно произвести или купить на торговой площадке.
Технологические древа юнита и построек ещё не готовы и находятся в процессе разработки.
Во время размещения построек необходимо учитывать несколько факторов – можно ли строить на воде, граница локации, а тут есть дерево, гора, пересечение построек и тп. Постройки можно вращать на 90 градусов при размещении, что придаёт немного больше гибкости планирования. После размещения постройки переместить постройку будет невозможно – только удалить и построить вновь.
Во время размещения постройки производится много вычислений на пересечение с объектами сцены. На самой большой локации размещается около 140 чанков и проверять пропы этих чанков на столкновение нет смысла, достаточно лишь найти 4 ближайших чанка и проверить их. Одним из соображений уменьшения размера чанка с увеличением размера локации является эта самая проверка столкновений.
Чтобы удалить постройку можно воспользоваться двумя путями – вызвать контекстное меню и удалить, или использовать инструмент вверху экрана. Этот инструмент позволяет удалить множество построек – наведи и кликни.
В игре The Last World будет много источников света в ночное время суток. По сути, сколько построек, столько и источников света. Т.к. игра делается с использование URP а там, да и не только там, на 1 объект может светит только 8 источников то возникает вопрос – как так и где решение?
Решением оказался URP differed, это сравнительно новая функция поэтому я не до конца разобрался что это и с чем её едят. Единственное, что при переходе на неё нужно будет немного редактировать кастомные шейдеры. Теперь я могу светить на объект (а это у меня был в основном террейн) хоть +100500 раз.
Ну вот и подошли к самому интересному, по моему мнению, это система инвентаря. Я уже писал, что каждый юнит, постройка имеет свой отсек для хранения предметов. Для юнита это модули – передний и задний отсеки, в которые можно складировать предметы разных размеров. Для построек – это размер самой постройки, её габариты и вместимость. На наземную лампу ведь не сделаешь размер отсека в 40х40 ячеек…
Инвентарь в игре представлен в виде ячеек. Все предметы имеют вес. Вес представлен в виде размера, которые они занимают в инвентаре. С предметами можно производить манипуляции – вращать, перемещать, стаковать, разъединять, удалять, в общем всё, чтобы было комфортно пользоваться инвентарем. Само перетаскивание и прикрепление предметов реализовано по принципу – Drag and Drop.
Помимо ячеистых систем есть и слотовые, на которые можно поместить только один предмет, определенного класса. К таким относятся слоты модулей юнита.
Работа с инвентарем неимоверна сложная, запутанная и интересная. Считаю, что разработку любого проекта нужно вести от самого сложного к простому, так можно быстро отсеять ненужный функционал. Как говорят – глаза боятся, а руки делают.
У некоторых дронов также присутствует отсек для хранения ресурсов. Им он необходим для работы, например, для добывающих дронов. Во время игры можно посмотреть содержимое этого отсека через контекстное меню. Окно с содержимым доступно только для просмотра. Этот же функционал доступен и для персонажей.
К слову о контекстном меню или "мини-меню" - в игре мини-меню можно вызывать практически на всех слотах, предметах, юнитах, построек и тп. Тут уже нужно экспериментировать и тыкать на всё подряд, чтобы понять, можно ли вызвать мини-меню. Позже я упрощу этот поиск использованием подсказок в виде "tooltip".
В игре будет много предметов, которые можно найти, создать, добыть, купить или обменять. Какая-то часть из них не будет нести особой ценности, они будут нужны лишь для заработка или коллекционирования.
Есть предметы с эффектами, например, модули для юнитов, которые будут бустить один или несколько параметров. Также в игре присутствуют и модули для построек, которые также могут увеличить или уменьшить какие-либо параметры постройки. Например - очень полезная штука для очищающей станций, если раньше постройка могла очистить за 1 секунду только 1 ресурс, то после добавления модуля сможет очищать уже 3 ресурса за то же время (но при этом расходы увеличатся).
Помимо обычных (твердых) предметов в игре есть и ещё несколько типов – газообразные и жидкие. Они не имеют оболочки и на прямую с ними игрок не сможет взаимодействовать. Хранить такие ресурсы нужно отдельно в цистернах. Также такие ресурсы можно разлить в бочки и перевозить на большие расстояние или использовать в производстве, при необходимости.
Для юнита и инструментов есть такие модули, которые могут хранить в себе другие модули (имеют функционал контейнера). После прикрепления этого модуля к юниту или инструменту, все дополнительные модули автоматически загрузятся на свои места.
В данный момент работаю над погодными условиями. Пока будет несколько типов погодных условий:
* Sunny или Clear – чистая, солнечная погода с небольшим количеством облаков и легким ветерком;
* Cloudy – облачная погода, яркость от источника света будет снижена на %, ветер чуть сильней чем обычно;
* Rainy – много густых облаков, сильный дождь, сильный порывистый ветер (вероятность 50%), увеличена вероятность встретить разряды молний, густой туман (вероятность 50%), яркость от источника света будет снижена на большой %;
* Storm – больше густых облаков, очень сильный дождь, выпадение града (вероятность 50%), большая вероятность встретить разряды молний, очень сильный порывистый ветер, яркость от источника света будет снижена на очень большой %;
* Snow – больше густых облаков, средний снег, выпадение града (вероятность 50%), сильный порывистый ветер, яркость от источника света будет снижена на большой %, густой туман (вероятность 50%);
* Snowstorm - больше густых облаков, очень сильный снег, выпадение града (вероятность 50%), большая вероятность встретить разряды молний, очень сильный порывистый ветер, яркость от источника света будет снижена на очень большой %;
* Sandstorm – небольшое количество облаков, очень сильный порывистый ветер, песчаные бури.
Также усердно работаю над созданием странички в магазине Steam. В обозримом будущем есть планы улучшить визуал Конструктора, сделать платформу и добавить больше статистики и многое другое…
Критика, предложения, советы и вопросы по теме приветствуются.
Спасибо за инвестированное время! Присоединяйтесь в сообщество и следите за ходом разработки, буду вам рад!