Dev-блог 95

От 28 января 2016 года.

Опубликовал:Craig Pearson



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


Музыка

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

Новые блоки стены
Они уже реализованы в игре и полностью функциональны. Мы в курсе о наличии бага, из-за которого на решётках и сетках имеется опция "открыть/закрыть". Он будет устранён в ближайшее время. Кстати, спасибо Багсу с Rustafied за картинку в шапке блога.

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

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

Так или иначе, этот люк ещё нужно как следует протестировать, поэтому на основной клиент он пока добавлен не будет.

Краши
На этой неделе я рассмотрел проблему крашей и запилил приложение, отслеживающее и анализирующее каждый вылет.

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

Топовый репорт - “nvwgf2umx”, который являет собой какой-то dll драйвер для Nvidia, по крайней мере я так предполагаю. Мы ни хрена не можем с этим поделать. Это либо проблема самой Nvidia, то есть проблема нехватки памяти, или проблема Unity. Я обратился в службу поддержки Unity надеясь на то, что они укажут на причину этого недуга.
Следующая проблема в топе - "steam_api". С этим мы справиться сможем. Steam.api.dll используется в 32-х битных версиях Rust на Windows. Теперь, судя по частоте крашей, я предполагаю, что мы использовали неправильную версию этого dll, так что я обновил все наши dll связанные со Steam таким образом, чтобы все они были одной и той же версии. В связи с этим, надеюсь на уменьшение количества краш-репортов по этой теме.
Остальные проблемы в большинстве своем связаны с рендером или звуковой системой, и скорее всего происходят в рамках Unity. О некоторых из них я уже им доложил и намерен дальше сообщать, пока такого рода проблемы не исчезнут из топа.

4-кратный оптический прицел
Так как на прошлой неделе речь зашла о модах на оружие, то на этой неделе, очевидно, мы и должны были этим заняться. К тому же, этого нам не хватало с самого начала. Модель пока что временная, покуда Том не закончит свою работу над новой, а работает этот мод именно так, как вы думаете. Прицел занимает тот же слот, что и holo-sight и предоставляет четырехкратное увеличение в режиме прицеливания и небольшое уменьшение отдачи при стрельбе. Скорее всего, это в корне поменяет игру и по первой наверняка будет слишком имбалансированным, так что мы будем наблюдать за ним всю следующую неделю и, по ходу дела, слушать ваши отзывы. Сам по себе мод пока сыроват, но мы будем продолжать работу над ним. Наслаждайтесь.





Исправления и улучшение модов на оружие
У модов, которые мы добавили на прошлой неделе, было обнаружено несколько багов. Один из них заключался в том, что лазерный прицел отображался даже будучи выключенным - H@H@, сейчас с этим покончено. Также, этот фикс позволит нам добавить бонусы и "пряники" в зависимости от того, целитесь вы или нет. Кроме того, я устранил эксплойт связанный с тем, что игроки могли менять оружие таким образом, чтобы только им были видны бонусы от фонариков/лазерных прицелов.

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

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

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

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

Clothing TweaksTaylor Reynolds
На этой неделе, я вводил в одежду некоторые корректировки. Я воспользовался возможностью переработать скиннинг сразу на всей одежде. В частности, область плеча деформировалась странным образом на всех элементах одежды. Это достаточно сложная область и она никогда не будет доведена до идеала, но вы уже можете заметить насколько менее заметными стали эти странности с растяжением текстур.



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



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

Plants BalanceGarry Newman
We had a problem with pumpkin plants: on one of our servers we had 400k entities, and over 100k of them were pumpkin plants. The problem is that they just don’t die. They keep giving seeds, but they don’t die off. The long term goal to solve this is that you’re going to have to water them and shit to keep them alive.

For now I’ve hard-coded their mortality so they live for up to seven seasons or three harvests, whichever comes first.

FlamethrowerTom Butters
I’ve made some big progress with the flamethrower. Helk has spotted a few things that I need to fix, but you can have play around with the model below! If your internet is rubbish here’s some screenshots:




ScopeTom Butters
Because we’ve got the attachments in game now, we’re making more attachments… duh! So here’s a scope model you can play around with. And some screenshots.




Sluggish Player MovementAndré Straubmeier
You know how player movement in Rust often felt sluggish, delayed or indirect? Turns out this wasn’t as much the player movement itself but the post-physics camera position smoothing which incorrectly applied to horizontal player movement. This is now fixed and to me 60 FPS finally feels like 60 FPS again, which is great news for those who play at 60 FPS – congratulations to the two of you.

