Rust news
SOCIAL:
Filed under: DevBlog, Новости Rust

Rust DevBlog 50

От 5 марта 2015 года.
Опубликовал: Garry Newman
h3ePtBkte7Q[1]
Местность, звук, усиление и правка багов.

Генерация местности

André Straubmeier
Первоначальный вариант процедурно сгенерированных дорог имел множество недочётов, вроде непонятного рода маршрутов и пересечений, таким образом смысл в таких дорогах отсутствовал.
Сейчас большинство этих недочётов должны быть исправлены, несмотря на улучшение системы генерации дорог, сам процесс улучшения является постоянным.
Также мы добавили первоначальный вариант мостов, которые пока находятся на стадии разработки, однако в них есть необходимость для связи монументов и ориентиров.
Экспериментируя во время работ с дорогами мы добавили реки. С одной стороны, реки это хорошее дополнение для окружающей среды, с другой сейчас они имеют уйму недостатков, конфликтуют с мешем(mesh) местности. Когда на местности меняются LOD’ы, отображение становится ебанутым в край. Тем не менее мы решили добавить их в процедурную генерацию карт. Конечно с первоначальной версией рек будут проблемы, например пересекая реку вы не промокаете — будем решать их вместе.
GloeeQzlgXU[1]
Есть приятный бонус от рек, которые протекают со склонов, они позволяют нам убрать много воды с нулевого уровня. В целом это даёт нам больше пространства для проектирования местности, как один из примеров увеличить кол-во горных местностей.
mLzqeQFcFfM[1]
Новая форма рельефа также даёт нам больше возможностей в текстурировании, расположение биомов теперь зависит как от широты (близость к северу или югу), так и от высоты, что приводит к большему разнообразию местности.

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

Ошибки с пакетами

Когда мы перешли на Raknet, у нас появилось много проблем с элементами, которые не доходили до клиента. Сервер посылал их, но они исчезали. Исследование подтвердило что элементы просто не доходили до клиента, однако у нас было много «левых» пакетов (invalid packets).

Далее я добавил контрольную сумму (checksum), люди у которых отсутствовали элементы — кикались с сервера, мы предполагали, что это возникает в следствии проблем с сетью или плохим интернетом.

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

После прочтения множество сообщений от игроков (спасибо вам), я заметил паттерн. Который дробил «жирные» пакеты на части и собирал их вместе.

Я настроил логгинг процессов, который подтвердил это. Некоторые пакеты дробились, а потом собирались вновь. Во время возникновения ошибок Raknet неправильно обрабатывал их и собирал не в том порядке. После фикса у нас больше не возникало проблем с этим, однако я продолжу смотреть в оба.

Обновление звука

Alex Rehberg
Мы подкорректировали уровни громкости и закончили с полным переходом на новую систему звука, что даёт нам больше контроля над тем, как будут «играть» те или иные вещи.

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

Перемещение под водой также будет воспроизводить звук всплесков воды и заглушать остальное аудио.

Статистика сети

В качестве побочного эффекта отладки проблем с сетью, у нас появилось кучу команд статистики. И теперь на отдельном сервере можно видеть весь сетевой трафик, а также пинги игроков.

net.log 0 или 1 — логи всего сетевого трафика в файл csv.
dev.netgraph 0 или 1 — отображение сетевой статистики в клиенте.

«Вы уже подключены»

Была проблема с сетью, при кике с сервера, на деле вы оттуда не удалялись, что в итоге не позволяло вам приконнектиться обратно (т.к. сервер думал что вы уже там), и кол-во игроков в статистике сервера никогда не опускалось…

Баги с лерпом

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

Нападения со стороны животных

Сейчас, когда на вас нападёт волк, вы сразу поймёте откуда т.к. на экране показывается направление удара.

Смерть пока ещё далека от идеала, на следующей неделе мы сделаем что-то получше мигающего «you’re dead».

Армированный тип строй.блоков

Винс закончил с топовым тиром строй.блоков. Идея в том, что он сочетает в себе свойства дерева, камня и метлла.

Мы хотим добиться того, чтобы тиры блоков не выбирались в линейном порядке, а чтобы они выбирались из-за своих специфических свойств, но топовый тир будет содержать в себе полезные свойства всех остальных тиров. Придётся «попотеть» чтобы привести этот план в жизнь, но мы будем стремиться к этому.
FFbVu0ECsqA[1]

Анти-чит

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

Эксплойты

Эксплойт с гаммой является старой проблемой, и не сказать что его было легко устранить. Мы тестируем то, что могло бы сделать его бесполезным, Теперь, когда что-то становится действительно тёмным — оно просто теряет цвет и становится чёрным, в следствии мы теряем немного точности изображения, однако все становятся в один ряд и теперь вам не придётся пользоваться им только из-за того что все им пользуются.

А также некоторые люди догадались использовать вид от 3-го лица вовремя сна, чтобы смотреть сквозь стены, теперь во время сна вы смотрите глазами персонажа. Это нововведение включало в себя новый мод камеры — просмотр из глаз персонажа (он также будет использоваться во время смерти персонажа и т.д.), администраторы могут переключится на этот вид нажав F3, это довольно весело и мы даже хотим ввести этот мод в игру, но если это и случится, то месяца спустя.

Вайп

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

Вайпается только карта, рецепты остаются у вас.

Остальное:

  • «Смягчили» эффекты на экране.
  • Исправили таблетки от радиации, ранее не работали.
  • Добавили грейд на оконные решётки.
  • Исправили кол-во слотов в костре.
  • Добавили noclip для админов (правый шифт и L)
  • Доработали лутспавн, урон от оружия и прочий баланс.

В целом:

На этой неделе программирование нехило дало мне «прикурить», почти всё своё время я потратил на отладку сети или переживаний по ней, даже сейчас когда это печатаю — в дрожь берёт, подумав о том что всё таки проблема ещё не устранена. К счастью команда Rust поспешили ко мне на помощь и сделали этот блог интереснее, чем он мог быть.

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

На следующую неделю у меня есть список вещей, над которыми я собираюсь работать, в приоритете урон по постройкам, в любом случае всё нуждается в балансировке и доработке.
К слову, рендеринг построек сейчас слишком медленный, собираюсь над этим поработать. В целом производительность хороша, особенно на серверном уровне, хотя утечки памяти ещё имеются, надеюсь это обновление сделает положение ещё лучше. В действительности серверная производительность просто шикарна, помнится как мы пытались добиться 30 fps, тратив на это 2 дня, а сейчас уже имеем 200+fps, надеюсь что всё продолжится в том же ключе.