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:
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.
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):
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.
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.
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.
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 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!
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!