Press Kit Wiki

Hurtworld Update #85

Spencer

The first week of our aggressive experimental development cycle has been a challenging one. With bug fixes from the first release we only had a couple of days for the new build. Half of the features didn’t make it in which we have been working on over the last few days. We will put out a patch tomorrow that will add some point to playing on the experimental servers this week.

We’ve been collecting performance data from people on the city build, and as expected we have a lot of optimization to do there.

Experimental Content Update 3 Plans
This Friday we are heading back to the land of survival. We will be introducing some new blueprint mechanics, doing some more work on our procedural map workflow to hopefully make the map much more interesting (and big, and improve performance). Our aim is to start tweaking the balance of full loot so that its not so punishing as you progress further into the game.

Nullius Tests
Something new I tried with the current map is adding more negative space to the playable area by adding very large wasteland type areas around focal points that require vehicles to traverse. As there weren’t really much reason to move between cities, these didn’t serve much purpose.

nulliustests

I did however end up pushing our tech a bit further with support for very large maps. The current nullius is 12km x 12km, I am going to keep this size for week 3, and add back in some of the classic Hurtworld biomes as smaller chunks among larger wasteland.

Mils

What an epic week! So we bit off a bit more than we could chew this week, but we still got some stuff out there to test with the community. It was an epic push on Friday to get as much of our stuff into the test map to try and see how it runs. While we saw a lot of problems with the build we made, we learnt a lot from it. This was the idea. I learned that my cities are waaaaaay too big. While we will keep the big city asset in case we want to use it later, we may be removing a lot of height from it, by knocking out the filler floors. We quickly found that running up all those stairs was just so tedious. Not necessarily the running up, but definitely the running back down. Also the size horizontally may be too much as well. I had to do a specular & gloss map for the city textures. This is no small feat. The Albedo (Colour) map is 259 layers by itself. The Specular & Gloss texture is that but x 2 so 520-ish layers for that one. Man what a mission. The reason for this is because the city runs on 4096 textures, to improve performance and use less draw-calls. This was quite a slog to get everything not only looking right but looking the same. Not only are there these mega-layered textures, but parts of the city have tiled versions of the texture within the 4096 texture sheets but as separate textures. These were created to save poly counts on places like the outer windows on the building exteriors. These also had to look the same as the other textures. Example of the Cities’ 4096 textures below.

CityLayers

I’m also progressing nicely on the AWM Sniper Rifle. Top is the High Poly, Bottom is the Low. I really like this gun. *drool

AWM

Tom

This week I’ve been working on bugfixes and our experimental city survival map type.
Unfortunately we bit off a bit more than we could chew trying to get a new game mode happening in about 2 days and we weren’t able to get everything in that we’d planned leaving it feeling a bit empty and aimless.
We’ve got an update coming out very soon which should start to address some of these issues, the compass is working now (see below) and will show the locations of all machines within 2km. Gear machines sell gear crates, gun machines sell gun crates and ATMs allow you to deposit and withdraw scrash (although the ATMs have a few bugs still to address).
I’ve also given the guns a balance pass cranking up the power of the ar15, fr18 and shotgun, I’m interested to hear what you think of them now.
We probably won’t do too much more work on this gamemode this week, just whatever things will port over to the main game like balance changes.

ThingsToDoInCity

I’ve also been working on a bunch of ItemV2 changes and bugfixes including changing structures with an attachment dependency (like a door or a window) to depend on its attachment even when the construction cell is claimed. We made this change because we think bases constructed this way look odd, don’t make sense and we don’t want such an unintuitive tactic becoming the dominant strategy.
Another change we made was reducing the maximum field of view we support from 100 to 80. We made this change because we think 100 vertical field of view is excessive for a standard 16:9 setup and it was causing us issues with people being able to see through walls with their fov cranked right up. Rather than make the character controller fatter or bring the camera’s near culling plane in closer (which would reduce the precision of the depth buffer causing more shadow flickering problems) we thought this was the best solution.
I’ve been seeing reports however that this isn’t working so well for our players on ultra-wide screen setups so we’ll look at switching it over to a horizontal field of view picker and limiting it this way.

