Press Kit Wiki

Hurtworld Update #32

Spencer

Lots on this week as I push on with ItemV2, new patch is now live which should really shake up raiding with increased explosive drop rates, construction resistances and starter huts.

Studio Upgrades

I’ve also spent a bit of time this week upgrading the work environment for the team. We have expanded into a larger space, re-organized the office (needed some room for a vive :P) and most importantly opened up space for new people! For a few months we’ve been on the hunt for kick ass programmers to expand the team and help us push out updates more quickly. There is a massive amount of stuff we want to do with Hurtworld, and our bottleneck is always on the code implementation side. I have pretty high standards when it comes to programmers, there was a danger of growing the team too quickly after release that we would lose the quality standard we are aiming for. Today I am happy to announce he who will be known as “Tom” has joined our ranks. We are still on the lookout for more top programming talent in, or willing to move to Melbourne. If you have shipped real games, have Unity experience, writing code is your passion, and can work from our office we want to hear from you.

ItemV2 Progress

I now have item state machines running on a deterministic client side predicted model with no corrections (yay!). I’ve taken the extra step here to build some infrastructure around loading the state machine data from JSON config files which will be streamed from the server allowing full modablility. Here is a sample of the melee weapon logic:

weaponstructure

Not the easiest thing to edit by hand, I should have a UI tool to add to shigitools for the map sdk soon.

Gavku

This week I have mainly been¬†working on coming up with some new character gear. Hopefully with a larger variety of gear we can start to move away from players pretty much running around looking like Ronald McDonlad with red winter jackets and yellow rad pants. ūüėČ

These are a few examples of more of a scavenger type of armour, bit pieced together, and one with a nod to an aussie icon.

GearBlog1

These ones have a bit more of a modern feel. With tactical vest and pants.

GearBlog3

A few more examples of different types of vest and armour, these ones feel a little bit more in line with our aesthetic. Also a take on a more heavy duty hazmat suit.

GearBlog2

Lastly a take on a more heavy armoured set up, and some lighter bone armour.

GearBlog4

Also I have been testing the build to make sure that the new update runs smoothly. As can been seen below ūüėõ

Cow_Trix

Lotta work this week getting the new patch out. There’s been quite a few optimizations, especially with the construction system, that should improve things across the board.

There’s nothing like the wild for stress testing new systems. Since the construction system came out, you guys have been pushing it to its limits. This has shown where it’s good, and where it could use improvement. I’ve done a couple of significant optimizations with how the construction system stores and transfers data over the network.

One of the biggest bottlenecks was a bandwidth issue where, on massive savegames, players would take a substantial amount of time to connect and sometimes fail to connect entirely. When connecting, the server sends a stream of information to you about the structures in the world. This includes what attachment it is, it’s position, and rotation. What attachment something is is represented by the Attachment Identifier, which is basically made up of a Category, Subcategory, Size and Material. Previously we sent this whole chunk of information, which was actually of undefined network size as Category and Subcategory were strings, but was at minimum 32 bytes. Now, we precalculate an index of the attachment, which we can store in a ushort at a much smaller 2 bytes.

We also saw that the construction system was taking up a lot of RAM. Using the SEA Infini Wipe server save, as that server has been really struggling with the RAM load, I tried to track down where we were spending this RAM and where we could be saving it. There’s something very cool about loading up saves and seeing people’s bases ‚Äď we get to walk around and see what people have been making. I found that we were allocating a majority of memory in registering attachment points. The issue turned out to be how we were representing overlapping attachment points of different rotations. When you look at a point and right click, and an attachment rotates, you’re actually cycling through multiple attachment points which are rotated in different directions. It turns out we were accounting for every rotation, and not just the six which are possible. So this was an enormous saving for memory usage. We saved about 60% of memory allocation associated with the construction system with this optimization.

Mils

