Press Kit Wiki

Hurtworld Update #124

Spencer

Hi Guys,

We’ve been busy working away on the next Experimental patch, our focus this cycle is iterating on gear balance and decoupling visuals from function where PVP is not affected. We’ve also been focusing on validating Mangatang against Diemansland and attempting to open out more of the map in an attempt to bring back the open spaces, make vehicles more useful and create more memorable areas. Mangatang has introduced some cool elements we want to keep, but we’ve lost some things from Diemensland that really made Hurtworld what it is. We will keep experimenting until we get them back.

Update Legacy!?
I see this comment a lot, I take it with a big grain of salt as obviously people posting it are either taking the piss or not great at communicating, which is understandable for non English speakers.

What I want to do is try to open a discussion on what these comments are trying to convey.
As V2 is an update of Legacy, we are in fact updating legacy. So I will try to translate to something that makes more sense:
“I don’t like the updates in the experimental branch, roll them back and make different ones”

Given the lack of direction on what changes people want to see that are attached to legacy, I see it more translated to this:
“I want to play legacy, but player numbers are too low due to the fractured playerbase. Get rid of competing branches and make legacy attractive to new players without changing too much that I am attached to”

This starts to become a difficult proposition for us. We are going to push Hurtworld forward, this is not an option. The team are dedicated to making Hurtworld the best game possible and we acknowledge some of the magic from Legacy has not translated into V2 YET, we will keep working on it until it has. Looking at how far we’ve come in the last few months in getting V2 back closer to Legacy while introducing new features, I don’t think it will be long before V2 is leaps and bounds ahead of legacy in all ways.

How you can help
If you miss something from Legacy, let us know what it is. Try to put into more than a 2 word sentence an experience or gameplay scenario that has been lost and try to figure out why it was lost. We are constantly going through the same process but can’t possibly play the game as much as you guys. V2 is not going anywhere, help us make it awesome.

Player Numbers
We have big plans for the release of V2 from experimental to the main branch. We will focus on amplifying signal when we are ready to push V2 to live and draw as many old and new players in as we can, but we want to have V2 as kickass as possible so we can retain those players and continue to build our playerbase for a long time after that release. We have been very quiet for a while, we will start making a lot of noise soon. In the meantime, if you are in a region with low player numbers, we recommend you play on the EU East V2 server (which all the team do with >350 ping from Australia). Besides driving vehicles, you will be surprised how little impact the latency has on gameplay with our netcode.

Next patch
The next patch will go out on the 3rd of May around 7pm Melbourne time.

Mils

I have made good progress on the Pistol this week. The texture work is almost done, just a wear and scratches pass and maybe a couple of things to make the different parts more discernible from each other. The gun this is based on is mostly an oxide metal finish, which I decided to change up a little bit from the AWM and the AR15. I am going with a dark gray oxide for this one, which will make it look a bit more unique and bring out more of it’s details since it is smaller in scale. There are some amusing logo’s on the sides and some punched text.

I think I’ll get the texturing done tomorrow and then will tackle LOD’s or they will have to wait til Monday. After this I’ll move onto the other parts, which shoudl got pretty quick since I already have the low poly meshes done.

MainAlmostFinished03

I got the Mag done this week too. This is the Gun and the Mag rendered in the actual Unity shader with the scaled down textures…

GunandMag

TEHSPLATT

Hellooo, this week we discovered that the current Mangatang map doesn’t actually follow any of the formulas/rules that were developed and put in place during the creation of Diemen’s Land. I’ve had a feeling that the map had a lot of weak areas that hindered game play and after we compared it with Diemen’s Land we found a huge difference in how things were layed out. Diemen’s Land had a lot more open space and contrast between tight corridor like areas and these large open spaces, currently Mangatang is just medium sized areas that lead to more medium sized areas which causes a sense of never ending sameness. After some discussion we came to the conclusion that opening the map up more and reshuffling these areas to recreate the good things about Diemen’s Land while adding in all the new ideas and assets we have been working on for the environment. Here’s some screen shots of the concept I’m working on for the start desert, using what was learnt about open spaces in Diemen’s Land mixed with some of the new stuff we have.

Mangatangv2

I also did a quick concept of an idea we talked about for what would essentially be an alternate to the camp fire for hot zones. The idea is a small shelter that would provide shade to stop players from over heating but would need some kind of resource as a fuel source to prevent it from “degrading” like how the camp fire uses wood as a fuel source. This is still just a concept though, and needs some more planning.

CanopyConcept

Tom

Hey Hurtworldians,

Since the last blog I’ve been working on content for the recently released 0.5.5.0 patch as well as helping to plan our next patch 0.5.6.0 which we are scheduling to be released on the 3rd of May.

