Press Kit Wiki

Hurtworld Update #103

Mils

The Slug is ready to be implemented by Tom this week. I got the texturing finished last week and it’s looking beast! I’ll be putting a heavy slot hauler trailer thingy on the back soon too. There’s a simple colour mask on this so we can vary the paint. This truck right now won’t get the same optional panels that the other vehicles have because it’s more of a utility vehicle. The tyres got a new treatment which made more sense than the original design, which was too ‘toony’. This is going to to be a great game play addition we think and I can’t wait to drive it.

Slug_Standard Slug_Headlights Slug_Taillights Slug_Colours

I also got going on the Recurve Bow components again. This is a nice start on the ‘Gnarl, Riser’ This is the sculpt, I’ll be moving onto the low poly today.

RecurveBowRiserGnarl

Spencer

Hi Guys, for this Fridays experimental patch we will be rolling out the following: Silencers, In Game Map, Sound Improvements & Entity Spawning Optimization. As usual we will aim to push it out at 5pm Melbourne time and will include a wipe of all experimental servers.

Sound
I started the week implementing silencer mechanics for our AR15 and AWM along with giving the pistol some new sounds. While working on the sounds I realized working with the Unity built in distance falloff curves for anything remotely spatial is impossible. I wrote a custom falloff curve generator that gives much more predictable results and should fix the issues of creature sounds being audible over massive ranges.

Entity Spawning
There are thousands of network entities around the map like doors, resource nodes, creatures, lockers. We don’t want you to have to load everything in the map at all times for performance, so we only spawn for each client what is directly around them. As you travel around the map, some objects are destroyed on your client and new ones spawned as you subscribe to new network cells.

This is a good start, however when you join a new cell (40x40m or so) with lots of creatures or an epic base with 40 cars, there is a lot of work that needs to be done to spawn everything. If we did this in one frame, your game would freeze for upto 5 seconds while everything spawns in.

To solve this, a long time ago I built a deferred spawning system, where when joining new cells, at most one network entity would be spawned per frame. The result is instead of instantly spawning 500 entities, we spawn 1 entity per frame for as long as it takes to get you up to date. At a tick rate of 80hz (most our servers), this process can take around 7 seconds to fully add you to a cell. This is usually fine as we add you a long time before you are actually standing in it, even in a vehicle.

The problem we face now is when you respawn (or teleport due to a mod), the game isn’t able to predict this ahead of time and is stuck trying to load everything as fast as possible. This is often the time you want to interact with objects most to get back out in the world and kill the guy who robbed you.

In our old system, if a player wasn’t 100% spawned into a cell, the networked objects in the cell would be in a pending state as it was too difficult to determine which ones were ready to communicate. A side effect of this issue was your storage containers showing no items because they tried to send messages before your client was ready to receive them and assumed you already had everything you need.

In this In this Friday’s patch there are 3 major changes to entity spawning:
1. Any entity that has spawned on your client is now interactable regardless of if you have finished loading all entities (If you can see the object, you can use it)
2. Deferred spawns will prioritize each entity type differently in this order: Doors, Storage Containers, Machines, Ownership stakes, Everything Else

The effect this should have is, your lockers should spawn almost instantly on respawn, you should be able to interact with them as soon as they spawn, and doors will spawn first so minimal raiding hints can be obtained while still loading objects. There is one more optimization I could do by prioritizing spawns based on distance, I will wait and see how this feels to people on busy servers before going down that hole.

In Game Map
Cow_Trix has banged together a pretty kickass map system in the last week, there are a few reasons why I decided to put this in game. I’ve held off doing something like this in the past as learning your way around can be an interesting challenge. I was concerned making navigation too easy would take away from the natural skills people can develop in the game, given that everyone uses a map from the internet (me included) this point is sort of moot.

What I am really excited about with the addition of the map, is the ability to easily mark geographic locations, areas and shapes for different gameplay mechanics. One example is localized weather events are very hard to warn people about and make visible in the distance so people can avoid them. Because of this we can’t really add weather events that are particularly harmful as its pretty much random luck if you get stuck in one, however if we can mark an area on the map ahead of time players can adjust their plans around what is going to happen.

