Dev-блог 23

KosiakS

Просвещённый
Команда форума
Пятничный Dev-Блог 23

От 29 августа 2014 года.


Мы портировали игру к Unity 5.

Изменения окружающего освещения.

Новая система окружающего освещения в Unity 5.
Ранее у нас была только 1 опция окружающего освещения, только один цвет плоскости. В условиях освещения это выглядит так:
В 5-ой версии Unity мы получили намного больше опций для неба, экватора и земли. Это также очень хорошо взаимодействует с системой неба Андре.

В игре это добавляет реалистичное, мягкое освещение.

Изменения физики.

Физический движок был обновлён до Unity 5. Ранее нам приходилось начинять "костями" буквально всё, если этого не сделать, при спавне и перемещении предметов падала производительность.
Сейчас это в прошлом, ровно также как и все эти "кости".

Это дало нам бешеную производительность на сервере, по сравнению с прошлой версией.

Животные повсюду.


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

Разумеется это временно, в будущем мы займёмся этим, но сейчас, на стадии тестирования, животные должны быть доступными.

Лимит коллайдеров.

Лимит коллайдеров на Unity 4 составлял 65 000. В старой версии игры мы сливали все строительные компоненты в один.
Это было не идеально, т.к. каждый раз когда это происходило, вы получали порцию лагов на сервере. И рано или поздно сервер "наполнялся" после чего, вам ничего не оставалось, кроме как вайпнуть его.

В Unity 5 этого лимита нет. Я не могу сказать насколько это глобально, но мы надеемся получить все остальные системы, которые будут отлично друг с другом взаимодействовать, и при всём этом убрать потребность в вайпе серверов. Отсутствие лимита на коллайдеры - большой шаг к этой цели.

Отражение.

Unity 5 дал нам пробы отражений. Из того, что мы можем сказать - это нововведение не готово на стадии beta-тестирования Unity 5. Но Андре подключил систему, которая создаёт мапы отражений в зависимости от времени суток.

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



64-х битный редактор.

Я даже говорить вам не буду, сколько у нас было ошибок (out of memory) во время разработки Rust.
Мы перешли к позиции с процедурной картой, и в это время мы могли запустить это в редакторе лишь раз, после запуска это быстро подводило нас к лимиту 32-битного редактора (2GB), чтобы продолжать, нам приходилось постоянно его перезапускать.

С 64-битным редактором - это перестало быть проблемой. Сейчас мы можем использовать 128TB, правда я не уверен что нам в данный момент понадобятся эти 128TB.

Руда.


Валуны теперь содержат отдельно металл, серу и камни. Это значит, что многое из крафт-листа стало доступным.

Speedtree.

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

Оптимизация.

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

Однако проблемы никуда не исчезли, но теперь они выявляемы.
Пол беды в том, что при спавне на сервере, вам отсылаются данные о всех игроках, которые были присоединены к серверу и тела которых не уничтожили. Если вы решитесь присоединиться к серверу, вам отошлют данные о 11 000 "спящих", которые когда либо спавнились и небыли убиты во сне.
Спавн-префабы Unity довольно медлительны. Конечно некоторые вещи стали заметно лучше с апгрейдом Unity, но для спавна 11 000 спящих игроков, это по-прежнему будет занимать несколько секунд.

Тем не менее, затеяно это всё было для того, чтобы выявить все потенциальные проблемы, ведь только после их выявления, мы сможем найти потенциальные решения. Например, сделать так, чтобы в первую очередь отсылалось только то, что близко к игроку, а уж потом тихим сапом всё остальное. Для каждой проблемы есть 100%-ое решение, именно поэтому мы любим то, чем занимаемся :)

Факел.

Дэн закончил новую модель факела, а также смоделировал для него держатели.
Мясцо.

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

Howie представил, как мы можем установить крыши на наши дома и как они будут выглядеть. Мы пытались свести к минимуму количество различных частей, которые пришлось бы обрабатывать игроку во время процесса установки.
А также мы создали новый борд на trello со строительными компонентами.




А также он закончил с концептами лестницы.


Ящики.

Пол нарисовал множество ящиков для лута.
Известные проблемы.

Так как Unity 5 находится в стадии beta-тестирования, понятное дело без ошибок не обошлось. Некоторые вещи навернулись прямо сейчас. Постепенно всё придёт в норму, ближе к релизу Unity 5.

  • Голосовой чат отключен.
  • Ввод пещер сломался.
  • Тени постоянно мерцают (мне кажется так было на всех версиях Unity).
  • Непонятные обводки вокруг листьев деревьев.
  • Рендеринг деревьев плохо сказывается на FPS.
  • Motion Blur отключен по умолчанию (есть проблемы с шейдером теней).
  • Adaptive Tonemapping отключен (на OSX ночь слишком яркая).
  • Процедурное виртуальное текстурирование отключено (поправим его после тестирования проблем).
  • Пользовательский интерфейс может перестать отвечать на запросы (Прошивка Unity сейчас лучше, это может даунить UI).
  • Мы всё ещё используем старый рендерер, потому что у нового пока нет тумана.

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

Что дальше?

В итоге, мы потеряли неделю портируя игру на Unity 5, однако теперь мы заняли шикарную позицию в будущем. Вы понятия не имеете каково это. Нет больше ошибок из за памяти, нет лимита коллайдеров. Будущее выглядит светлым.
И на самом деле нам не так много осталось сделать, до "базовой линии" (подразумевается положение старой версии игры, относительно геймплея).

AI. Очевидно, волки и медведи должны атаковать игрока, олени и кабаны должны от него убегать. Ну и куриц надо тоже добавить.

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


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