Before making more decoration for the cities I was also tasked with getting the new version of Easy Roads (V3 beta) to work so that we can create better roads. Since the plugin is in beta it took a bit of time to find a workflow that will allow us to create the improved road networks we want leading out of the city into the suburbs and industrial areas.

I’m adding more street level decor to the City at the moment. Adding some parks to the city, using some one-off feature objects to create a memorable gamespace. The dried up water feature/fountain, circular low wall and some stands of trees help create this park space.

StreetLevelDecor_0005_Layer 1StreetLevelDecor_0000_Layer 6 StreetLevelDecor_0001_Layer 5

Adding low walls and electrical boxes to the sidewalks is helping add to the clutter that I think we need to make a convincing street level scene.

StreetLevelDecor_0002_Layer 4 StreetLevelDecor_0003_Layer 3 StreetLevelDecor_0004_Layer 2

These street level assets are great but we need to do some optimising to keep the frame rates up. This week I will be grouping small clusters of assets together and duplicating them throughout the map. We need to do this because of a bunch of inefficiencies that come in to play with large numbers of game objects and lod groups. By clustering meshes together we can cull big chunks at a time. We could cluster our entire city together, however this would bloat our mapsize and therefore ram usage and load times.

Hurtworld Update #31

Spencer

Hey Guys,

This week I’ve been working towards a construction / explosion patch to finish things off before getting back into the meat of the ItemV2 changes. We are aiming to release the explosive / construction changes next Monday and although pretty light on new stuff, it should really shake up raiding and construction.

I’ve been continuing work on explosions, build costs and wall resistances. I am pretty happy with where things are now. We now use a bunch of sphere casts to determine what is hit by the explosion. We project around 220 of them in all directions and do damage to anything hit for each bounce. If the object is destroyed, the cast will keep moving and hit things behind it, if it isn’t destroyed by that hit, it will bounce off like a soccer ball.

Here is a very slowed down visualization of how it works, yellow lines indicate a hit, grey ones indicate the cast running out of steam.

I have also configured all build resistances to use a more physically accurate damage model. Each construction material has an armor rating, and each construction prefab has a volume multiplier based on a standard wall as 1.0.

I based the armor calculation on the Dota2 armor formula:

armorgraph

Negative armor increases damage positive decreases damage.

So for a C4 explosion, each ray does 4 damage per hit with a falloff over 7.5 meters, also reducing in damage per bounce.

If a C4 is placed on a wall, it will do full damage, and about 30% of the casts will hit the wall on the first bounce.

Each wall starts with 100 health, and is then multiplied by its volume. Walls are 1.0, so we are working with 100 health.

Armor values are currently as follows:

  • Wood: -20
  • Stone: 35
  • Metal: 100
  • Concrete: 30

If 60 casts hit a stone wall at point blank we would calculate the damage done like so:

Armor Damage Reduction = 1 – 0.06*35 / (1 + (0.06*35)) = 0.32

60 * 4 * .32 = 76.8

This will effectively leave a stone wall on 23% health, meaning it will take roughly 2 C4 to bring down a stone wall.

The same calculation for metal gives us 0.14 damage multiplier and 33.6 damage, thus C4 will take between 3 and 4 C4 to blow through.

4 C4 for one wall!? I quit

Slow down tiger! Along with making C4 for the most part much less powerful, I have buffed the drop rate of det caps significantly. There will be roughly 3 to 4 more C4 in circulation, which I think will make raiding much more interesting as you come up with creative ways to use your C4 to do maximum damage to a base. Things like creative use of bounces and targeting weak spots will be key.

Building is too expensive, now people can blow up my base also!?

As a third measure of balance, I have changed most of the building costs. Everything is cheaper, and should be balanced relatively to their blast resistances. I will continue to tweak this over time. What this does mean, is bases are faster to build, faster to bring down. Overall the pace of the game should bit a lot faster in preparation for the upcoming content patch (no we don’t have a date set for this yet).

Lowering barrier to entry on construction