This doesn’t just apply to negative events. As I discussed in previous dev blogs, we are currently prototyping making resource hot spots less static, but we still want people to know where they are so they can contest them rather than just stumbling across one and farming it in peace. The map makes all these things really easy to prototype without needing in world effects that can be very time consuming to build, and costly to your FPS when they are in the distance.

Hotspot Competetive Experiment
I am currently prototyping a competitive test mode, paced much faster than existing Hurtworld, where most resources come from airdrops and meteor showers that happen very frequently and are visible on the map if you are close enough. I’m looking forward to lots of gunfights over interesting Terrain, death actually mattering because your base won’t be right next to the point of contest, and freedom to build anywhere again.

I’m also playing with much denser occlusion. More trees, more frequent and smaller mountains, making it much easier to get lost when you want to. Having a map to help navigate and hotspots on the map to pull people together and means there isn’t as much reliance on large open shared spaces that are easy to navigate and spot other people. I think this will help solo players a lot as people will have more choice over when they engage in a contest over loot, and should be able to scrape by in the middle of nowhere if they aren’t up for PVP or are under geared. I aim for progression to still be possible without contesting hotspots albeit much slower.

Cow_Trix

Heya folks. This week I’ve been working on the new in-game world map, coming soon with many of the features you guys and gals have come to expect from a survival/online map. At this current iteration you have a small minimap up the top right-hand corner of your screen that shows your local proximity, which can expand up to a full screen map. There will also be a permanent compass sitting at the top of the screen. You can see ownerships stakes, shacks, and your death – with a countdown of how long you’ve got to go claim your stuff until it despawns. You can place a waypoint, and while I’d like to figure out some way of sharing that waypoint easily with your friends, that may take a bit more work on the social structures of Hurtworld. Most of my time here has just been in trying to polish this particular feature a bit and make it easy and intuitive to use, trying to draw on other games with similar UI features to make a bit of a common language. I’m excited to see what we can do with the map, and I think it opens up some doors for being able to do cool stuff somewhere, and being able to easily tell the whole server about it.

1

I’ll probably keep polishing up the in-game map this week, and then also try and get a new version of the actual map, i.e. Mangatang, out this Friday. The last build we did of Mangatang had a bunch of issues from the small to the large (whoops, one spawn point anyone?) so that should be fixed.

TEHSPLATT

Hello, this week I made some changes to the cargo crate to give it a sense of scale while in the air and made a bunch of LoDs for everything. I’m much happier with the new look, it actually has a sense of scale to it now. I sized everything properly so nothing feels too large or too small in relation to another object. I couldn’t help myself and made some little scenes with cool lighting cause I never get to play with assets like these haha.

PlaneShot DevBlog

I also started working on a 2d rendition of the map to be used in game. This is still a huge work in process, I’ve done a couple maps before but they were all very stylized and also weren’t really going to change so I could take my time, but our map is going to change a lot and needs to be updated constantly so I have to find the most efficient way to make this look good.

MapDevBlog

Tom

This week I’ve been continuing on with bug fixes, reintroducing caching for the mesh baker system and starting to setup the Slug.
Starting with vehicles I’ve fixed the issue with the inventory UI breaking when switching to the storage tab. I also fixed an issue where you would always get your hits denied when shooting someone in a vehicle that wasn’t sitting upright. This was because we weren’t saving rotations properly in our hitbox history buffer but this rarely caused any issues as most entities only rotate around their up-axis and their collider in the forward-right plane is symmetrical.
I also fixed a bug with our vehicle cameras, when the camera updates its position we do a series of raycasts from the screen corners to the camera pivot point to make sure we aren’t placing the camera through a wall inside of someone’s base or some other geometry. When inside a vehicle this camera pivot point wasn’t being updated correctly and it was instead being taken from the players first person camera position. This was most noticeable in the ‘crash vehicle’ the player enters to simulate crashes, when rolling along the ground the players first person camera position would dip under the terrain and then the raycasts would hit the terrain telling the system that the terrain is blocking the camera and we should put the camera in front of it. The player would then roll out of this state causing some nasty motion discontinuity as the camera would quickly shift under the terrain and back again. With this fix you’ll be able to crash without the camera freaking out.

