Dev-Блог 49

Статус
В этой теме нельзя размещать новые ответы.

KosiakS

Просвещённый
Команда форума
2015-02-26_20-01-17.png

Симулятор расшаривания спальников

Разрешить другу

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

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

Очевидно будут всплывать некоторые недочёты. Возможно я буду прописывать вас в огромном количестве своих спальных мешков, на которых будет написано что вы сучара. Быть может я сделаю спальник для каждого бомжа на сервере и таким образом буду запирать их в своей тюрьме. Честно сказать, не думаю что на данный момент будут действительно серьёзные последствия и в любом случае мы будем стараться решать проблемы по мере их возникновения, вместо отключения этого элемента геймплея.
2015-02-26_19-55-21.png

2015-02-26_19-54-51.jpg

Больше никакого разрушения своих построек

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

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

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

Пропавшие стены

Люди потеряли свои стены, это возникло потому что сообщение с описанием этих стен почему-то не дошло до клиента. Это не тот элемент, который затрагивает лишь строй. блоки, это включает в себя любой объект, который отправляется с сервера.

Для обнаружения и предотвращения проблемы мы ввели меры, по котором вас будет дропать с клиента при отсутствии пакетов, это не решает проблему, но это предотвращает её эксплуатирование в корыстных целях.

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

Баг с фризом

На прошлой неделе у нас был баг с фризами, после 10-20 минут игры, всё начинало зависать, после долгой возни я таки поймал этот баг и отладил, оказалось проблема была в звуковом движке Unity.

После проб и ошибок, мы выяснили что при отключенном звуке атмосферности баг не всплывает, поэтому пока-что атмосферный звук выключен.

Баг "лежит" где-то в Unity, на следующей неделе буду искать возможные решения проблемы.

Админ-команды

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

Эффекты на экране

Мы добавили несколько эффектов состояний. Эффекты для холода, жары и направленного повреждения - так что теперь вы будете знать откуда на вас напали. Сделали их максимально ненавязчивыми, но в то же время заметными.
2015-02-26_19-34-14.jpg

2015-02-26_19-36-09.jpg

2015-02-26_19-37-48.jpg

2015-02-26_19-45-30.jpg

Исправления сети

С момента прошлого патча я пофиксил просто кучу неисправностей в сетевом коде. Люди не могли присоединиться к некоторым серверам, потому что команда 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% от стоимости предмета, механика ремонта такая же как раньше, то есть каждый раз, когда вы ремонтируете предмет, его максимальный запас прочности уменьшается, что рано или поздно приведёт к полной негодности.
2015-02-26_19-47-35.jpg

2015-02-26_19-50-04.jpg

Климаты

Хелкус добавил фактические биомы с разными показателями температур, это значит что вы, находясь в Арктике, будете мёрзнуть, а в пустыне наоборот перегреваться (днём), одежда будет защищать вас от холода, однако металлическая броня будет его усиливать.

Значения ещё будут меняться, но вы должны иметь возможность оказывать влияние на показатели в зависимости от того, где вы ходите и что наденете.

Метаболизм

Радиация теперь поделена на 2 типа, радиационный уровень и радиационное отравление. Работает это как в Legacy, то есть есть в определённой области есть фон радиации, находясь в нём уровень отравления возрастает.

Прыгнув в воду вы можете "смыть" часть отравления радиацией.

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

Ну и целом было много балансировки. Дайте нам знать о вашем мнении.

Всё остальное:

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

В целом:

Извините за "технический" блог. Мы сделали много хорошего на этой неделе. Взял несколько пунктов из приоритетного списка.

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