Another barrier in the way of the infamy changes to increase punishment for death, is the barrier to entry on building a base. More importantly how much stuff you need to gather before you have an opportunity to stash it somewhere and save your progress should you die.

If even bambys can stash their loot every 10 mins or so to some degree of security, it means when we start encouraging more PVP through infamy changes they won’t be left out in the cold.

What we have added is a starting constructable hut with no attachment points. Think of a shanty town house, that isn’t particularly secure and you can’t share it with others. It will however provide you with a spawnpoint, and somewhere to build a storage crate, without having to craft a hammer and totem and gather heaps of materials. It is craftable at the workbench, its spawnpoint has a cooldown (to prevent it being used as a cheap raiding outpost), it can be melee raided, and it can only be built in the starting biome.

This is not a safe place to leave your most valuable possessions, it is simply an option for players to temporarily store and have a respawn point while you save enough to build a house.

Shack1

New Music

Our composer ghostsoul has been working away on some new music for the game. Its been a bit of an experimentation process to determine what music works well in a PVP survival game if any at all. The main issue is the number of hours spent in game can make anything grind on you after a while, for that reason we have large silences between playing a piece of music and try to keep out any repetitive elements like drums and grinding loops. We are a little more weighted towards darker themes than I want at the moment, the next batch will be a bit ligher as I think too much darkness causes fatigue over long play sessions, however the main thing I’ve found is more the merrier to keep things unique as much as possible. So we will be pushing out new songs as Mr ghostsoul creates them.

You can check out the latest batch here (will go into next patch):

Mils

I have been busy adding traffic lights and street lights and other types of signs to the city. This definitely helps kill the ghost town feeling that the city has had so far. I also added some off/on-ramps to make the freeway accessible. There is a carpark structure in the works also. Most of the time taken with these objects is in the placement of them. Each light is placed and rotated so that it makes sense, as it would be in a real city.

RoadsIndust_0003_Layer 3

RoadsIndust_0005_Layer 1 RoadsIndust_0004_Layer 2

We will add more objects to the city at ground level in the future, but we decided to focus on the outlying parts for the city for the moment before we push ahead on the CBD. The idea here is to blend the city into the outer areas creating places such as industrial areas, parks and suburban zones. This will somewhat follow the structure of a real city as it blends into the natural surroundings.

Below is a rough blocked out warehouse structure. I will make a few more buildings to suit the industrial zone.

RoadsIndust_0002_Layer 4

Using Google Maps 3d View is a great reference and inspiration source for me to create interesting structures. The following shows what could be described as a dirt mine ūüėõ I made the wall structure from this reference to add into the industrial zone.

RoadsIndust_0000_Layer 6

RoadsIndust_0001_Layer 5

GAVKU

I think we are getting towards the pointy end in regards to working on construction prefabs, at least for the time being.

Often¬†there are a bunch of things that we would like to add, but end up discarding due to a trickle down effect of complexity. Basically with this stuff we might think of something we want to add, I’ll model it¬†up in max and try a heap of different construction combinations seeing if any issues arise, or if I need to build extra pieces to fill any spacing problems or holes that might come up. Then if it is holding up, take it across to unity where Sean will place it into the build system and we will go through further testing.

Mostly it works out fine and its like ah cool a couple of extra pieces and everything works! Other times it becomes quite obvious that a large amount of fiddly little pieces may be needed to plug up potential issues which would just bloat the build system for very little pay off.
We have added a couple of extra tile pieces to cover some situations that arose from diagonal wall placement, as well as wooden trim/ribbing, large building pieces similar to what can be seen on medieval castles, two alternate types of column, and a pillbox to give players some defensive options on their base.
Chunks
The Pillbox is basically a metal box which occupies the same area as a small floor tile, that enables the player to defend their roofs or to act as a secure lookout.
 
We have also replaced the old torch with a new one, added a standing torch, and a fireplace.
Fires
We have also added a new shack prefab as an early game item to enable players to have a spawn point and place to store things.
On to some charcacter things next woohoo!

