Dev-блог 144

DevBlog_144_1.jpg

Добавили новый револьвер, поработали над фермерством, анимациями, оптимизацией и прочим.

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

DevBlog_144_3.png

Главная проблема — это то, что на каждый холдтайп в движке (анимации удерживания камня, топора, винтовки и пр.) у нас был целый набор сопровождающихся анимаций (бега, прыжка, ходьбы на корточках и т.д.) Да, возможно с точки зрения моделлера, в этом всём есть смысл. Когда персонаж несёт, к примеру, ракетницу, анимации должны отображать то, что он несёт что-то тяжёлое и все эти анимации должны влиять на положение всего тела.

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

Несмотря на то, что все изменения в основном делались «внутри», некоторые из них вы всё же сможете заметить.

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

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

Сами по себе изменения достаточно объёмные, поэтому некоторые проблемные области всё ещё имеются. Мы планируем устранить их на следующей неделе:

  • Некоторые анимации (удерживание предметов одной рукой) выглядят крайне нелепо во время бега.
  • Есть недочёты с прочими анимациями удерживания (например: копья).
  • Нет анимации подъёма по лестнице.

Prerelease

На этой неделе, я вместе с Диого уделил некоторое время PR-ветви. Сейчас там установлена новая версия движка (5.6.0 beta), которая включает в себя новшества относительно Navmesh и AI. Я провёл некоторые тесты и пока что результаты вполне удовлетворительные.

Новая система AI более гибкая, нежели её старый аналог. В будущем мы планируем добавить в игру множество PVE элементов. Главная цель — добавить в игру некий агрессивный объект, который будет стимулировать игроков объединять усилия для победы. Также, само собой, мы планируем убрать у медведей возможность ходить сквозь стены. Жду не дождусь отзывов в духе «раньше, с ходящими сквозь стены медведями, было лучше».

Но не спешите лезть на PR-ветвь в надежде подраться со 100 футовыми каменными статуями, сейчас она в нерабочем состоянии.

Фермерство 1.7
Я по-прежнему продолжаю работать над системой фермерства и сейчас я уже близок к её завершению. Теперь, с течением времени, вы будете отчётливо видеть, как растут растения, а не наблюдать за тем, как они резко из маленьких саженцев становятся зрелыми растениями. Скорость роста, к слову, теперь крайне важный параметр для клонирования.

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

Помимо стандартной функции сорвать растение, у вас теперь есть возможность сделать с него срез (клавиша Е), который также можно будет посадить и его ген. данные будут совпадать с его «родителем».

DevBlog_144_2.jpg

К слову, число «G» как раз и обозначает те самые ген. данные (0 - 10 000). Чем выше число, тем быстрее будет рост. Таким образом, делая срезы с лучших растений и сажая их, вы сможете клонировать высокопродуктивные саженцы.

DevBlog_144_4.jpg

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

Возможно вам покажется, что во всём этом нет никакого смысла, ведь сейчас нет острой потребности в еде, однако смею вас перебить, на следующей неделе я хочу сделать так, чтобы собственно выращенная пища была гораздо эффективнее и полезнее той, что вы найдёте где-то. Кроме того, мы планируем добавить лекарства (крафт) и прочий стафф. Наслаждайтесь!

Изменение стоимости арбалета
Теперь он стоит 100 дерева, 50 м/ф, 1 верёвку и 1 шестерню. Всем, кто холиварит на Reddit: шестерня должна оставаться в крафте до тех пор, пока я не ребалансирую таблицы лута компонентов. Извините!

Эффективная дальность стрельбы P250
Множество людей писало мне о том, что этот пистолет идеален, а другая половина сообщества твердила, что его надо нёрфить. Взвесив всё, я пришёл к выводу, что Р250 слишком хорош на дальних расстояниях. Доходило до того, что люди использовали его вместо того огнестрела, который был специально создан для дальних дистанций. Я внёс некоторые коррективы и теперь этот пистолет перестал быть столь универсальным.

Прежде всего, изменения коснулись его эффективной дистанции поражения. И прежде, чем вы взбеситесь, я поясню: его показатели на ближних дистанциях (20-30 метров) абсолютно не изменились, однако за пределами этой дистанции — его урон существенно снижается. Я считаю это изменение справедливым, по крайней мере для начала. Объективно, в игре не должно быть пушки, которой можно было бы легко убивать на любом расстоянии, вроде рэйлгана из Quake 3. Кстати, я также слегка увеличил ему вертикальную отдачу, лол.

Револьвер «Питон»
Он уже в игре. Правда, звук у него пока что дерьмовый, позже мы выпустим небольшой патч с фиксами аудиофайлов.

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

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

Новый револьвер
Я закончил с анимациями, звуком и world_моделями. Вот как он выглядит у вас в руках:

DevBlog_144_8.jpg

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

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