Conditional Models 2.0André Straubmeier
I finally sat down this week and thought about the problems with our building conditional model system and ways to improve it. If you wonder what the hell conditional models even are – they’re things like wall corner pieces or roof sides that have to appear or disappear depending on the building blocks that surround them.

Here’s a list of things the new system should be able to do:

  • Run on the server to be able to change colliders (like roof sides)
  • Free of physics queries (performance)
  • Fast enough to run on all building blocks (view distance)
  • Remove pieces of building meshes that cannot be seen (like inside foundations)
  • Tie in nicely with batching (without forcing batch refreshes all the time)
  • Be reliable (no more incorrect wall corner pieces)
The primary reason to do this now is because it will help us improve the performance of huge player-made structures, but it will also allow us to do more complex conditional model checks in the future. I’m not completely done with it just yet, but things are looking very promising so far.

Animal FootstepsAndré Straubmeier
I’m not quite sure what happened, but our project animal footstep folder was a complete mess and animals were missing footstep sounds on most surface types or using incorrect sounds on those surfaces that were set up. This is now fixed, so you can once again hear bears coming shortly before they maul you to death.

XP and LevellingGarry Newman
I’ve been working on the levelling and XP system on and off. I’ve made some quite good progress. It’s still about a month away from being ready to be tested, as we want to really get it together, working and polished before throwing it out to the public.

The systems of gaining XP are mostly done. We just need to sprinkle gain points around the code. The way this works is that every item has a limited amount of XP with diminishing returns. So, for example, the first time you chop wood with a rock you’re going to be getting a lot of XP, but that’s going to fade down and get harder and harder to get XP that way. But by then you’ll have earned enough XP to be able to gain it from chopping wood with a hatchet. Obviously gathering resources is only one way we’re going to give XP. Pretty much every survival action will gain XP, every time you do something new. The only thing we won’t be rewarding (or punishing) is killing other players, because that’s rewarded enough already.

The next step is revamping the blueprint system. At the moment blueprints are found or researched. This has its pros and cons: it’s fun to go looting and not knowing what you’re going to find; it’s fun to collect them and give them to friends. But it’s also terribly unpredictable, inconsistent and grindy. It’s really not a friendly way to do it.

The plan right now is to make blueprints become available when you level up. You will spend your earned XP to unlock them. The blueprints will be organised in a tech tree, so, for example, you won’t be able to unlock a stone spear blueprint without first unlocking a wooden blueprint.

I’ve spent a day or two working on an editor for this. Quality of life tools like this is one of the places we’re really weak on in our development right now. It means that instead of going through items one by one setting the levels and then trying to remember which level they’re at in relation to the others, we can see all the important data and edit it together.



This is going to make a huge difference to Rust, and we know people are worried about it. Our feeling is that once you get used to it, it’s going to make the game more enjoyable and easier to understand for everyone.

Crashed Submarine ConceptHoward Schechtman
Been thinking about this idea for a while and working on it off and on, finally got it done! This would be another great place to spawn high quality loot and reaching it would be especially hard because of the equipment required get there.



Changelog
Dungeons LODs and lower batches improvements
Rocks LOD distance optimizations
New wall frames and wall frame blocks
Fixed bug reporter errors
Spectating admins are no longer networked
Enabled low vertex compression on all models
Fixed bind so that the second argument no longer needs quotes
Updated steamworks to fix a problem with win32
Updated to Unity 5.3.2.p1
Fixed occasional single frame UI text corruption
Fixed some UI elements being out of line
Pumpkin plants live a max 7 seasons
Pumpkin plants live a max 3 harvests
Optimized pumpkin plant LODs more aggressively
RCon is started immediately on server startup
Item icons and info are now dumped into Bundles/items/
Fixed some LookingAt inaccuracy issues
RPC Cache memory optimizations
Network + Save cache memory optimizations
Made player movement more direct by removing horizontal camera smoothing
Server collider batches split when their vertex count gets too high
Added refresh_renderers console command (refreshes client renderer batches)
Added refresh_colliders console command (refreshes server collider batches)
Added various batching convars to customize client and server mesh batching
Added mesh batching to static quarry and pumpjack
Fixed missing or incorrect animal footsteps on a number of surface types
Fixed raid tower exploit using shelves
Fixed sleeping bag deployable and foundation exploits
Improved laser and flashlight beam
Fixed transparent surface and particle atmospheric scattering
Fixed ambient lighting for particles and low quality speedtree fallbacks
Added scope
Fixed being able to put codelock on airdrops
Made flashlight beam invisible when looking dead at it
Flashlight beam has shadow texture
Narrowed flashlight beam in 1p/3p to 45 degrees
 
Последнее редактирование:
Сверху