I’ve also been diving back into the mesh baking system to re-enable runtime and build time caching.
Runtime caching means each time we combine meshes we store the result so if we need that combination again we can just retrieve it from storage rather than doing all the work of putting it together again.
Build time caching is an improvement to our mod build process, our mesh baker relies on us pre preparing our mesh attachments so they already contain the full set of skinning data and skeleton bindposes and also transforming all meshes into the same space (so all the meshes have the same up, forward and right directions). Previously we were doing all this work every time we kicked off a new mod build, now we store the prepared mesh attachment after each build so we can skip that work and speed up our build process. To make sure the mesh attachments are always fresh we delete them whenever their configuration changes (eg. which bone they are attached to) or whenever changes are made to their source mesh.

In the coming week I’m going to be setting up the slug and start playing around with our heavy slot concept where you’ll want the slug to move these heavy items around. We’ll be experimenting with movement debuffs, blocking equipping items (so you can’t use guns/tools) and taking up many inventory spaces but then having special dedicated slots for heavy items on the slug.

 

Hurtworld Update #102

Mils

So I got the masks for the AR15 and the AWM sorted out last week. These are in the game now and are looking nice. The colour schemes as I said recently are selected by me and are not as ‘Eye Cancer-y’ as the early testing colours that were way too bright for the most part. There are 3 Tiers for the colour schemes right now as you can see in the image below. These colours get brighter as they go up the tiers and have more varying colours. When combined with the different masks it makes for a fair bit of variation. We will add more colour schemes in the future, but have more pressing items to get on with right now.

I am starting to re-texture the Slug, which is our big hauler truck that has so far never made it into the game. It has been sitting mostly complete for a while but the textures need work. I will be changing the vehicle texture style to come into line with our newer more polished texture style. We will be pushing the stylized PBR workflow into this vehicle and will probably rework the other vehicle textures later on. These shouldn’t drift too far from the current vehicle textures, the main difference will be the wear marks on the paint, and the use of more correct PBR material types. We are going to implement the ‘Heavy Slot’ with this vehicle. The Heavy Slot will be applicable to the player also and will be used to haul large objects. The Slug will act as a multi heavy slot hauler that can move bulk items in large quantities. We hope this will create road war type situations that will require large groups to move the truck and other large groups to attack the truck. This should create some interesting encounters between players. Can’t wait to go full road wars!

AR15_AWM_Masks

Tom

This week I finished up work on the 0.4.7.0 patch that released last friday.
This involved setting up the item mutators for each item with visual options. The mutators ended up being great for this purpose as their generic tree/node structure doesn’t lock us into any specific setup. This allows us to give completely different options to different gear sets, we can have as many different rarity levels as we choose and structure the mutator however we want. For instance the AR15 is setup to mostly appear as stock without any custom colors or patterns but has a chance to roll some custom colors. We’ve separated the colors into tiers of rarity as well (as you can see in Mils’ post), tier 1 rolls set one custom color channel, tier 2 sets two and tier 3 sets all 3 channels to custom colors. The mask/pattern selection occurs separately to the color selection but is also broken down into tiers, this is something I think I will be tweaking in the coming week as some of the more complex patterns can look a little strange without all the color channels set so I think linking the mask selection so the rarer patterns are much more likely on a tier 3 color roll would be for the best

I also spent some time setting up the attachments for the AR15 and AWM.
First up was creating the crossover attachments (ie. the red dot sights for the AWM and the scope for the AR15). Ideally we would’ve been able to leave these items as the same item that can be applied to either gun but although we have most of the visual side of that tech working we also need to extend the gameplay systems so we can do things like define separate sight offsets based on the root item.
Once the items were created I setup the stats for the items, currently the AR15 attachments are intended to be a kind of side grade where you pick the attachment depending on your playstyle and what you are doing, there shouldn’t be a clear winner (except maybe for sights). Because of this the stock AR15 selects its attachments randomly but I restricted the more interesting sights like the red dot and scope to be found in drops only.
The AWM is setup a little differently, its base attachments are always the same and will not be found in town loot. The town loot attachments are intended to be minor upgrades.
Unfortunately the silencers didn’t make it into this patch as we weren’t ready on the tech side of things just yet but Spencer is working on that now so hopefully we can push them out to you soon.

