Press Kit Wiki

Hurtworld Update #88

Spencer

Hi Guys,
I think we made a lot of ground on Experimental ItemV2 vs Master this week with some serious performance upgrades with the introduction of potato mode amoungst various fixes. We have decided to stick with the 2 week release cycle for experimental, as with the weekly content drops we were chasing our tail a bit.

For this cycle we will be starting with a quick bug fix patch today or tomorrow, then focusing on on completing the hit feedback upgrades followed by diving deeper into rarity, environmental effects, loot generation and progression. Expect to see rare creature spawns with different effects, that drop rare loot, and more diverse blueprint generation.

Hit Feedback
This week I will be finishing off the hit feedback system I started work on last week. There was a bug in the initialization step of the effect asset list that caused the effect system to shutdown completely if an effect was played while loading into the game (a pretty common scenario in a real server). This means the impact feedback and hit sounds would have been broken for most people. I will push out a patch tomorrow with a fix for that and finish off fleshing out the effect and sound configuration. A key part of this is the seperation of impacts on you, impacts on others by others, and impacts on others by you. A problem with the old system was that the same sound fired when you landed say, a headshot on someone, as the sound that played when you are getting killed. These should be different so your brain can create a negative and position ascosiation with the effect and not sit in a confused middle ground.

Tom

Since last blog I’ve been finishing up the non-performance related changes that went into 0.4.1.4.
This includes adding repairing to the fabricator machines, adding the vehicle wrench, a bunch of little bugfixes and working on the early game balance.

Now the early game is in a place where you can make a pickaxe, hatchet and spear easily and getting your first base up is cheaper and more accessible than ever only requiring 1 rare scrash drop (the ItemV2 equivalent of amber).
I also made hunger less of a concern, now players start with more nutrition, there are more owrongs in the starting zone, normal shigis now always drop meat and forest shigis have an increased chance (of dropping meat). With all these changes staying well fed is maybe a bit too easy but I’d rather stick on the safe side of this balance in the early game, dying before you’ve gotten a base up and having to start over from scratch is pretty harsh so we want everyone to be able to get themselves established without too much trouble.

The next real speed bump in progression is getting your protection gear which in the current setup means killing a whole lot of creatures to get the blueprints you want.
Right now we think this process is too hard and too random and so for the next experimental update we’ll be introducing a way to craft basic blueprints of common rarity.
This means you’ll be able to craft a basic cold protection top without having to get lucky finding the correct drop.
Being of common rarity will mean the item will only provide its basic function (eg. elemental protection for gear, mining power for pickaxe etc), extra stats like swing speed and bonus yield will be reserved for higher rarities coming from blueprint drops.
As well as fleshing out the rarities for items I’m also planning to do a similar pass on the creatures to allow them to spawn at different rarities affecting their stats, sizes, abilities, colors and loot.

RareYeti

Mils

So there’s not a lot for me to say about last week. I created the fabricator, which is an amalgamation of two existing heavy fabrication machines. The bottom part being a roller/bender for putting curves into long lengths of metal. The top part is a kind of grinder that I fitted onto the bender. Real world machines are the best for references for these machines as they really have that necessity over design, functional look. These references are a great basis for anything that you might want to look like it has an actual purpose.

Very happy with how it came out and how it is in game. I think the Furnace and Drill will get a similar treatment down the line. For now though I am going deep on the AWM and starting the texture work on that.

Fabricator02

TEHSPLATT

This week has been a full one for me. Working on getting custom trees into the game that utilize Unity’s built in wind and terrain tools. This has been a rather large learning curve as it’s not just the Unity tree;/wind system I need to understand it’s also the very under appreciated art of making good looking trees. There’s many steps involved in this process and I’m still learning the work flow but it’s definitely come along way from the time I started when my trees looked naked and half dead. In this video you can see the latest iteration of the new tree, this video shows the swaying and leaf flutter to give them some life and not just sit there totally still.