This week I’m going to start working on the performance issues, continue to build on our loot trees and item rolling and keep working through the backlog of bugs and changes.
I also plan to patch some exploits that have popped up in our main branch and roll this update into the experimental map update at the end of the week.

Cow_Trix

Hey folks. This week I’ve been searching for memory leaks, getting the city experiment out, and looking into changing the road workflow into something less destructive.

Firstly we had some nasty memory leaks on the server that needed a look. It turned out we weren’t pooling some high frequency objects correctly, namely the paths that creatures used to navigate the world. So every time you chased a creature, the server would leak. This was an easy fix at least. The second biggest leak was items, which Spence made some good optimisations for.

We got the city out to you all on Friday, and I had a good play Saturday. Definitely a long way to go, but an interesting experiment that definitely stress tested our pipeline and showed the places that needed improving. One of these places is with elements of our map creation process being destructive, especially with the road tool. To mitigate this I’ve started putting together a non-destructive workflow where the road tool captures snapshots of an area, and only stores deltas when it makes changes. With this, we can let the road tool mess around with the terrain as much as we want without worrying about having to regenerate the map all over again. Check out a gif of it in action above.

TEHSPLATT

Pushed out a lot of assets this week trying to get all the assets we need for these experimental game modes. Balancing fast production and assets that don’t look awful can be difficult. The funnest things this week were definitely the Utility box and ATM machine. The Utility box was/is going to be used as a minable resource node in the city, so it had to stand out while also fitting in. I’m terrible at any sort of Graffiti, so the graffiti was done by Mills and is all Hurtworld related which is cool. The ATM machine (and slot machines not shown) were needed straight away due to it being the night of the build so we agreed a back alley make believe style ATM would be a great fit, the slot machines were done in the same style but if they are going to become a permanent part of the game I would like to re-do them as proper slot machines.

UtilityBoxATM

Next on the list was making a new loot crate that looked like the old one but was much lower in poly count. The original box was about 1200 triangles while the new box is a mere 12 triangles and with the help of a normal map comes out looking pretty similar even with 6 flat faces. I also made a small scrap metal pile world item, it kind of looks weird when it’s upside down but it’s not too bad, I would like to touch up the specular map a bit.

BoxsScrap

I finally got to something that’s been on my to-do for a while now, re-UVing the military vest. The military vest was one of the first assets I made and I was still in the habit of optimizing every single bit of UV space for mobile platforms, this creating horrible symmetry on the camo patterns, so I’ve finally gotten round to fixing it and I’m much happier with the result.

Vest_reuved

Hurtworld Update #84

Spencer

ItemV2 has landed. Even in its broken ass state, its been awesome to get back into the rhythm of a playable game and reconnect with the playerbase somewhat. I’ve been madly filling in gaps in the gameplay in the week leading up to the experimental release. Post release we’ve been all hands on deck fixing up all the bugs in our new systems. There is something magical about having a really broken game to fix, the amount you can get done in a day seems so much more than grinding away on a big system.

Things are starting to get a bit more stable in the back end. We’ve been mainly focusing on system issues rather than balance / content issues as most of the current content will be changed week to week as we push out our experimental patches.

Content Patch This Friday
As promised we will be releasing a rather drastic content patch to go out this friday with a wipe. It will include an entirely new map, and change up the gameplay a lot. As we will also be spending a lot of time fixing bugs this week, we don’t have a heap of time to put into the game mode, however we think with some cut corners and art we have up our seleeve we should be able to put something awesome together.

Urban Survival
This weeks experimental map will contain some incarnation of the City Mils was working on a while ago. Guns and vehicles will be plentiful, holding territory will be lucrative and difficult. We basically want to create chaos that will result in lots of:
A) Gunfights
B) Sneaking around
C) Getting killed and raging
D) Trying to jump kangas out of skyscraper windows