This coming week I’ll be starting off working on bugfixes for the latest build, so far I’ve fixed a bug that was causing players to appear with missing body parts in rare circumstances and another problem where player renderers could be culled when they were really still visible.
I’ve also found the cause of the vehicle windows appearing and am working on a fix for it now, these fixes and more will be pushed out in a bugfix patch later this week.

Spencer

This week I’ve been working on bugs and fixing up a bunch of PVP stuff. I’ve decided not to go 100% on the PVP iteration right now as the dynamic hotspot changes will shake up the game a fair bit so its probably better to refine raiding balance once those things are in game.

Things I am fixing up in PVP are implementing the silencer properly, going over conflicting states like sprinting while reloading, and doing a pass on basic recoil and weapon damage.

Thanks for all the bug reports, we are doing our best to work through the list.

Later in the week I will start implementing the Air Drop system.

TEHSPLATT

This week I got started on the Air Drop assets, which include a parachute, cargo crate and cargo plane. I started with the parachute due to it being more inline with the stuff I usually do (clothing/organic stuff). The reference parachutes had a lot more segments which I reduced to keep it stream lined for the games style and also so it wasn’t as noisy while in the air. This was a pretty straight forward asset.

ParachuteDevBlog

Next on the list was a cargo crate, we had a look at a few different ones and I decided on the style of the model pictured below. When I was modelling it I knew how big it was meant to be but once it got attached to the parachute and hung in the air with nothing around it, the scale suddenly made no sense and was mainly seen as a small container a single person could lift, which was not the intention. I will be modelling a new crate the looks more like a military cargo drop, sitting on a wood pallet, tied down with straps.

CrateDevBlog

A crucial part of the Air Drops is the plane, I’ve modeled a pretty standard cargo plane, due to it being so far away it doesn’t have to be insanely detailed which works out well for me. With all these assets, finding the perfect scale for all the different objects in the Air Drop should be a breeze.

PlaneDevBlog

Cow_Trix

Heya folks! I took most of last week of, so not very much from me this devblog. This week I’ll be revamping weather, and implementing a map for the game – two things that we hope will be pretty big changes in the way you play. Firstly, in terms of the design of weather, we’re going to move away from weather events where it’s hard to tell what’s going on, or some very light environmental pressure is applied. It might be realistic to have a rainstorm make you slightly wet and cold, but it’s about as interesting and fun as getting rained on in real life. So we’re going to try out rare but much more dangerous and explicit weather events, in which you will either need some item or to do something to survive. So poison clouds, irradiated rain, and solar flares here we come!

One of the things that came up in this discussion (and previously) is that we really should have a minimap. It would mitigate some navigability options we have in the map, give us the ability to clearly communicate where interesting things are happening (like weather events) and mean you can be a lot less scared of getting lost. We’ve decided to make it a core functionality – as in you won’t need an item to access a map – and to possibly retire the compass into the map system as it develops. Of course, community server owners will be able to disable players having access to the map if they want. More on all of this stuff next week!

Hurtworld Update #101

Mils

We decided against using patterns on the clothes at least for now as we didn’t want the clothes looking too noisy and ‘el cheapo’ We are going to run with large block colours that will be hand picked by myself or TehSplatt. This should guarantee a colour set that doesn’t look like a clown spewed all over your outfit. I started sorting through the textures for the player making sure that all the clothes/gear that are currently in ItemV2 have a colour mask which we will use to vary the colours of the characters in the game. I also scaled down some of the textures that were a bit big. This will shrink our ever-expanding content data a little and boost performance.  After confirming that all the items have at least 1 mask, I laid out the array you can see in the pic below. I’ve picked colours that aren’t too saturated as I think they look better in the game. I’ll be handing the scene over to Tom so he can extract the colour info and correctly author the items in the game. The rarity of these colour schemes will be chosen by us based on our preference.

ColouredMasks02

ColouredMasks03

Tom