I’ve learnt a fair amount of tricks for making trees sine starting this little project, one of the main problems with my first trees was the vertex normals on the leaves shooting off in all different directions causing the lighting and shadowing to look random and horrible. By projecting the vertex normals outwards to a half sphere it causes the light and shadow to look much smoother and realistic giving the tree a fuller look. You can see here how sharp and jagged the tree on the right is.

TreeNormalsproper_Fordevblog

Another thing I’ve realized is how much better the tree looks with some ambient occlusion baked into it, gives it some nice shadowing and adds some depth too it which is always good. Still feel I have a lot more too learn but so far it’s going pretty well. The whole point of this process is so we can add in some more biome specific trees that give each biome a unique feel, it may not seem like it would change all that much but it will really add to the feel of each new area.

TreeBakedAO

Hurtworld Update #87

Spencer

This week I’ve been tracking down the low hanging performance issues with ItemV2. At the start of last week I released a patch to fix the horrible UI lag in ItemV2 being caused by lots of sleepers being around, however this didn’t fix the core GPU load lower end machines were suffering from.

It has been hard testing on a GTX1080, so I decided to find the oldest piece of crap PC I could find in the office and set it up at my desk. At first I feared I had bitten off more than I could chew as the machine I found barely gets 15fps in legacy Hurtworld and was getting less than 5 fps in ItemV2. It took a little longer than expected, but finally broke the back of it today, getting it upto a completely playable 25-30 fps in ItemV2.

At the other end of the scale, my dev machine now gets a solid 100-110 fps in ItemV2 diemensland compared to a 75-80 fps in legacy.

This won’t be a silver bullet for everyone, but should give good gains across the board. For those who are still struggling, introducing:

Potato Mode
From my time testing on the mega potato, I got a chance to look at Hurtworld from a different perspective. We’ve been spending a bit of time improving graphics and I know there are a lot of people out there that are already just scraping the 18fps required to be able to run around. There is no reason our graphical upgrades should make it so these machines can no longer run the game.

Unity is a very scalable engine, due to the fact that a large part of its customer base is focused on mobile development. With the right settings, we can make Hurtworld run on pretty much anything. The only downside of this is that lots of videos and screenshots of the game will look shit. If the game runs better for lots more people, I say its worth it.

With this weeks patch I will be introducing a Potato mode setting in the graphical options. This setting will override all quality settings with the absolute bare minimum options possible. This mode will focus 100% on performance, with no care for what the game actually looks like. At the end of the day, if you can still participate in the game you don’t really care how it looks.

Not for everyone
The thing we need to protect against here is potato mode giving you a competitive advantage like increased visibility due to no grass, making it so people with their graphics on high have to also go into potato mode to be at an even playing field. To combat this, we will be adding various disadvantages to potato mode like short draw distances for players and bases.

The improvements for bottom end performance coming in this patch are massive, and we have quite a few more things up our sleeve on that front. With some other drastic settings like defaulting back to per vertex lighting and replacing the sky with a simpler calculation, I was able to get upto a solid 60fps on the mega potato. This won’t be released until we get a chance to fix some broken fallback shaders in this mode.

Patch
New patch will be going live on Friday. Tom has been working on the content side for this weeks patch, see his post for details.

Mils

This last week saw me implementing my part of the AWM into the game. This is going to look a bit average animation wise because we are using the current rifle animations and some parts don’t match up. The hand is more horizontal on the original rifle and the bolt is in a different place, so they will be in strange positions and won’t animate correctly. For now these have the standard grey boxing texture on them until we are happy with the design. Tom is going to have a quick look into the programming and stat values for this today.

As Splatt is looking into some other world item designs I took over the fabricator design which we will make a few changes to. You’ll see some grey box shapes below. These are initial ideas with a focus of getting some interesting silhouettes. The poly count on these shouldn’t be too high because there will be a lot of them in the base at any one time. I’m trying to keep it low-ish to save performance a bit. I’ll keep working on these over the next day or two.