The rare creatures were converted over to the same probability map spawner system that the meteors use so their spawns could be decoupled from the standard creature spawns which only occur in active cells and could happen more consistently map wide. Previously to find a spawn location we’d scan through all the cells sequentially, timesliced over several frames until finding the correct cell for our random roll. Because the rare creatures spawn faster than the meteors we needed to be sure the spawn cell would always be found in time for the spawn so we changed this system to use a binary search which turned out to be fast enough that we could now run the scan without timeslicing (find the correct cell in 1 frame).

The other major change to accommodate changes to creature spawns was adding an optional line of sight check to our DestroyInTime component that raycasts to all nearby players and cancels the destroy operation if a player still has line of sight on the object.
This allows us to teardown rare creatures on a timer (normally creatures are torn down when spawn cells deactivate by having no players in them for a short time) without creating the frustrating experience of having a rare spawn disappear in front of you. This line of sight check is currently only activated on rare creatures but I’ll be doing some more performance tests and hope to extend it onto resource nodes as well in time for the next patch.

  • As well as the creature spawning changes I also worked on:
  • Fixed SDK issues with EntityBinaryEffect and EffectZoneBuilder
  • Fixed player animators not being culled properly
  • Separating fragments into tiers and creating the recycling / rerolling system
  • Fixing road collider inaccuracies
  • Gear balance tweaks including creating new upgrade paths for gear, balancing max upgrade points and shuffling things like move speed on boots so the lowest tier boot no longer gives the biggest bonus.
  • Creating several new gear items

When creating the new gear items my main goal was to try and utilise all our previously unused gear models and a secondary goal of creating more heat protection gear to balance out the cold protection gear and having equivalents for some legacy heat protection items.
Whilst I think both of the goals were achieved many of the items don’t feel like they have a strong place within gameplay and as a result are rarely crafted and even more rarely used.
We’ve always struggled with the somewhat opposing goals of having gear provide enough value that players will want to wear it whilst at the same time trying to provide little to no pvp advantage through gear so with our next experimental patch we are going to experiment with removing the risk of wearing gear.
To make this happen we’ve created a new type of amber protection where the gear is automatically always protected.
Currently we are experimenting with how many items we want to apply it to but currently we are thinking that it will apply to all gear items except backpacks (and backpacks will become unprotectable).

We’ll also be adding visual override gear slots to the player’s inventory, when items are placed in them they override the visuals of the item in the linked slot allowing you to make any gear item look like any other gear item from the same slot. This allows you to pick how you want to appear without concerns about the stats offered by a piece of gear, it also makes it much easier for us to add new gear looks into the game as we can add them as empty items that only add visuals without needing a compelling gameplay reason to exist (something that the recently added combat gear for example failed to really provide).

Along with the focus on the gear experiments I’ll also be doing a pass on biome environmental pressures and also rebalancing the heat progression to match the cold one better.
This will mean tweaking things so the sand dunes is roughly equivalent to the forest and the red desert is roughly equivalent to the snow.
I’ll also be rebalancing Ultranium to be more of a sidegrade to mondinium rather than a straight upgrade, more on this next week!

Hurtworld Update #123

Tom

Hey Hurtworldians,

This week after a nice easter break I’ve been working on bugfixes for the 0.5.4.x experimental release. Whilst Spencer got to work fixing problems in the network layer with our structure initialization I started to look into why players were able to shoot others inside of bases after they had failed to load.
In ItemV2 we are running more robust hit validation where after a players computer records the hit it sends off information about the hit to the server to be validated. The server then performs a series of raycasts to make sure it agrees that the projectile was aiming at the target and there is nothing in the way. If the server doesn’t agree with the hit it sends back a deny message and doesn’t process the hit any further, the deny message turns the players hit indicator blue to indicate a denied shot.
This wasn’t quite working properly when the server would hit something other than the client target, although the deny message was getting through ok the server was setting up the data about the hit incorrectly so it was still processing a hit on the target rather than a hit on the thing that was in the way (like the base walls in this instance).
Now the next time something like this occurs you’ll still be safe in your bases even if they don’t exist on your local machine, as long as they exist on the server.

I’ve also been making big improvements to the way binary effects (no build, freezing, burning etc.) are handled by the stat system. Shortly after releasing 0.5.4.0 and running our new network profiler we realised we were using an insane amount of bandwidth to sync binary effects on the server with effect display components on the client. Because we were only using this to display whether other players were on fire or not we quickly pushed out a hotfix turning off this sync until we had time to investigate properly.
On thorough investigation of this system I found that the list of effects to sync wasn’t releasing effects properly effectively leaking memory and ballooning in size over time, compounding this problem was the fact we were syncing this list way too aggressively on every add or remove operation meaning the sync message could be sent multiple times per frame!
Now this has all been made more sensible, the sync list now is just the list of the binary effects themselves rather than trying to manage the state of the client sync elsewhere and the effects are synced up as part of EntityStats’ slow update loop.
With these improvements we’ve reduced our constant network traffic by ~50%!