Cow_Trix

Mostly been working on some bugs this week, as well as putting in new construction attachments from Gavku. I’ve also been putting in some more feedback for construction validation, so when you can’t place an object you have more of an idea of why that is. So, how exactly do we validate if an attachment is in a good place or not, and how can we give feedback on that?

Attachments currently have a whole bunch of ways they can check they’re being placed in the right place or not. The most basic of these is¬†volume – what space should the attachment take up? This might not necessarily be the same as the collider, as some things needs to be able to intersect. It’s generally smaller than the collider to account for this. This is usually ok feedback wise as we get a sense of the volume by moving the piece around. They can also check if there’s anything between them and the ground, for things like plants. Or, for drills, if there’s any other drills around within the exclusion distance.

We can also check if the player has line of sight to an object. This is useful if we don’t want the player to be able to place things where they can’t see (for things like ownership stakes this is especially important), but it also addresses a caveat in the way PhysX detects collisions. Simply put, if you ask PhysX if Shape A is colliding with Shape B, and Shape A is completely¬†inside or equal to¬†shape A, PhysX will not consider them to be colliding. This was the reason why, in the old construction system, you could place short walls in larger walls – because the collider was perfectly aligned on the X and Z axis, and contained in the Y axis. So we put line of sight checks on a bunch of stuff. However, when this fails, it can sometimes be annoying if you’re not quite sure it was the cause. For instance, placing floors through support trusses can be pretty frustrating, and it’s this check that is the cause of that. Now, an icon will show up at exactly the point you need to be able to see to place it. It makes it much easier to place these objects!

visibility

I’ve also been working on putting Deferred Rendering into the game. This is one of those “Unity does 99% of the work” things, and it’s been an issue of blocking bugs preventing us from doing this previously. Deferred rendering is just a better way to render stuff. We currently use Forward rendering, which has some significant downsides, especially with Hurtworld. Simply put, a lot of light sources in the game will make even the strongest video cards struggle with Forward Rendering. With Deferred, however, we don’t have this restriction. We can have as many lights as we want, and it won’t dent performance. This is pretty big, considering Hurtworld is a game where you can put light sources wherever you want!

We should be able to put this out as an experimental feature, enabled in the options menu. As we road test it, and iron out all the bugs, I expect to transition to Deferred as our default pipeline in the future. You probably won’t notice a difference, but your video card and FPS will when you’re in a base with 40 torches lit!

Hurtworld Update #30

Pasted-image-at-2016_04_28-01_22-PM

Spencer

This week we’ve been all hands on deck getting the new construction system stable and balanced. We are pretty happy with the stability for the most part for now, thanks to everyone who submitted bug reports.

Explosions

I spent the last few days digging a little deeper into C4 explosions, in real in game scenarios they were doing heaps more damage than we intended. After working on re balancing the damage I found a rather large bug in the way we apply damage to individual structure pieces that could sometimes (quite often) get the wrong attachment on a building. This could result in objects a long way from the explosion taking damage when they shouldn’t. This will be fixed in the next patch which should make explosions much more predictable.

Raiding Balance

Currently all the durability and armor stats for construction pieces are identical for different materials. This was due to the fact that material strength didn’t really correlate to cost to obtain in the current metagame (wood was the hardest to build with despite being the least durable). To avoid re-balancing gathering costs and therefore recipes of everything we put off configuration of the resistances. One thing we didn’t think of was just increasing the construction cost for the more durable materials (duh!), and as a side effect of recreating all the construction pieces we did this anyway. That allowed me to start tuning the construction piece durability to be tiered based on material.

While exploring this balance, it has become clear that placing 1 C4 to destroy a whole base isn’t much fun. What I am working towards now is nerfing the crap out of C4 explosions, and giving a massive buff to detcap drop rates. Meaning C4 will be common place, but creative uses will dictate your ability to get into a base. Now that explosion force can be reflected off other objects, tighter spaces will be key to doing maximum damage.