What we plan to get out of this experiment, is get a feel for how we are going to incorporate the city into the larger survival game. We will also get a chance to benchmark the performance of the City art and lodding systems, and most of all just get everyone running around it, see what modifications we need to make to get it into the master branch.

It’s experimental. Expect a broken unbalanced fun test of more of our new systems. By the time people figure out how to exploit it and ruin the game, we will be back with another experiment the Friday after! I would throw up some screenshots, but we haven’t even started working on it yet. It should be a good test of how much we can bang out in a couple of days with our new systems.

Last nights patch didn’t work
Some of the files didn’t update from our new build system and didn’t actually get released last night when I pushed out the patch. Guess that’s what I get for doing 4am builds. I have a new patch waiting to go out now which should sort out a lot more issues however steam publishing seems to be offline so I can’t push it out. Will do it asap.

Cow_Trix

Hey folks! Busy week last week getting the ItemV2 experimental build out and fixing all the little bugs that came up in the process. There’s definitely some more work to be done in the map tools, in optimisation, bug fixing and workflow improvements. The map tools unfortunately were not in a state where we could easily and quickly iterate, and we had to leave some stuff out like the roads.

There were loads of little bugfixes here and there, I implemented TehSplatt’s cool new world items, and I reimplemented emotes with a much nicer structure that means that hopefully down the road, when we redo how the player animation is structured, we’ll be able to easily add new emotes as mods. I think the new emote menu is a vast improvement over the old massive one, as well! I also took some suggestions from Spencer and reworked how we setup Item poses and attachments for their world items and icons, so that is a lot more intuitive and simple now. Things like the binary effect UI needed fixing, as well as some savegame serialization issues with binary effects.

Then it was onto localization, which I think we can do a lot better than what we currently do. Currently localization is a community-driven effort, but we’re the bottleneck. In the future, I’d like to allow people to author localization mods on the Steam Workshop that people can subscribe to at will, instead of having a bunch of central embedded localization data included in the game. I’d also like to write a little widget for picking localization keys in the editor, as often we’re setting a field to this very specific type of string data.

This week I’ll be working through bugs you all have raised on the ItemV2 branch! There have been some interesting ones already that should be fixed in the patch coming out today. Please keep them coming on the Steam Forums, it helps us loads.

Mils

It was really good to get the basic ItemV2 to you all last week. While we were rushing around putting last minute stuff into the game we got quite a lot done. Firstly I got the grey boxing on the Recurve Bow to a good place. I made 3 basic sets where all the parts are interchangeable. Below is an image of the breakdown of components that the bow can have. There’s the Riser; the grip part in the middle that the character holds. The Limbs & Strings; a single mesh for both that does all the bending etc. The Arrows; they go ouchies when they are in you. Finally The Rests; the little bit you rest your arrow on.

RBowGreyBoxes_0000_Layer 6

These are the 3 designs that we will be testing. They are very simple geo right now, but we may be adding them to V2 soon to test out.

RBowGreyBoxes_0002_Layer 3 RBowGreyBoxes_0003_Layer 2 RBowGreyBoxes_0001_Layer 4

Lastly, while the coders are mega busy patching and fixing the inital V2 release I’ve been working on this…

Yes it’s the most beloved sniper rifle known to man. We’ll at least to us. The AWM or Arctic Warfare Magnum. Such a beast of gun! Spencer describes it as ‘having chunk’ In the best sense. I agree that it is super satisfying to look at, so we are making this instead of the other thing that was in the Deathmatch build. Below are 3 Stock variations that we can add to it. I felt I should concept these so that we could get a feel for them. The rest of the parts will be easy to copy from reference.

AWMStocks

TEHSPLATT