Our next major experimental patch 0.5.5.0 will release on the 12th of April.
Along with the binary effect fix mentioned above and some other huge networking improvements Spencer has been working on we’ll also be doing a balance pass through the gear system turning more gear items into upgrades so you can carry your fragments and other modifiers through the progression.
We’ll also be looking at adding more heat protection gear into the game as well as finding a place for several currently unused assets like the military gear.
We’re also looking to add more fragments, start separating the fragments into different rarity groups and creating an option to ‘reroll’ unwanted fragments.

Mils

Hey all! I’ve been working on the pistol some more. Got the Hi Poly done and will finish the UV mapping today/Monday. Been a bit distracted this week talking to players and server admins about bugs in V2, then filtering the relevant ones and passing them onto the coders. Still the pistol is coming out nice. It’s the old one just overhauled and made a bit better mesh-wise. The main changes as I may have mentioned earlier is going to be the texturing. I should be baking by Tuesday then hopefully Texturing by Wed or Thur.

The image below shows the Hi Poly in Red and the UV checking Texture on the low poly. I did have to do a little tweaking on the low after the UV mapping was done, Looking straight as an arrow now.

HiandUV

 

Spencer

Hi Guys,

This week I’ve been continuing work on improving server performance using profiling data from the new network engine. Progress has been really good and I have narrowed the remaining network bottleneck issues to structure initialization when players connect. The previous system had a load balancer in place, but didn’t take into account concurrent connections properly and allowed far too aggressive downloads per player. On top of this the data serialization of the structure information was very inefficient. This caused possible lag spikes on mature servers when players connected, triggering the send buffer full issue seen on most busy servers, which resulted in CPU spikes on the server and heavily delayed RPCs in some cases.

This is all fixed now and should be much more efficient, along with some big CPU load improvements for inventories and map marker objects serverside that increased my local editor empty server FPS with a big savegame loadedfrom ~200 to ~600 fps.

I will be periodically increasing server player caps and continue to profile for bottlenecks. Gameplay wise I don’t want to go above 120 players per server on our current version of mangatang, this may change in future.

TEHSPLATT

Afternoon, been working on ironing out the rest of the map tool kinks. It’s at a pretty good point now, no more extremely time taxing manual processes, still a few things that it needs to be really efficient but those things will come in time. Working on creating more negative space than filling the map with lots of stuff and things, clearing out trees and flattening height in certain areas has been making the map feel a lot more interesting. It seems like something very simple to do (and it is) but actually getting your head around where to clear these areas and how big to make them along with making them feel like they belong can be pretty tricky but after last release I got a pretty good idea of what I need to do. Also making the roads interesting and not just straight, flat boring-ness. Which reminds me I fixed a problem with the intersections causing the terrain height to drop below the actual intersection mesh, this caused collider problems and took a ton of time to deal with every release. So that was a huge win. Now that everything’s moving along smoothly and doesn’t need to be broken down and built back up from scratch every release I can start playing with ideas I have for transforming the map into something with a natural flow that feels interesting to explore.

I also fixed up the Snood and gave it a bit of an update. Added a male and female version because there didn’t seem to be a good solution for a one size fits all. Added a basic camo mask, want to add some more though.

Snoodupdate

 

Hurtworld Update #122

Spencer

Hi Guys, this week I’ve been going deep on serverside performance, something which hasn’t received much love lately. Recently some options opened up for us to optimize parts of our network engine that wasn’t possible before which exposed a shitload of “low hanging fruit” (really slow stuff that isn’t super hard to fix). While I was digging through this third party code to optimize it, I realized how little value it was actually providing us these days so I decided to rebuild a custom version of it for our purposes.

Tonights build contains the new network engine code that came together much faster than I expected. It should give us some perf gains, but the big wins are yet to come. I wanted to get a stable version out in the wild before trying to optimize it.

I have also included a network data profiler for this build that will give me crucial data on where we need to optimize most in the protocol.

Increased Player Cap
Once I do a proper optimization pass on the new network engine I have high hopes we will be able to increase our max player counts significantly. I will continue this focus next week and see how much perf we can squeeze out.

TEHSPLATT

