Jump to content
Korean Random
Sign in to follow this  
Jarek

11/07/2014 - Пятничный девблог #16

Recommended Posts

Garry Newman

Пятничный девблог #16
Уже прошла очередная неделя? Ох, она действительно пролетела незаметно! Вот над чем мы усердно трудились:


Прогресс ИИ

Андре продолжает работу над искусственным интеллектом. Хотя я уже объяснял, почему работа над ИИ занимает много времени, объясню это снова, если вы только недавно начали читать наш блог.Старый ИИ был основан на встроенную в Unity систему навмешей (навигационная сетка). Меши острова весили 400МБ. Мы не можем использовать эту систему на новых островах, потому что они процедурно генерируются и мы не можем подготовить меши для еще несгенерированного острова. ИИ должен быть динамичным. Вот чего смог добиться Андре:
http://www.youtube.com/watch?v=rEn5iHpFC-M


Дисконнекты теперь работают

Долгое время существовала ошибка при разъединении, когда персонаж навсегда проваливался под остров. Теперь ошибка исправлена и вы можете без проблем выходить и заходить на сервер.


Стены

Стены снова введены. Теперь вы можете их ставить прямо на землю, а не на фундамент. Я не уверен, что мы оставим такую возможность навсегда. Но я точно хочу добавить в игру заборы и изгороди когда-нибудь... потому что это будет круто.

Для стресс-теста сервера, я сделал размещение стен и фундаментов дешевым и быстрым, а их уничтожение тяжелым и медленным. А это значит, что когда вы зайдете на экспериментальный сервер - вы можете увидеть это:
post-1653-0-21846200-1405131073_thumb.jpg

Или даже это:
post-1653-0-54973300-1405131077_thumb.jpg
post-1653-0-59848500-1405131068_thumb.jpg

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


Исправления строковой таблицы

Строковая таблица - система экономии объема пропускаемых данных. Вместо передачи слов (например названия объектов), посылаются и обрабатываются числа. Это значит, что вместо того, чтобы послать 7-байтовое слово "объект", вы посылаете 2-байтовое целое число.

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


Наклонные фундаменты

Всегда хотел протестировать одну вещь. Что будет, если фундамент будет ставиться с наклоном в зависимости от земли? Что означало бы что для постройки дома нужно было бы искать ровный участок. Я заменил всего лишь одно слово в исходном коде и включил такую возможность, чтобы посмотреть как оно будет выглядеть.
post-1653-0-04648300-1405131080_thumb.jpg

Очевидно, что это может привести к довольно нереалистично выглядящим ситуациям, и вероятно в конце-концов приведет нас в введению некоторого рода опорных элементов. Но, честно говоря, в какой-то момент нам придется добавить такого рода элементы в любом случае.
post-1653-0-31504000-1405131084_thumb.jpg


Перенос регдоллов

Теперь регдолы правильно переносятся с модели персонажа - всесто того, чтобы просто появляться на месте его смерти. Это распространяется и на волков тоже!


Пещеры

Билл все еще сходит с ума по пещерам, и они выглядят просто невероятно потрясающе! Это по-прежнему не больше чем дизайнерский тест, но у Билла уже готовы заготовки на случай когда игра будет готова к добавлению пещер.
post-1653-0-58569200-1405131089_thumb.jpg
post-1653-0-08684700-1405131093_thumb.jpg
post-1653-0-34189100-1405131095_thumb.jpg
http://www.youtube.com/watch?v=1xNs6NLAjSU


Эффекты оружия

Теперь вы можете видеть и слышать, когда кто-то стреляет, огненные вспышки, звуки выстрела и все такое. Вспышки и звуки также добавлены и к вьюмоделям!


Анимация оленя

У кого-нибудь кроме меня появилось чувство, что Гуси любит заниматься анимацией животных? Все эти годы, потраченные в Counter-Strike не прошли даром. На этой неделе он работал над анимацией оленя!
Видео на данный момент недоступно
Смотрите это видео в следующем выпуске



Проблема с коллайдерами

Как только мы добавили постройки в Rust мы столкнулись с одной проблемой. Люди строили слишком много. В движке Unity есть ограничение в 64k коллайдеров и 100 игроков за 10 часов с легкостью достигают этого предела. Unity5 использует улучшенную версию физического движка - и эта проблема была исправлена, но Unity нас не очень любит, чтобы дать нам Unity5. В старой версии игры мы обходились некоторыми приемами для обхода ограничения. В самом начале игры все коллайдеры деревьев объединялись в один большой. Вот почему мы не можем удалить деревья из текущей версии. Это сохраняет нам около 5000 коллайдеров. Потом все коллайдеры одной постройки также объединяются вместе. Это работает, но чертовски трудно заставить это работать, еще чертовски труднее заставить это работать без лагов сервера. Отсюда проблема, когда игрок стреляет во что-либо - он наносит урон всему коллайдеру... и нужно постараться чтобы определить в какую именно часть он стрелял.

Да и черт с ним. Можно стать вечным рабом создавая все время подобные уловки.

В новой версии мы разделили мир сеткой по причинам сетевой производительности. Клиент игрока получает информацию только о тех объектах, которые находят в той же клетке что и он. Поэтому если рядом с объектом никого нет, то ожно смело отключить коллайдеры... И так далее это позволяет нам не достигать ограничения. И подобное деление на ячейки позволит нам дотянуть до выхода Unity5.


Производительность сервера

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

До (слева объем памяти в байтах):
post-1653-0-58528800-1405131097_thumb.png

После:
post-1653-0-15258800-1405131099_thumb.png

Можно увидеть почти 100МБ разницы в потреблении памяти. Вот так!

К тому же мы иногда используем InvokeRepeating для вызова функций каждую секунду (это кажется медленным путем для реализации, но это не так). При одновременной работе нескольких экземпляров InvokeRepeating, они иногда "сбиваются в кучу" и вызывают маленький <50мс лаг. Мы исправили это путем добавления во время повтора небольшой добавки в размере около 1%, так что теперь даже если они собьются в кучу, со временем они рассинхронизируются.


Северные земли

Ваш парень Петур продолжает осваивать Северный Биом.
post-1653-0-13613400-1405131186_thumb.jpg
post-1653-0-19281000-1405131190_thumb.jpg


Уголок концепта

Теперь самая любимая всеми часть - концепт арты с прозрачным фоном!

Генераторы от Мэг:
post-1653-0-93014400-1405131201_thumb.png

Постройка от Пола:
post-1653-0-19771900-1405131212_thumb.png

Нагромождение хижин от Мэг:
post-1653-0-50326200-1405131230_thumb.png

Лестница в хижине от Пола:
post-1653-0-21399500-1405131242_thumb.png

Безумные каракули от Скотта:
Basic_Structures.jpg


Подводя итог

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

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

Система комментирования на сайте вернулась. Пожалуйста, не надо снова оставлять эротических рассказов. Edited by Content Manager #2

Share this post


Link to post

Short link
Share on other sites
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...