Lower barrier to entry on vehicles

This is the first wipe I’ve had the time to actually play a comparable amount to the rest of you to get a feel for the journey from early to late game (Due to the fact I wasn’t madly patching bugs after release). A large focus of mine being getting that roach kitted out as soon as possible. I’ve come to the conclusion that the barrier to entry on vehicles needs to be lower. While more hardcore players will likely be thinking “I can get 5 cars by day 2, its 2easy”, there is a bit more to it.

As most of you know, chassis’ and container crates spawn rate scales linearly with the number of players online at any given time. This is to stop the person who doesn’t sleep getting an entire maps worth of spawns over night, while people in the day have to fight over them. This works for the most part, however as the rates are simply based on players online, not players in the area, the first few people to get to red desert / snow towns and setup a base get an unevenly distributed portion of the spawns to themselves. For the first week of any wipe, 70%+ of the players are tottling around Valley and Fortress while a limited few are churning through 70% of the loot spawns on the map.

This effect is compounded by the fact that once you get a vehicle, town hopping to grab the loot takes 1/10th of the time. So while half the server is fighting over the 3 or so loot crates in fortress and valley on foot there are 3 or 4 people gunning around the remaining 4 towns uncontested.

I can’t think of a nice solution to cap the progression of players who progress fastest without requiring a contest over areas. This just sounds like an ungly system that people will end up gaming with alt accounts anyway so I am opting for just increasing the spawn rate of chassis’ and crates.

Along with this, in the slightly longer term, we will be adding destructibility to vehicles. For this to not suck, vehicles will need to be much easier to get otherwise the risk of crashing into a tree would stop you from driving it. Ideally some form of vehicle will be easy come easy go, and we will be adding higher tier vehicles which are much rarer for those who want to continue the loot chase.

Holding towns

Another thing that came to my attention this week, is that the mechanic of holding an area for control of its loot yield isn’t currently working in towns. It seems to work ok (bar infamy crapness) around the resource rich valleys in the starting areas as people fight off others from building bases nearby and harvesting their resources. It is fundamentally broken in towns.

The reason for this is the speed at which the loot re-spawns is far too slow for it to be worth holding onto a town beyond clearing it once. You do a single run, stash it and do something else for 10-20 mins before trying again. During that time 3 people probably went through and looted the one spawn that came up, end up with a boring low yield for everyone. Its never really worth shooting anyone in a town as they can likely make it back before anything respawns.

Secondary to this, the towns provide too much cover, making it easy to slip into a town while others are there, and easy to escape. No real presence. Ideally running into a town would be an announcement, that you claim this place for the next 10 mins or so, anyone else around will either need to make peace or fight for it.

My plan is that increasing the crate loot spawn, and putting some new materials in those crates that aggregate to something you need will make the end-tier loot game much more fun and combined with infamy changes make the conflicts more worth while and challenging for a reason other than being a troll.

previewfile_674794464

Workshop

We are starting to see some pretty awesome content coming out of the community on Steam workshop. From a whacky recreation of cs_italy to some totally new full size survival maps, even one with a city (Different to the one Mils is working on)!

We will be looking at getting some of them either featured or running on Official servers in the next week, vote for your favorites here:

Steam Community :: Hurtworld

Next week

Next week I am moving back on to Item V2 / Gunplay / Infamy changes described in previous blogs. Should hopefully have something workable in the next couple of weeks.

Gavku

Still on construction stuff at the moment. Going through some of the new things we added and seeing what has been breaking, as well as chasing up on some of the issues people reported about since the update.