Hello, this week I’ve been working on adding some general varience to the map. Currently the base of the map gets generated then hills and some focal points get stamped all over it, this creates a playable map but for the most part not a very interesting map. The stamp tool allows us to create lots of different subtle variation and spread it out all over the map. It’s still in a bit of a test state as I feel there needs to be a litte more of a planning phase for this sort of stuff but actually getting some of these nature stamps in has helped me understand what needs to be done to really ramp things up. Adding in small stamps here and there always makes the map feel very disconnected and random, where as adding in a bunch of variation stamps and combining them along with creating larger variation stamps in general does a lot more to give you a constant feel of evolving map. With more time I think I can really get the map to a good state where you genuinely feel like the world around you is gradually changing but for a reason. However this will involve creating new assets and rearranging some things so possibly not an immediate go ahead. I would very much like to sit down with each biome individually and create unique rules aesthetics for each one so that you feel the area change in more ways than just a colour swap.

Stuff

Tom

Hello Hurtworldians,

This week I’ve been working on rare creature variants, improvements to the item coloring window, item mask visualisation and general bugfixing and balance changes.

When we first experimented with creature variants we tried to do way too much with it creating at least 4 variants of each creature type at different rarities plus potentially more based on biome. With so many variants it was often hard to notice any difference in gameplay between them unless we pushed things to breaking points creating huge creatures that didn’t move correctly or creatures that could one shot you. Another problem was we still didn’t have anything good to give out as rare loot so players didn’t have much of a reason to hunt them down.
Now with the fragment upgrades and other item mutators (colorers and namers) we think we have something that fits that rare loot role perfectly.
Not wanting to bite off more than I could chew again with the variants I focused on creating just one rare variant for each creature type that will replace a normal spawn around 5% of the time. I’ve also tried to be more conservative with the gameplay changes to them this time around mostly making the variants small upgrades on the base creature.
As an additional incentive to hunting these things down I’ve added the animal mask items back into the game as rare drops from the variants. This time around they give no stats, have 2 upgrade points available and can’t be amber protected.

I’ve also spent some time improving the item coloring window, now the previewed item won’t auto-rotate but you’ll be able to manually rotate it by clicking and dragging over the item preview area. I also added a zoom bound to the mouse scroll wheel (or whatever else you’ve bound the scroll action to).

With Mils’ help I also worked on implementing spray cans as the item mask item’s visualisation. We’ve implemented this by applying the mask preview textures as masks to the spray can mesh attachment, this will allow us to do cool stuff in the future like show all the items customisation choices on the spray can by applying the mask and recoloring it with the colors from the item.

ItemMaskItems

In general balance changes I’ve slightly increased the iron tipped spear pve and pvp damage from 30 to 31, this makes it do just over 100 damage on a non-critical throw rather than 99.9999 damage returning it to one hit throw kills like in legacy.
I’ve also removed the bow snare fragment because changing player move speed in an unpredictable way like that over small time frames was causing lots of movement corrections to occur which felt pretty bad.
I’ve added the fibreglass recurve bow back to the iron workbench and have tweaked the pve damage values on all the bows. The improvised bow gets a buff from 20 to 30 pve damage whilst the other two bows are reduced by 20 pve damage, this brings the fibreglass recurve bow to the same damage level as the standard recurve bow currently is in the live game.
I’ve also reduced drop rates for item namers and colorers as it was way too easy to customise every item you had.

These changes plus more will be in 0.5.4.0 releasing Thursday, the 29th of March.

Milhouse

I don’t really have any pretty pictures to show this week. Tom has remorselessly stolen my hard work and shown it to the world with reckless abandon!!!! Hehehe, well it’s both our work so fair enough. 😛 Admittedly I, in turn, stole Splatt’s spray can and did a rebake on it and a quick re-texture. I had to do the re-texture because I work in 3dCoat and Splatt works in Substance. This caused issues with baking all the PBR textures across.

The can had to be split into two pieces for Tom’s implementation, the top and bottom caps and the cylinder in the middle. Baking these textures across was more of a nightmare than I had time to waste, so I quickly re-U.V’d and re-textured them. This is a technical hurdle I hadn’t encountered yet so will spend the time to figure out which software & workflow will achieve this without bulk nightmares. After all that I made custom textures from the original designs I had in my archives and handed them to Tom to implement in the game. These are looking rad and will make the whole process of colouring your guns/car a much smoother experience.

I moved on to tidying up some icon poses for the AR15 and a few other small jobs that had needed attention for a while. I have a couple more small jobs I’d like to tackle maybe tomorrow and then I’m going back to gun town to bring the Beretta up to the standard of the current weapons. I have a bunch of this done already from a previous build session, including an array of attachments. Should keep me busy for a bit.

Okay I lied, here’s a pretty picture of the Beretta in it’s current state with a couple of attachments on it.

PistolAgain

Dev Blog