Finished off the the priority world items (Cash, Planks and Cement) last week. I think they came out pretty nice. As some of you may know, Cash has replaced Amber, this was partly due to Amber potentially needing a custom shader to look good, which would have taken too much time for not much gain. The wood planks were surprisingly difficult due to them being so simple and we were originally going to have the world item as a single plank but it was very hard to make it recognizable as just one plank so a stack seemed like the best option. I’m enjoying doing items with branded design layouts on them like the ammo boxes and now the cement, get to hide a lot of dumb jokes in them.

CashPlanksConcrete_ForDevBlog

After finishing off the priority world items I went through and set up all the icon lighting and poses. This process took a while as all the items needed to read nicely at smaller sizes without having intense lighting changes that would make them look like they were rendered under noticeably different lighting setups. Items like the Detonator Cap have a different icon to their world item due to readability in the world.

IconsFordevblog

Had a go at re-doing the large fallen tree that players gather wood from. I tried to keep it simple while also adding a bit more detail than the original as it was very lacking in the detail area. I went a bit further and tried to do a different style for each biome. The Beach log is still very similar in terms of look and colour. The Red Dessert log is much lighter in colour due to it having constant direct sunlight a large portion of the time. The Forest log has had it’s saturation bumped up along with the addition of mushrooms and moss to give it a more lively feeling. The Snow log was darkened to make it stand out more among the white and was layered with snow.

Wood_Log_large_Concept_Foredevblog

Tom

This week we made the big push to get ItemV2 experimental into your hands. First up was implementing sleepers and unfortunately in my rush to get everything ready I made an oversight and forgot to consider the combat logout timer which was disabled in editor mode and ended up creating sleepers at the wrong time leaving both the sleeper and the player in the world until the logout timer ran out. This caused a whole bunch of problems where if you killed the logging out player the items in the loot drop were also in the sleeper and doing things like splitting the stack and throwing the items out into the world were causing a whole bunch of nasty issues including item duplication. We’ve fixed the sleeper creation timing in 0.4.0.2 along with a host of other item/inventory handling bugs to ensure this can’t happen again even if we were to create sleepers at the wrong time.

After the sleepers I gave the vehicles a pass to bring them into line with the live game. While doing this it became clear that vehicles are over complicated to setup and there is too much configuration that has to be duplicated in too many places (for example wheel slot inventory mappings have to be explicitly setup on both the server and client versions of the vehicle when under our new system they can be derived by the vehicle’s storage config object), we definitely need to improve this and derive configuration where we can but obviously we have higher priority concerns right now!

Right now we’re a mix of excited and exhausted, we made a big push to get ItemV2 out to you all and obviously it still has many issues. We haven’t been taking a break though and should be dropping our 3rd bugfix patch around the time this blog goes out.
Speaking of bug fixing we’ve been getting lots of good feedback and error reporting but it could be even more useful if you could include your game log and a dxdiag file (for windows users only, see the pic below). These files can be uploaded to pastebin.com and then linked in the post/email/message/etc.
This gives us way more info to help find and reproduce your error.

dxdiagHowTo

Hurtworld Update #83

horizon

Spencer

Hi Guys, a much more positive note this week. For the first time in ages, Hurtworld is playable again. Our Friday internal build was close enough to releasable I am confident we should have something to push to experimental this Friday!

With that, I will outline our plans for the next couple of months. However you probably know by now to take whatever I say with a bag of salt 😉

Experimental Experiments
Over the weeks / months of internal testing I’ve tried to do, I’ve found that my goals for the systems we’ve been building aren’t as simple as “throw them in and game is 100x better”. We are trying a lot of things that really haven’t been done before, and with that comes a lot of stuff that doesn’t work first time. The hard part here is determining whats a bad idea vs sub par execution. The only way to figure these things out is keep trying different things, rapidly iterating and scrapping until we break through the barrier.

We have established the wipe schedules, which have obviously become stale after a long period no new content. We plan to turn this on its head.

