
Симулятор расшаривания спальников
Разрешить другу
Это то, о чём мы думали долгое время, было так что мы то отказывались от этой идеи, а потом вновь возвращались. Нашей главной проблемой с этим нововведением было то, что игроки используя суицид будут быстро появляться у своих друзей. Но в принципе это не является какой-то великой проблемой, и мы ввели это в игру.
Сама идея проста, насколько это возможно. Вы зажимаете Е на вашем спальном мешке, выберете assign to friend, найдите ник своего друга в списке и кликните. Вот и всё, теперь ваш друг может спавнится в этом спальном мешке. Список игроков включает в себя ваш френдлист и список всех игроков на сервере.
Очевидно будут всплывать некоторые недочёты. Возможно я буду прописывать вас в огромном количестве своих спальных мешков, на которых будет написано что вы сучара. Быть может я сделаю спальник для каждого бомжа на сервере и таким образом буду запирать их в своей тюрьме. Честно сказать, не думаю что на данный момент будут действительно серьёзные последствия и в любом случае мы будем стараться решать проблемы по мере их возникновения, вместо отключения этого элемента геймплея.


Больше никакого разрушения своих построек
Демолишинг (разрушение собственных построек) не используется по назначению и в принципе не нужен, таковы наши выводы.
При рейде чужой базы вы первым делом ищете местный шкаф, мы считаем, что у вас не должно быть возможности найти все секретные комнаты за короткое время, у вас не должно быть возможности снести весь дом за пару минут, а также поставить шкаф рядом с домом где его пока нет, и с лёгкостью ограбить базу, всё это обычный здравый смысл геймдизайна.
Единственный законный способ использовать демолиш - реконструкция вашей базы, однако на данном этапе мы считаем, что этим можно пожертвовать, относитесь к стройке более обдуманно, возможно в будущем мы добавим доп.средства для реконструкции базы, но сейчас нам нужно посмотреть как эти нововведения повлияют на геймплей, прежде чем вводть что-то новое.
Преимущества отключения демолиша очевидны, при рейде вашей базы, когда игроки найдут ваш шкаф, они не получат доступа ко всем комнатам, вы можете сделать несколько укреплённых комнат, в которых у вас будет время чтобы защититься от нападающих.
Пропавшие стены
Люди потеряли свои стены, это возникло потому что сообщение с описанием этих стен почему-то не дошло до клиента. Это не тот элемент, который затрагивает лишь строй. блоки, это включает в себя любой объект, который отправляется с сервера.
Для обнаружения и предотвращения проблемы мы ввели меры, по котором вас будет дропать с клиента при отсутствии пакетов, это не решает проблему, но это предотвращает её эксплуатирование в корыстных целях.
Я потратил немало времени на то, чтобы понять где мы ошиблись, проблема выявляется в среднем у одного из ста игроков. Мы ведём логи и получаем информацию надеемся что после патча мы получим ответы исходя из логов. Я просто хотел бы сказать, что проблема известна и "лекарство" разрабатыватся. Мы высоко ценим любую информацию, которая поможет нам решить эту проблему.
Баг с фризом
На прошлой неделе у нас был баг с фризами, после 10-20 минут игры, всё начинало зависать, после долгой возни я таки поймал этот баг и отладил, оказалось проблема была в звуковом движке Unity.
После проб и ошибок, мы выяснили что при отключенном звуке атмосферности баг не всплывает, поэтому пока-что атмосферный звук выключен.
Баг "лежит" где-то в Unity, на следующей неделе буду искать возможные решения проблемы.
Админ-команды
Вы наверняка наблюдали ситуацию, где бегает голый чувак, а за ним следует линия и маленькие кубы, это результат того что администратор включил у игрока режим "отладки", и чтобы это пропало админу нужно сделать тоже самое ещё раз. В общем, мы решили убрать подобный инструментарий у администраторов, мы также отключили ещё часть админских читов, типа инстакрафта.
Эффекты на экране
Мы добавили несколько эффектов состояний. Эффекты для холода, жары и направленного повреждения - так что теперь вы будете знать откуда на вас напали. Сделали их максимально ненавязчивыми, но в то же время заметными.




