Dev-блог 99

Posted on 25 February 2016 by Craig Pearson



Мишени, прекрасные данжи, грядущая система опыта, детальное рассмотрение женской модели персонажа, а также многое другое.

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

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

Websocket RCON - будущее. Он работает практически также, за исключением того, что с ним может взаимодействовать любой браузер. "Пряники" тут достаточно очевидны. Вы сможете сделать комплексный RCON-инструмент прямо внутри браузера с помощью одного html-файла. Участие сервера тут будет косвенным.

Эта новая система не совместима со старой, то есть заменяет её, поэтому по умолчанию она отключена. Чтобы запустить свой сервер с websocket RCON - впишите в командной строке "rcon.web 1".

Моя надежда заключается в том, чтобы иметь на страницах github простое веб-приложение с открытым исходным кодом. Тем самым сообщество поможет получить доступные варианты приложения на всех видах устройств и ОС.

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

Система опыта
На этой неделе система опыта была залита на ветвь pre-release. Сейчас она по виду напоминает мешок с дерьмом, не советую вам туда лезть и пробовать её использовать. Помимо всего прочего, она работает на бета-версии Unity 5.4, а посему краши игры там вполне обычное дело. Я предполагаю, что релиз этой версии движка они выкатят не раньше следующего месяца, будем надеяться что к тому времени стабильность там образуется.

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

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

Сервер Linux
У ребят из нашего Slack-канала получилось сделать рабочий сервер и благодаря им, теперь у вас есть возможность скачать и запустить полностью рабочий сервер на базе Линукса.

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

Самым главным преимуществом является то, что сама ОС Linux бесплатная, что позволяет значительно экономить средства в зависимости от количества и место на хостинге ваших серверов.

Dungeons SewersVincent Mayeur
Ты готов к демонстрации прогресса по большим рэдтаунам? На этой неделе у меня есть для тебя текстуры коллекторов.



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

Трубы близ больших рэдтаунов
Ещё одна задача, над которой я работал.





Улучшения баланса нагрузки

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

Отставка предзагрузки системы стабильности
Я "дёрнул рубильник" и теперь система стабильности не загружается при старте сервера. Если вы не забыли, некоторое время назад я добавил сериализацию стабильности, что ускорило старт сервера. С последними изменениями, рестарт сервера ускорился ещё немного.

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

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



Зубы модели персонажа
Новые модели персонажа также получат новые зубы, планирую закончить с ними к концу дня.



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



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

FemaleClothing.gif


Импровизированный холодильник (концепт)
Если в будущем мы ударимся в реализм и игрокам потребуется прохладное место для хранения пищи, то импровизированные холодильники будут как никогда кстати.



Настенное "колесо удачи" (концепт)
Игроки Rust сами по себе достаточно креативны, они часто придумывают игры внутри игры. Сей инструмент позволит развиваться в этом направлении. Думаю люди смогут найти крутое применение этому.



Entity Destruction Tracking
Если вы не программист, то вы можете смело пропускать этот раздел.

Есть кое-что, что большинство людей считают ужасным, когда начинают работать с Unity - это способ, которым вы говорите движку уничтожить вещь. Есть только один метод для уничтожения чего угодно: объекта, предмета, скрипта, а в некоторых случаях - исходных данных, из которых создаются объекты игры. И этот метод уничтожения может вызываться из любого объекта Unity. Проблема в том, что у вас нет возможности получать код ошибки, когда делаете что-то не так. Вы можете попробовать стереть текстуру на предмете, а на самом деле уничтожить предмет. И у вас не будет оповещения об этом. Вы можете попробовать удалить объект, а вместо этого стереть его "поведение".
И когда вы однажды создадите большой проект с тучей сетевых и самописных событий, вместо встроенных в Unity, вам придется создавать собственный метод для уничтожения объектов в игре. И все будет шикарно, пока кто-то где-то не вызовет встроенный в Unity метод. Но даже если вы это заметите, вы не сможете отследить, откуда возникла ошибка, так как выполнение метода отсрочено во времени. Мы так часто наступали на эти грабли на последней неделе, что стало совсем не весело.
Чтобы избежать этих проблем в будущем, я добавил наш собственный метод уничтожения, который как правило выдает код ошибки, указывающий какую глупость мы совершили. Будем надеяться, что это сэкономит нам время на нашем пути.
Если вы - разработчик игр на Unity, серьезно подумайте, что лучше сделать это заранее. (Спасибо за этот отрезок Hrustex)

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

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



Changelog
Added websocket rcon
Fixed Thomson skin icons
Updated EAC
Rcon things during load
Linux server now works (!)
Added reactive target deployable for target practice
Added entity destruction tracking (error when destroyed incorrectly)
Fixed armored foundation steps removing the sides of attached foundations
Fixed game object hierarchy errors caused by pooling when disabling player models
Completely retired stability warmup on server start (much faster startup time)
Load balancer takes more time per frame when working off large queue backlogs
Made the kill console command kill immediately (instead of entering wounded state)
Fixed active item not dropping when killed without entering the wounded state first
Removed dynamic memory allocations from the deferred decal refresh
Added decal.cache convar (refresh every frame vs. only when marked as dirty)
Fixed trees, ores, barrels and collectables sometimes spawning midair near rocks
Fixed cargo plane propellers not fading into fog
 
Последнее редактирование:
офигенчик, ждём реализации и стабильности задуманных идей
 
Сверху