Its been great seeing a bunch of new screenshots coming through with people being creative in regards to how they use the new construction system and prefabs.
A community member Jester did a rad vid of whats shes been up to. Below is a screengrab form the video.
JesterGas
I also stumbled across a cool chateau like construction by a player called Morte.
Morte
And a Brunswick hipster townhouse by community member KowaIMT2
KowaIMT2
Now that we feel fairly confident with the process, we are making a bunch of extra pieces like single doors, hatches, fireplace, various lamps, window slits on the diagonal walls etc.

Cow_Trix

I’ve been mostly implementing new construction attachments, fixing bugs relating to the patch, and putting in some new features as well. It’s been really awesome to see all the buildings you folks have made over the last week. Some awesome stuff there!

We’ve got some new construction attachments coming soon – so far, a trapdoor and a single door.newAttachments

I’ve also been working on some features that will come in very handy as we grow the construction attachment library, and for when we hopefully release a way to mod your own into the game. Part of the maintainability problem with the attachments is that there are lots of attachments that are very similar, but not quite exact. There is really nothing different about a wooden wall and a stone wall, apart from health and material. But stuff like attachment points, validation configuration, visualisation, all that data has to be maintained. This can be a bit of a nightmare with three material types. Now, construction attachments can inherit properties from another attachment. So we can have a “master wall”, and all other walls will get that information from it. This makes it much, much easier to do things like put in new material types and make quick changes to common attachment pieces.

One of the biggest pieces of feedback we’ve received is with the new Build Limit system, so I want to take some time and explain our motivations for introducing this system, and also how we’re improving it to make it a better experience for you. Build Limits are a pragmatic solution to the problem that arose in the Infiniwipe servers in the last patch. Simply put – people build BIG bases. And I’m not talking a few levels. I’m talking gargantuan, sprawling structures that were millions of polys. We had lots of¬†players tell us that they couldn’t even join these servers on low-spec machines, let alone get a decent framerate. Build complexity is fairly straight-forward, for objects that you build with the Construction Hammer. The complexity is how many vertices they are (with a few caveats, it’s not exactly the vertice count but safe to say it has a direct correlation). So simpler construction objects will take up less of your build limit. So if you hit it – go and delete those trusses!¬†Importantly the build limit is configurable. Ask your server to increase it if the population agrees that their graphics cards can handle it! But be aware that you may be preventing lower-spec players from playing with you.

However, we could have done better with Build Limits. Owrongs have a fairly high memory cost – something that is on our todo list to fix. It doesn’t help that people seem to enjoy planting a few thousand of them – and then that happens a few times on one server, and then everything crashes. We put owrongs into the Build Limit system with a very high cost, as a temporary solution to this. However, this has confused a lot of people and I think had them hit the Build Limit far before we intended, with quite small bases. What I’ve done this week is split the Build Limit into an arbitrary amount of categories, so there is no longer just one. Now there can be a per-cell limit for structures, machines, plants, and whatever else we need to put some cap on, but these limits don’t need to overlap. Again, all of these limits are completely configurable if you’d like to run a server with different ones. So, all of you that hit that build limit because of an Owrong farm, you’ll be getting a lot more room to breathe in the next patch.

I’ve also made the UI much more usable at lower resolutions, especially with things like chat and stat readouts. Check out this before/after comparison at 1024×768.

after

Mils

I’m still adding flair to the major buildings in the cities as well as working on all the new icons that went into the build system.

I wanted the structures that adorn the outside of the buildings to perform a visual role but also I wanted them to be a bit functional. You can actually run down some of the shapes that have been added to the outside of the building as seen in the following image.

MoreUniquers_0002_Layer 3

I also took inspiration from the local buildings here in melbourne which use a lot of brightly coloured geometric shapes on the out4er faces of the high rise buildings.

MoreUniquers_0003_Layer 2

MoreUniquers_0001_Layer 4

I also made a multi use column to break up the square shape of the regular buildings.

MoreUniquers_0000_Layer 5

And what city would complete without the trusty scaffold.

MoreUniquers_0004_Layer 1

Will be getting back into full swing with the city now that the update is squared away.

Dev Blog