The current live branch will remain for those who want a more stable experience, and each week / fortnight we will be wiping and releasing drastic changes to the experimental branch. One week might be on a massive map with an RPG progression, the next might have guns everywhere and make C4 super cheap. We are going to prototype drastically different types of survival without worrying about staying true to our roots. The ultimate test of these experiments will be how much you guys want to play them. We eventually hope to distill the perfect survival experience from these experiments, and refine it into a polished game.

Our tools and your tools
Probably the most exciting thing about the Hurtworld post ItemV2, is that over the last 8 months we’ve been working our asses off to restructure the way we work to give modders almost as much power over the game as we have ourselves. We now author content for vanilla Hurtworld using our own mod tools, meaning while we are flipping Hurtworld on its head making experimental builds, modders can start doing the same. Like a configuration from one of our experimental weeks? Grab a copy of the mod project and keep working on it or install it semi permanently on your server.

What experiments come out this Friday?
This weeks build will be a much buggier version of the current live branch of Hurtworld (not super exciting). As much as we can cram into our new systems, we aim to match what we already had. This is in the interest of walking before we can run. We need to test our new systems at scale before thinking about game play experiments, we have done an enormous amount of work under the hood, so this week will be to let everything break and give us some time to fix it in a controlled environment. The awesome part about re-implementing the legacy progression is how easy it was with our new tools, this means iteration will be mega fast.

What after that?
Once our new systems are stable, I expect this to take about a week maybe 2, we will start to introduce the new gameplay elements I’ve been talking about in the blog for ages. Things like blueprints, how and where resources come from, punishment for death, kill loot, durability, repairing, respawning mechanics, teleportation, raiding costs etc.

Each new experimental wipe, I also hope to include drastic map changes. What we are releasing on Friday will be a completely procedurally generated map, meaning by tweaking configuration values we will be able to deploy a new map with very little effort. As a minimum we can change the random seed to generate a new map with no effort, but I hope to slowly improve it as time goes rather than it stay as a monolith that I don’t dare touch like daemonsland. We have a truckload of buildings and city assets waiting to go into the map, more and more of these will be added to the generation landmark sets as we go.

Pre-early access all over again
So we are sort of back where we started, which I have no problem with. Nobody would say we got Hurtworld perfect the first time, and I think its safe to say the survival genre is still a bit of an awkward experiment straddling between Arma and World of Warcraft. I still believe there are amazing possibilities to explore.

We do actually want (and need) your feedback
We’ve been a bit quiet on the old community interaction for a while… we haven’t released anything new for a while, it doesn’t really make sense to get feedback. We’ve discussed the live branch to the ends of the earth, we just needed to get stuff done. Now that we are releasing the experimental builds, we will be ramping up our presence in our community channels, tell us what you think, we will be listening.

TLDR;
Re imagining of live branch in ItemV2 on experimental branch this Friday for stress testing (if all goes to plan), then weekly or fortnightly wipes with drastic gameplay experiments on the experimental branch over the coming months.

I’ll leave you with the procedural bot configuration (which picks eye bleeding colors), and running them down on a bike.

Mils

I’ve been making some alterations to some of our existing assets this week. Firstly I was tasked with combining the eye of the Shigi into the rest of the mesh. Using some weight copying to assign the mesh the correct weights got me most of the way there. Turns out Maya’s copy weights tool is not the best. The tool copied most of the weights across without issue, however the front feet lost some weight data, and I had to manually paint them back in. I got there in the end but I feel that if the tools weren’t so dodgy it would have taken far less time.

ShigiFPSArms

The next small project I was tasked with was modifying the FPS version of the arms. This model is used to show the arms and hands in fps mode. The FOV (field of view) has been modified on at least some of the guns, causing the tops of the arms to clip through the camera plane. I removed the shoulder parts for the arms and initially had just rounded off the shoulders to be a kind of stump. I didn’t  love the stump look so I made a cross section of cut off meaty texture instead. These were a hit with the other guys and so we decided to keep them. They have now been dubbed ‘Steak Arms’ I also had issues with copying the skin weights over. The fingers had issues where the weight maps were copying onto the wrong parts even though the geometry is exactly the same. Sorted that out too though.