В данный момент, я начал работать над хай поли мешами для всей необходимой растительности, а некоторое время назад я думал о том, какие именно растения нужно использовать, чтобы окружающая среда стала разнообразнее. Главная цель сейчас заключается в помещении всех данных в один текстурный атлас, что позволит найти компромиссное решение относительно производительности игры и нагрузки на видеокарту. После того, как с этим будет законченно, я начну переводить их в 3D модели, которые в конечном счёте будут размещаться в наших данжах. Помимо этого, я буду заменять нашу текущую траву местности на эти новоиспечённые активы, в большей степени, чтобы сделать растительность более реалистичной.

Ниже идут некоторые примеры моделей, над которыми я сейчас работаю:

DevBlog_144_5.jpg

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

Оптимизация твёрдых тел (часть 2)
Я удалил с клиента все твёрдые тела (Rigidbody), которые не взаимодействуют с коллайдерами и триггерами. Единственные твёрдые тела, которые остались — тела игроков и рэгдоллы. Это действие существенно сократило нагрузку, которую оказывала система игровой физики на каждый фрейм, по крайней мере на моей машине. Каждый отдельный фрейм физики съедает сейчас 0.3 мс, а 2 недели назад он ел более 2.0 мс. Будет интересно посмотреть, как эта оптимизация скажется на густонаселённых серверах.

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

Заметки о качестве теней
Мы получали множество репортов на неадекватную визуализацию теней (кубы), которые сильно отвлекали от игрового процесса. Чтобы устранить проблему, мы разрешили использовать команду graphics.shadowmode 2 на всех уровнях графики, которая позволит сгладить тени. Ранее эта команда была доступна лишь на 5 уровне качества графики, а сейчас на 2 и выше. В общем, не стесняйтесь ею пользоваться и оставлять отзывы.

Оптимизации на Prerelease-ветви
Последние несколько недель я работал на PR-ветви, в частности — испытывал новые методы оптимизации c использованием новшеств, которые стали доступны при обновлении Unity до 5.5+. Много работы было проделано, чтобы добавить динамической окклюзии функцию отключения вне зоны видимости. Игроки и рэгдоллы теперь отключаются посредством перегораживающих поверхностей, вроде местности. К моменту, когда все эти новшества станут общедоступными, все объекты будут использовать своеобразную систему динамической окклюзии.

Переработка модели медведя
Модель наконец-то начинает обретать привычный вид. В некоторых областях ещё есть некоторые недоработки, но в целом, я почти закончил. На следующей неделе я буду «полировать» модель, попутно убирая эти назойливые глюки возле краёв силуэта.

DevBlog_144_6.jpg
BearReworkUnity_02.jpg


Работа над декор-элементами
Я на этой неделе сфокусировался на замене оставшихся грейбоксов (временные схематичные модели) в наших данжах на нормальные объекты. Я поработал над несколькими распред. коробками и заменил ими временные модели. Также я заменил некоторые временные модели фургонов, на новые грузовики, над которыми я работал ранее. Ну и ко всему прочему, я начал текстурировать бункер-комнаты расположенные в военных тоннелях, но об этом я расскажу вам уже на следующей неделе.

DevBlog_144_7.jpg

Оптимизация world_моделей
Ещё больше оптимизации на этой неделе и организация префабов. Что ж, самые плохие меши теперь в нашем бюджетном диапазоне. Сейчас я просто работаю с оставшейся частью списка.

Звук
Я закончил с новыми звуками волков, теперь они звучат немного лучше + у них есть пара дополнительных вариаций звуков атаки.

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

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

Ну и в завершении, на этой неделе я также внёс ряд доработок в наш аудиомикс.

Список изменений:
  • Теперь видно, когда другие игроки начинают целиться.
  • Оптимизированы анимации персонажа.
  • Улучшили звуки волков.
  • Добавлены новые звуки для револьвера «Питона».
  • Внесены доработки в аудио-миксинг.
  • Оптимизированы твёрдые тела (rigidbodies) на стороне клиента.
  • Система спавна ресурсов и мусорных куч теперь будет проверять место на наличие построек и игроков.
  • Устранены серверные ошибки, которые возникали при стрельбе по кучам мусора.
  • Улучшили обработчик спавна, респавн теперь использует несколько попыток (облегчение процесса балансинга).
  • Разрешили использовать команду graphics.shadowmode 2 на втором уровне качества графики и выше.
  • Усилили эффект снижения урона в зависимости от расстояния у пистолета P250.
  • Добавили револьвер «Питон».
  • Процесс роста растений теперь нагляден и постоянен (ранее саженцы по прошествии времени резко меняли свои стадии роста).
  • Добавили возможность клонировать растения (с дублированием генетических данных).
  • Теперь семена видно на почве сразу после посадки.
 
Последнее редактирование:
Сверху