Press Kit Wiki

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

Hurtworld Update #121

Spencer

Hi Guys, we missed the blog last week as we were flat out no sleep finishing last weeks build. I’ve been playing a lot over the last couple of builds and am pretty happy with how the recent changes have played out. Bed respawn timers feel reasonable and alleviate pressure on constant re-spawning and harassing people, amber protection creates a fairly well balanced trading of value in skirmishes, I’ve been getting very attached to my pimped items and the current upgrades are only the beginning.

Bringing back fixed location Hotspots somewhat
One of the main reasons for making town events and meteor showers was to stop people controlling hotspots by building a base next door and constantly respawning and running in naked taking no risk. Bed respawn timers have reduced pressure on this slightly, so I am less afraid of making specific areas of the map more valuable than others. Currently most loot is evenly spawned across a biome, I feel we now could do with something in between town events / meteor showers and standard ground loot. Something to aim for when nothing is going on.

Server stability and Performance
While we’ve been focusing on gameplay, its obvious our server performance has degraded a lot. There are also a couple of crashes we need to track down. This is my 100% focus this week. We a also have some big new optimization options available to us that we didn’t before that means we can finally fix some of the major bottlenecks in our network protocol. I’m optimistic we can get some big perf wins here, and possibly increase our official player cap on V2 servers once I’m done.

Rare Creature Spawns
We’ve done it before in various experimental builds, we will be adding it back in the next patch. Rare variants will look different, be harder to kill and give better loot. Now we have a more stable foundation to add to and perfect items as rare loot in Fragments, I think this will be an easy win to add another layer of depth to the creature farming system.

Next Patch
We will be aiming for a faster patch this cycle, back to 2 week increments. We will aim for the next patch to be released just before easter on Thursday the 29th of March. This patch will contain rare creature spawns, hopefully performance and stability fixes as well as another pass on the map from Splatt.

Mils

The new system that upgrades your gear now has a name, These will be called ‘Fragments’ While I was waiting for the crew from 3D Coat to get back to me (which they did and fixed the bug in the software, thanks amigo’s!) I pumped these out. They are simple abstract objects mostly, because we didn’t want them to describe only one thing, Having them just as eye pleasing simple objects allows us to use them in more diverse ways. There are colour masks on these so we can vary them a lot and some even have emissive areas on them. I sketched these up for Spencer to pick the ones he liked. Some got a bit too detailed and he preferred they stay simpler. I will design from just parts of the ones that look too complex so that I can still use portions of the designs.

The names of these are only descriptive names for within our project so we can easily differentiate between them while working with the files. These names made these feel like pokemon and I have to say ‘Slurnagon’ is pretty amusing 😛

Concepts01

The completed models in game with  sample colours on them.

I am back onto the Mozzy graphic skins now that 3D Coat is working again.

FragmentsFirst4

Also, since this Devblog is a week late, it’s kind of a double whammy, so I also got the skins done on the chopper. They came out sweet! There is a nice mixture of different designs to give any player a good amount of variation, so they can make their heli a one of a kind. GET TO DA CHOPPA!

CHopperwithSkins

TEHSPLATT

Hello, this week has been a pretty good week in terms of beind the scenes progress with the map. Last build was a bit of a mess, I was pretty new to the tools and had never really run through the full process of building the map before so it got a tad chaotic and the released version had a lot of manual fixes in it to height and placement of objects which is the opposite of how we want our map building pipeline. This week I’ve been thoroughly going through all the loose ends in the stamping pipeline making sure that none of the manual clean up has to be done everytime something small needs to be changed in the final map. One of the main problems was the roads sticking too far out of the ground which had to be fixed by pulling the entire road net work down in the final scene which caused a bunch of other problems. I’ve also added some smaller points of interest to the start biome, these were meant to be littered throughout the entire map but getting the map to stable point seemed like a higher priority and with these smaller stamps working as intended it means adding in a ton of even subtler stamps will be a breeze. Over all, I feel like I’ve really got my head around the stamp tools (apart from a couple bugs that are out of my hands) and building the map and believe I can bring it to a new level now. Below are some of the points of interest stamps I set up as testers.

Pointofintereststamps

I’ve also been working on some new textures today just to help with building the town events and any other town related stamps. I’ve been making sure they are pretty simple and modular so they can be stretched and scaled without any really noticeable grossness. I’ve been using substance designer for pretty much all of them as it allows me to make changes really easily to things I did all the way at the beginning of the texturing process. This is a little junk scene I was using to test them out.

Random Textures

Tom

Hey Hurtworldians,

Since the last devblog I’ve been working on the recently released 0.5.3.0 patch plus its hotfixes.
I didn’t quite get the coloring window complete by our internal cutoff and chose to cut into our testing and polish time slightly to get it in but I think it was worth it. The coloring window isn’t totally finished however, this week I’ve started working on a manual preview camera controller to allow you to rotate and zoom around the item preview rather than it just auto-rotating, hopefully I’ll be able to get this into the next major experimental patch but no promises on that front just yet.
Another change I’d like to make is having the application of new item masks run through the coloring window so you get a preview of the new look before deciding to apply the mask, this change is unlikely to make it in by next patch however.

Dev Blog