FPSArms

Tom

This week I’ve been continuing getting ItemV2 ready for the experimental release. It’s been awhile since we’ve ported the bugfixes over from the live game into ItemV2 so that’s been my focus this week. The last time we merged in changes from the live branch was just before we added sleepers so I’ve had six patches worth of stuff to merge up.
Unfortunately any kind of auto-merge wasn’t really appropriate because some of the fixes were for systems that don’t exist or have radically changed in ItemV2, some were fixes that were ported over from ItemV2 and for some things like Unity prefabs or our item objects the serialization has changed so much that no kind of auto-merge was possible.
Luckily because I’ve been doing most of the bugfix patches the changes and reasoning for them are relatively fresh in my mind so I’ve been able to get through them at a good pace. Currently we are now synced up with 0.3.8.5 except for the sleeper system which I’m working on as I write this and should finish soon.

Unfortunately we didn’t make it to experimental release last week as hoped but we managed to get our internal test build up and going on Friday.
Whilst this contained some bugs we are working through now and it also needs a bit of an early game rebalance due to the nature of full loot we are feeling pretty happy about where it’s at and as long as no major disasters occur you’ll be able to play it this week!

TEHSPLATT

Had an enjoyable week designing different ammo containers, looked at a lot of vintage ammo boxes for inspiration, back before design principals existed. Due to the simple shape of the boxes, the colour selection had to differ greatly other wise players could potentially become confused about which ammo they had, which is not a great situation in the heat of battle. Made some changes to the 5.56 ammo crate, took out a lot of the noise from the texture making sure it fit into our style a bit better. The quiver ended up with a very primitive design which I think suits it considering arrows can be crafted pretty early in the game. The arrows are very low poly as the poly count needs to be kept down considering you can throw out a ton of world item, which is why they look very square. The feathers will possibly change once the arrows get done properly.

Getting pretty close to finishing the list of world items I have, Concrete, String and Wood Planks next! Still trying to figure out the best way to go about texturing shiny things like Amber and Diamond stuff, most likely a job for someone on the technical side of things.

Ammo_ForDevBlog

Cow_Trix

Hey folks. This week I’ve been fixing up and extending some of our commonly used shaders, implementing some performance improvements and fixing various broken things for the ItemV2 patch. We had a good play on Friday, and it’s all looking and feeling pretty sick!

First up this week, I changed how we copy the EntityStats to a creature when we instantiate a new instance. We’ve talked about EntityStats on here before, but if you don’t know, it’s the system that Hurtworld uses to simulate things like temperature, health, damage, nutrition, all that stuff. Every instance of a creature, player or machine needs its own instance of it’s EntityStats. Previously, we did this with a very expensive JSON based clone method that was very easy, but very very slow. I remembered that Spencer had built a pretty awesome Ahead-Of-Time clone attribute a while ago for Items, and I thought that it might work well for this use case as well. It was awesome! With just a few little adjustments, I could generate concrete AOT cloning methods that would create deep, new instances of these complex objects. You can see how much of an improvement that was to the server startup time! We went from 18 seconds, to < 1.

AOTClone

I also spent some time getting our commonly used shaders up to scratch. Our shader workflow is pretty successfully in the Unity Standard PBR now, but there are some things where that just isn’t possible. Namely, water and tree billboards, which are transparent and complex. As they are transparent, they don’t (nor should they) draw to the depth buffer. This means that post effects like atmospheric scattering don’t work out of the box like they do for opaque objects. Previously I had to do this whole thing where I extracted the atmospheric scattering logic in a way that could work easily for vertex shaders, but I was in luck! The Time Of Day 5.6 patch contained functions that easily did all this so it was much easier to implement this time around.

After

Dev Blog