This week I’ve been continuing work on the upcoming 0.4.7.0 patch which we’ll be releasing this Friday, the 6th of October.
I’ve been focused on implementing the design I spoke about last week where items can randomly roll their appearance. I’ve been doing this using ItemObjectMutatorStacks which are assets that can be attached to our item generators to alter the item based on context. This context can be rarity, biome (of where the item was spawned) or random. We use the random context to pick the items look based on probability weighting.
Currently I’ve got a few test items setup with some placeholder looks to test the system out and after working through a few tricky bugs related to nested item serialization it appears to be working well.

Tomorrow I’ll be setting up the items following this pattern with the appearances that Mils has been picking out and also tweaking the town loot so attachments can be found there.
Once that’s all done I’ll be able to get an internal build done so we can start the testing and refining cycle.

0.3.8.9 OSX Issues

I also spent some time last week removing the bakenavmesh console command in legacy Hurtworld (not ItemV2) that some players were using to crash the construction system leaving bases invisible on the client.
Unfortunately it looks like the 0.3.8.9 build has some problems on OSX where the input manager doesn’t resolve correctly. We’ll try and push out a fix for this with Friday’s patch, our build process has gotten pretty complex running both branches simultaneously on the one install so it’s a big time saver for us to wait and roll it all into the one update.

TEHSPLATT

Well Hi there, this week I spent a good while cleaning up all the mess I’d made during the creation of the new build biome, lots of files all over the place and things named weirdly and just bad organization, not to mention important files mixed with junk spread across two desk tops. So after the cleansing I started wrapping up some lose ends here and there, mesh and texture fixes, sizing issues, that sort of stuff just tying everything up before taking on another big chunk of work. I made some new world items, more building resources, might need to iterate on them a bit more due to similarities to other icons, but there’s some easy fixes to that sort of stuff like stacking the objects to make them look more like building materials. Metal has it’s challenges when using PBR in a stylized world, if you make the metal look too much like metal it becomes realistic and weird looking among the other items but if you hand paint it, it can look too cartoon-ish, so it’s always interesting finding that middle ground.

StoneBrick and MetalPlate

We also found an interesting problem with specular values coming in far too shiny, so now I correct the values in Photoshop after exporting from Substance Painter and it seems to work pretty well. As you can see here the one of the left has a very wet look too where as the one on the right feels more like a scratched up helmet would. I’ve had to run through a few old assets fixing this little problem. Once I get the last of this stuff wrapped up I’ll be moving onto some Air Drop assets which should be interesting.

HelmetGlossFix

Spencer

This week I’ve been doing some house cleaning in ItemV2 and working through some long standing + critical bugs. I’ve also been talking to members of the community on the best ways to solve balance around divided issues like loot balance and bunnyhopping.

porque

In this weeks patch there will be a new console variable bhopfriction <1/0>. When turned on, bunnyhopping will not be possible. This will hopefully give people options while we come up with a solution that everyone is happy with.

I’ve also added some new loot modes to playerlootmode:
Backpack Only
Backpack +1
Backpack +2
Backpack +3

These will be reminiscent of infamy, like everybody has the same amount of infamy already. You will always drop resource items (even in hotbar) and any gear in your backpack. Modes with +1,2 or 3 will drop the corresponding amount of secured items from your hotbar and equipped gear.

PVP Iteration
I am now moving on to the PVP iteration. I will be looking at making PVP great again, incorporating the new more powerful weapons into the gameplay so they are balanced and useful. I’ve only been in a a gunfight a few times in Hurtworld, mainly because the cost of weapons don’t make sense to not take a bow. I want this to not be the case. Part of this iteration will be fixing up some stuff that needs polish like recoil, gun sounds, silencer functionality, raiding balance, weapon damage, PVP armor etc.

First on my list of functional changes is solving the issues around third person camera shooting projectiles from a magical point over your shoulder, making it possible to hit people that can’t see you
bulletissues

SDK Update
Today I pushed out a big ItemV2 SDK update. This can be downloaded by switching the SDK branch to ItemV2 in steam tools. In the update you will find the complete configuration source to our basecontent project to be used as a reference of how we build vanilla Hurtworld. Tutorials on how to use each part of the SDK are coming soon, for now if you want to jump in and have a poke around now is the time.

Cow_trix

Away this week

Dev Blog