Fabricator

Tom

This week I’ve mostly been working on improving the mesh combining system. As it is now in ItemV2 the mesh combiner repeats a lot of work, every time an item is equipped or unequipped that has visuals or a vehicle, creature or player is loaded in (these networked objects only load on the client once you are close enough to need the information) the mesh combiner receives a list of all the mesh attachments to put together for the object’s final look. Due to both moving the combination work to a background worker thread and doing as much as we can ahead of time in the mod build step, combining meshes is very quick but when swapping in and out of a skinned weapon (like the bow which deforms during animation) it triggers a rebake of the whole player mesh.

I’ve been implementing a caching system so we can save combinations and look them up by their list of mesh attachments allowing us to skip any combining job if we’ve already got a matching mesh for the combination. This also makes matching combinations point to the same mesh, this saves on memory which is a boost to low end systems.

Because there are so many potential combinations we need to be able to delete meshes we aren’t using anymore to free the memory, for this I’ve implemented a reference count where other systems like the ragdolls and player renderers register and deregister their use of the mesh. When the cache needs to be shrunk this count is checked to make sure we don’t kill anything we’re using. This allows us to share meshes across different systems for varying timescales.

These changes still need more thorough testing and might not make it to the next patch but it won’t be far off.

As well as the mesh caching I’ve been working on changes and fixes for the next ItemV2 update coming out Friday. These include:

  • Adding the AWM sniper Mils has been working on into the game to replace the FR18
  • Fixing bugs with durability on the recurve bow
  • Fixing vehicle spawn locations so chassis will once again spawn in towns
  • Fixing the resolution options in the menu
  • Fixing a bug where seeds could recolour your hat
  • Fixing player and sleeper ragdolls sometimes not showing
  • Removing our current motion blur effect due to some performance issues
  • Simplifying pickaxe research costs so they don’t require a lower tier pickaxe
  • Setting up the new vehicle icons and world items

These will show up in Friday’s update along with adding item repairing to the fabricator machines (the ones used to create the blueprint items).
Repairing won’t cost any resources but it will take some of your blueprints durability, currently we’ve got it set so you get about 4 full repairs for the same durability cost as crafting one item.
Keep in mind that the installed blueprint of the fabricator has to match the item you are trying to repair.
As well as repairing I’m going to give a balance pass to the early game, expect to see initial base construction get easier and food become easier to find.

Hurtworld AWM

TEHSPLATT

This week I made the 9mm ammo box, this has probably been my favourite one so far in terms of design. Each cardboard ammo box should be easily recognizable now based on colour alone, this is so you don’t have to sit there trying to read the boxes to find out what bullets they contain as this would be bad in a life or death situation. The muted and weird colour scheme came out nice and adds to that vintage ammo box feel which I really like.

9mmammoForDevBlog

I also made some new world items for the current vehicles as the old ones were just ripped straight off the vehicles themselves, where as these ones are a bit more manageable. As a car guy I love engines but as a 3D artist I hate them, they have so many little lumps and bumps they can easily eat up your poly budget. The large holes running along the sides/top looked terrible when they were just blobs of black texture pretending to be holes but I found a solution that wouldn’t destroy my poly budget, it involved using an alpha cut up across the top and cones with a gradient to give the holes a sense of depth, this worked out really well which is nice.

Engine AlphaTest For dev

Here’s a picture of the engine and transmission together. The rust was was done for both stylistic, practical and logical reasons. One of the main reasons was I felt shiny objects this large rolling around the world wouldn’t look so great and a few tests proved I was right, this is also the real state that these parts would be in if they were just left half buried in conditions like Hurtworld’s. I also think contrasting PBR materials works really well so having the matte rust mixed with the shiny paint adds something interesting for the eye.

RoachEngineForDevBlog

 

 

Hurtworld Update #86

image (5)

Spencer

