Балансировка P250, оптимизации, некоторые подробности о грядущих изменениях отдачи и прочее.
Нёрф P250
На этой неделе я получил сразу несколько сообщений о том, что P250 был слишком сильным оружием и зайдя в игру, я убедился в этом окончательно - клан из трёх человек в армированной базе, пытались застрелить меня не из винтовок, а из него. В конечном счёте, я решил уменьшить урон с 50 до 40 ед. Надеюсь, что теперь этот пистолет займёт правильное место в иерархии оружия.
Оптимизация снарядов на стороне CPU
Играя на Battlefield-серверах, я заметил достаточно серьёзные торможения. Открыв профайлер, оказалось, что около 200-400 снарядов моделировались в любой момент времени. Максимальная жизнь снаряда - 60 секунд, суть в том, что попадая в небо, либо в воду, снаряд висел все эти 60 секунд, загружая тем самым ЦП. Для устранения недуга, я снизил жизнь снаряда до 8 секунд, после чего мною было замечены улучшения.
Ко всему прочему, некоторые "тормоза", появились после моих прошлых изменений связанных с трассерами в виде от 1-го лица. И они, кстати, тоже уже устранены.
Корректирование отдачи
Сейчас я работаю над принципом работы отдачи. Делаю я это прежде всего для того, чтобы она была менее раздражающей. В конечном счёте, работы тут оказалось больше, чем я ожидал, поэтому на этой неделе эти изменения на основу не уйдут. Если говорить по существу, главное изменение заключается в том, что когда вы перестаёте стрелять, вертикальная отдача компенсируется и ствол возвращается в то место, где он был до начала стрельбы. Далее, вместо этой раздражающей горизонтальной отдачи, я увеличу разброс и добавлю нарастающую хаотичность полёта пуль с каждым последующим выстрелом. В общем, в итоге вы получите подобие кучности стрельбы, без этих рандомных "полётов" ствола по экрану.
Единственное что, воплотить все эти наработки в жизнь оказалось труднее, чем я думал. Нам следует учитывать, что люди будут компенсировать вертикальную отдачу оттягивая мышь вниз, поэтому после остановки стрельбы, ствол не должно сильно уводить вниз. В любом случае, следует провести ещё не один и не два теста, ведь эта механика в корне поменяет процесс стрельбы и прежде чем добавлять её на основу, нам стоит как следует убедиться в том, что это верный путь развития, а не очередная "система опыта".
Система компонентов?
Сейчас я в процессе уточнения некоторых деталей и решения некоторых насущных вопросов, но в целом, я планирую начать работать над системой компонентов (на основе разделения ресурсов по локациям) уже на следующей неделе. Прежде всего мы зальём её на PR-ветвь, т.к. прежде чем пускать её на основу, нам стоит убедиться в том, что это не кусок мусора. На следующей неделе я раскрою детали и выложу схему, как всё это будет работать. Оставайтесь на связи.
Тканевая лента
Я закончил с текстурами, UV и LOD-ингом модели. Теперь она ждёт, пока Хелкус добавит ей функционал. Вот пара её скриншотов внутри игры.
Устранение рассинхронизации
Была одна редко-всплывающая проблема, из-за которой игроки спавнились с неправильным никнеймом, полом и внешностью и "выглядели" так для других игроков до тех пор, пока не умирали, либо не выходили за радиус действия их сетевых кодов. Причина крылась в неправильной обработке присоединившихся игроков сервером. Этот недочёт, к слову, мог также способствовать ряду других проблем связанных утечками и рассихнронами, но благо теперь он устранён.
Исправления интерполяции
Ранее имелся ряд проблем связанных с интерполяциями сетевого кода на стороне клиента. Из-за этих недочётов, игроки время от времени спавнились рядом со своим трупом. Теперь они исправлены.
Резкие падения FPS-a
Я продолжил работать над устранением падений кадров, во время путешествий по игровому миру. Сперва, за счёт оптимизации процесса разрушения, я устранил 150+ миллисекундных спайков, которые проявлялись во время деспавна построек. Далее я приступил к оптимизации пуллинга модели персонажей, который в данный момент включён по умолчанию. Ко всему прочему, я оптимизировал кучу различных компонентов мешей построек. Эти меры оптимизации устраняют около 20+ миллисекундных проседаний, которые проявлялись во время входа в зону сетевого кода.
Есть ещё несколько вещей, которые можно оптимизировать, но в целом, относительно прошлого месяца, мы очень хорошо продвинулись.
Дистанция 9 мм (пистолетных) патронов
При текущей модели снарядов, каждый тип боеприпасов имеет свою стандартную максимальную и минимальную дистанцию нанесения урона. У отдельных видов оружия, вроде болтовой винтовки, эти стандартные показатели дополнительно корректируются, чтобы соответствовать их уникальным свойствам (повышенная эффективность на дальних расстояниях, например). 5.56 патроны начинают терять урон после преодоления 20-ти метров, и далее урон падает до тех пор, пока пуля не пролетит 100 метров. 9 мм патроны имеют схожую механику, только числа не 20 и 100, а 10 и 80. Тем не менее, нам показалось, что оружие использующее 9 мм патроны всё ещё эффективно на дальних дистанциях, поэтому я дополнительно уменьшил их максимальную эффективную дальность с 80 до 60 метров. Это изменение поможет увеличить разрыв между винтовками и пистолетами, но при этом, сохранит высокую эффективность пистолетов, SMG и прочих на средних и близких дистанциях.
Доработка маяка
На этой неделе я сосредоточился на отделке интерьера, параллельно устраняя различные проблемы маппинга и геометрии. Также я сделал все необходимые коллайдерные меши, а это значит, что теперь маяк полностью готов к эксплуатации. Далее я буду его немного тестировать, после чего приступлю к LOD-мешам. Как только я с этим закончу, маяк будет готов к "открыть двери".
Естественные пещеры
На этой неделе я принялся работать над первыми рабочими вариантами пещер, а также взялся за сталагмиты / сталактиты и светящиеся мешочки. Если всё пойдёт по плану, то на следующей неделе у меня уже будет материал для демонстрации.
Звуки взрывов
Я на этой неделе в основном занимался завершением работы над новыми звуками взрывов. Теперь любой взрыв имеет свой собственный уникальный звук. Звуки взрывов на расстоянии теперь звучат более естественно, а звуки ракет и С4 звучат мощнее, чем звуки мин или "бобовых" гранат. Таким образом, теперь вы сможете на слух определять, рейдят вас, или кто-то просто наступил на мину. К тому же, я добавил дополнительные варианты звуков для вещей, которые взрываются по несколько раз подряд (ранцы с "бобовками", С4).
Также я устранил недочёт, который приводил к множественному воспроизведению звука взрыва.
Доработка звука
Ко всему прочему, я также поработал над улучшением множества других различных звуков. Шаги стали звучать чётче, звуки АК и болтовки стали менее резкими и были разбиты на сегменты, дабы не воспроизводится тогда, когда вы быстро прокручиваете позиции в хот-баре.
Огнемётная турель
На этой неделе я закончил с скальптом модели Zbrush, лоуполи, а также наложил базовые текстуры. Теперь наступила самая интересная часть - текстурирование! Завтра я улетаю в Японию на 10 дней, поэтому к следующему Dev-блогу я её закончить не успею. Всем сорян за, то, что так вышло, как вернусь, сразу примусь за дело!
Changelog
- Добавлены улучшенные звуки взрывов.
- Проведена доработка множества других звуков.
- Старая костяная броня более не дропается в луте (с следующим вайпом будет и вовсе удалена из игры).
- Проведены работы по оптимизации снарядов (на стороне CPU).
- Урон от P250 был снижен (с 50 до 40).
- Эффективная дистанция 9 мм патронов была снижена (с 80 до 60).
- Исправлен баг, из-за которого игроки иногда появлялись с неправильным ником, полом и внешностью.
- Исправлены различные небольшие проблемы связанные с обновлениями сетевого кода при респавне.
- Добавлена новая серверная команда: stabilityqueue (настройка частоты обновления стабильности построек).
- Добавлена новая серверная команда: surroundingsqueue (настройка частоты обновления окружения).
- Исправлено множество проблем связанных с пуллингом модели персонажа.
- Пуллинг модели персонажа был включен по умолчанию на 64 битных системах (команда для настройки - pool.players).
- Значительно улучшили производительность разрушения объектов (меньше спайков FPS-a).
- Оптимизировали меши построек и процесс их обновления (меньше спайков FPS-a).
- Устранили исключение, когда происходила попытка апгрейда строй. блока после его уничтожения.
- Устранили исключение, когда происходила попытка повернуть строй. блок после его уничтожения.
Комментарии