Исправления сети
С момента прошлого патча я пофиксил просто кучу неисправностей в сетевом коде. Люди не могли присоединиться к некоторым серверам, потому что команда server.ip (которую использовали для коннекта по ip) попросту не работала. Игроки также вылетали с серверов без причины, точнее причина была (например кик), однако сами игроки причины не видели, из-за чего были недоумения.
Оптимизация сервера
Владельцы серверов с онлайном 100 и выше выявили то, что серверный FPS значительно опускался. Проблема сама по себе не новая и всплывает уже давно. Я потратил много часов на профайлинг одного из наших серверов с онлайном в 150+ и выявил много брешей в производительности. Сейчас вы должны заметить значительную прибавку в производительности. В качестве бонуса средняя производительность на уровне клиента также выросла.
Проблема была в колоссальной утечке памяти, я исправил этот баг когда удалил некоторые элементы, а также был плотно занят оптимизацией, подробнее в следующем пункте:
Диагностика
Было трудно понять что творилось на серверах, то есть - какие объекты есть в мире, их количество и т.д. Подобная информация крайне важна для процесса оптимизации использования памяти.
Так что я добавил команду dump, которая выводит всю информацию в папку.
Информация включает в себя следующее:
- Информация о системе
- Список рут геймОбъектов, сгруппированные по наименованию и упорядочены по кол-ву.
- Список рут объектов сгруппированные по наименованию и упорядочены по кол-ву вместе с "детьми".
- Полная иерархия геймОбъектов включая число компонентов.
- Список подключенных игроков и их сетевая статистика.
- Список всех инстанс объектов сгруппированные по типу и упорядочены по кол-ву.
- Список всех инстанс скрипт Объектов сгруппированные по типу и упорядочены по кол-ву.
Вся эта работа действительно имеет ценность. чем больше объектов, тем больше памяти потребляется, после команды dump, мы узнали что было куча объектов, в которых не было необходимости.
Простой пример: оружие - камень, имеет 1 геймОбъект + 3 LOD модели (которые являются его "детьми") серверу эти лоды не нужны, удалив их мы получаем 3 свободных геймОбъекта, а учитывая что на сервере может быть по 500 каменей, мы экономим 1500 геймОбъектов.
А теперь представьте тоже самое с факелом, который содержит 11 объектов или каким-нибудь деревом, которое до оптимизации состояло из 20+ объектов.
Таким образом мы приближаемся к идеалу, однако необъяснимые утечки памяти всё ещё есть. К сожалению утечка памяти прослеживается на нормальных объектах, а не Unity. Я займусь проблемой, но это будет сложно.
Рестарты сервера
Вас явно подбешивает, что сервер перезагружается без предупреждения, особенно если вы стоите в поле с полными карманами ресурсов, так что я добавил команду restart, которая уведомляет всех на сервере о грядущем рестарте. После команды вам даётся 60 секунд, чтобы перейти в безопасное положение.
Исправления самодельного пистолета (Eoka)
Хелкус и Гусман сделали самодельный пистолет таким-же как в Legacy - то есть ненадёжным + теперь он в стандартном наборе рецептов.
Repair Bench
Хелкус закончил с Repair Bench! Всё также, перетаскиваете предмет в панель ремонта и жмёте repair. Стоимость около 40% от стоимости предмета, механика ремонта такая же как раньше, то есть каждый раз, когда вы ремонтируете предмет, его максимальный запас прочности уменьшается, что рано или поздно приведёт к полной негодности.


Климаты
Хелкус добавил фактические биомы с разными показателями температур, это значит что вы, находясь в Арктике, будете мёрзнуть, а в пустыне наоборот перегреваться (днём), одежда будет защищать вас от холода, однако металлическая броня будет его усиливать.
Значения ещё будут меняться, но вы должны иметь возможность оказывать влияние на показатели в зависимости от того, где вы ходите и что наденете.
Метаболизм
Радиация теперь поделена на 2 типа, радиационный уровень и радиационное отравление. Работает это как в Legacy, то есть есть в определённой области есть фон радиации, находясь в нём уровень отравления возрастает.
Прыгнув в воду вы можете "смыть" часть отравления радиацией.
Мы также добавили эффект "комфорт", в будущем он будет взаимодействовать с кучей вещей, но в данный момент он лишь защищает от холода и даёт реген здоровья. Исцеление усиливается, если рядом с вами будут ещё люди. Пища кстати не имеет эффекта моментального исцеления, сейчас для исцеления вы должны усвоить калории.
Ну и целом было много балансировки. Дайте нам знать о вашем мнении.
Всё остальное:
- Исправили косяк с пончо (кожаный плащ).
- Стабильность не возрастает если server.stability отключена.
- Лампы теперь разрушаемые.
- Стрелы с луком теперь доступны в стандартном наборе рецептов.
- Животные теперь создают шум при атаках.
- Исправлена баг, атаки игроков не воспроизводились для других.
- Исправлен баг с приготовлением и переплавкой.
- Изменение в метаболизме отсылаются к игроку без задержки.
- Снизили яркость факела.
- Атаки молотом теперь могут ускорять починку.
- Исправили баги с видом от 3-го лица (доступно только админам и разработчикам).
- После бана игрока его сразу же кикает с сервера.
- Самолёт теперь не летает слишком высоко.
- Исправления лута, содержал базовые чертежи.
- Рикошеты снарядов теперь менее рандомны.
- Сгладили переходы в эффекте экрана от радиации.
- Звуки счётчика гейгера стали тише.
- Исправлена баги с переименованием спальных мешков.
- Серверы работающие в небезопасном режиме (insecure) отключаются от VAC.
- Пользователи с EAC и VAC банами видят только небезопасные сервера.
- Анти-рад одежда защищает от радиационного воздействия а не отравления.
В целом:
Извините за "технический" блог. Мы сделали много хорошего на этой неделе. Взял несколько пунктов из приоритетного списка.
На следующую неделю у нас есть уже много готовых вещей, которые находятся в очереди, я собираюсь всё это добавить и поработать над некоторыми весёлыми вещами.