This week has been fairly chaotic as we pushed out our third weekly experimental release. Its been awesome to start getting you guys playing with the concepts we’ve been cooking for a while. Despite still being very rough, I’m really happy with how the new mechanics are working out.
If you missed it, you can read more about this weeks update —-HERE—-

The road ahead
We’ve enjoyed doing smaller short lived experiments, but nothing really compares with full blown persistent survival. The next few update cycles will likely focus on refining the new survival concepts, making the progression clearer and a lot more rewarding. At some stage I’m sure we will do more crazy experiments, but for now we are going to drill down on the progression survival side.

Weekly experimental updates don’t leave us a lot of room for house keeping. We have a decent list of things that really need attention so can focus back on making the content awesome. To do this we are going to do a 2 week experimental cycle this round, meaning the next experimental content update and wipe will be on Friday the 30th of June.

FPS FPS FPS
We hear you, something is being far greedier on the GPU than it should be and the UI is destroying the CPU while open/dragging. This will be our top priority this week to make sure everyone can get into ItemV2 and get back to solid FPS.

VOIP Robot Earbleed
I’m half way through implementing a brand new VOIP solution that should fix all our problems, and slightly improve performance. Unless something goes wrong, this will be in the next patch.

OSX
OSX should be back to working now

Other stuff
There are lots more annoyances that I’ve been meaning to get to, like fixing hit feedback sounds, balancing weapons better etc which we will focus on getting up to scratch this week.

More details on the patch for the 30th in next weeks dev blog.

Tom

This week I’ve been patching up exploits in the main game getting 0.3.8.6 ready to go and also helping get our latest experimental build out.
Some players had discovered a nasty bug in our construction system where if you rotated the construction item just before it was placed you could put the system in a state where it knew of the new rotation but hadn’t updated the construction validator. If you placed the construction item in this state the validation checks would run on the old rotation but build the item at the new rotation.
If you could get your item so the old rotation was legal but the new rotation was blocked this would allow you to place your item in the blocked location (such as inside a player) which was then leading to all kinds of issues. To fix this one up I made sure the validator updates itself before running the validation checks during the deploy step.
0.3.8.6 contains mostly bugfixes but we did make a change around structure attachment dependencies, now structures dependant on an attachment point (like doors, windows, even walls need some kind of a base to attach to) will collapse after a small time even when the construction cell is claimed (previously this check was only running in unclaimed cells) so it’s time to put door frames back on your doors!
Another change in 0.3.8.6 I’m excited about is changes to the inside rock checker, by distributing the check between client and server we can afford to run this check a lot more often, so much so going inside rocks and other geometry should almost instantly kill you.

DoorFrames
I’ve also been working on the experimental branch getting the last release ready. As well as making more progress through our bug list I also spent some time setting up the clothing items that are coming out of blueprints. This was really fun to play around with setting up different pools of potential meshes for different tiers, potential colors that can be assigned at whatever scope we choose (per tier, per item, per mesh etc.) and potential stat rolls as well.
I didn’t get as much time as much time as I’d like to set everything up, most of the gear is picking colors from a potential pool set at the tier level but after doing this we agreed it makes more sense to have color pools set on a per mesh level (so firstly a roll occurs to pick a mesh, then the custom colors are picked from a pool specific to that mesh) but this takes a lot longer to setup and I only got as far as creating specific pools for pants items in this release.

BackToDiemensland
This coming week I’m hoping to make some real progress on the performance problems some players are experiencing. I took a quick look at this earlier last week but couldn’t find anything obvious that would be a quick fix easy win so the experimental content became the priority. There are many improvements I can make to mesh baker performance so I’ll be starting there and seeing what else I can do.

TEHSPLATT

Dived into fixing up one of the old machines this week, added a spec map and gave the albedo a pass but quickly found that due to the original way the model had been baked (with a single smoothing group) it was causing the spec to show up with lots of weird artifacts which means I’m going to have to go back and harden specific edges then re-bake the model. The albedo could still use some love as it’s just a blue blob at this point (which is how they are in real life but could still be more interesting).

cncmachine_pass2devblog

Finally learned the skinning process (learnt a bit more after this picture hence the artifact). I’ve always stayed away from rigging and skinning as it seemed terrifying but It was something I needed to learn, this picture was my first attempt and compared to the how it was after copying the skin weights it’s a lot better, unfortunately I some how missed the artifact lower down the characters back and need to go and fix it. Skinning is a complicated process that takes a lot of practice to get good at.

VestSkinnedDevBlog

Finished off the blue print case for this experimental build which involves a lot of blue print drops that needed a container. The case has an RGB mask on it so it can be colour coded to the rarity of the drop. I would like to make a legendary treasure chest for legendary drops that’s a lot fancier than this basic case.

LargeHardCaseDevblog

Cow_Trix

Hey folks! This week I’ve been tinkering away at our map creation tools, implementing smarter tooltips that let you compare items, and fixing some OSX issues.

With the current experimental build, it’s pretty important to be able to compare two similar items and be easily able to tell what one gives you versus another. You find a blueprint, and want to be able to quickly tell if it’s worth investing in. I implemented a quick version of a comparison tooltip that compares the raw stats of your equipped item and the item you’re hovering over, check out a screenshot below.

1

I’m pretty happy with it, but it has a few drawbacks and won’t properly compare some effects between items. In future we should set up a dummy entity stat object, and simulate the actual raw values of the stats we care about when we simulate equipping both items. This means we can give more meaningful and realistic feedback when comparing and displaying an item’s effects.

I’ve been plugging away a bit more at the map workflow, trying to get an easy way to pick up and clone parts of the world. I want it to be as simple as drawing a rectangle, capturing a chunk of the world with everything (trees, terrain height, grass, splats, objects) and being able to use that as a stamp arbitrarily around the level. I’ve been trying to figure out exactly how that’s going to be structured and how that’s going to work, and there’s a good start there, but no concrete results to show just yet.

I’ve also been fixing some of the major OpenGL issues that Mac and Linux users would be experiencing. It turns out that some of the things I thought about shaders and AssetBundles were incorrect, and it turns out shaders must be built with the target platform. There was also a screen-flip bug, which has been a pretty common one with Unity post effects. Why everyone just can’t agree whether the top of the screen is 0 or 1, I will never know. This means that Experimental should be getting much more Mac/Linux friendly soon. There won’t be a dev blog from me for a while, I’m off on holiday for two weeks.

Mils

Diemensland got a few new towns this week. I made 3 large towns that hold a fair amount of crate drops. I wanted them to inhabit some less known areas of the original map. We wanted these to each have an individual feel. I used a lot of the assets from the city to create the base structures of the towns. I hope these add more to the map that has for so long been the same. They should push players out to areas where they don’t usually go. This will also cause new shortcuts between towns that people don’t usually take also.

Below; A screen grab from the Unity Editor of the 3 new towns.

DiemenslandNewCities

Darlington; This was somewhat copied from a small town I grew up in by the same name. One of my favourite places where nothing has changed much over the years. It was supposed to mimic real geography and I think it did that fairly well. It looks nice at night when the street lamps come on. Needs an asphault road laid through it still, but the feel is there.

NewTowns_0002_Layer 1

Boreas Forge; The name Boreas forge comes from a Greek god of wind and winter. I wanted this to have a mountain stronghold feeling to it. An epic path leads up to the top with many nooks with loot crates to be found. This can be seen from the north road that leads past the two winter towns below. I like how it looms from the mountainside.

NewTowns_0000_Layer 3

Cratora; Three crater-like conjoined plateau’s at the end of one of the Red Desert roads. This place is a strange halted construction project where something huge was once to be built but never made it. This was due to the great Tokar uprising. This town has a 3 distinct areas. One an industrial storage area. An administration tower. Finally the Maze of Insanity from which few men ever escape.

NewTowns_0001_Layer 2

Dev Blog