Hey Hurtworlders! Couple of things I’ve been working on over the past week.
Ambience and Music
I’ve been setting up the infrastructure to do more complex ambient sounds, as well as some music tracks. We’ve got at least 2 ambient tracks per biome, one for day and one for night.
This meant a bit of refactoring of how we create the soundscapes of Hurtworld. What seems on the surface like a pretty easy thing gets complicated fast once you start digging a bit. For instance – it starts raining, which makes noise. You can just overlay the rain over the ambient sound, but this ends up being a bit of a cacophony. Optimally, as the rain gets louder, we want the ambient sounds to get quieter. We’ve got a finite amount of volume to give to all ambient sounds, and we need to figure out a way to share it out.
So, the new architecture gives ambient sounds three options – Greedy, Normalize, or Overlay. Overlay is the simplest – this doesn’t care how loud other sounds are, and other sounds don’t care how loud it is. We use this for things like the irradiated effect. Normalize means that the sound should try and fill whatever volume it can, but it should never reduce the volume of any other sound. This would be all ambient background tracks. Finally, Greedy would be the rain, which consumes whatever volume it wants and leaves the Normalized sounds to fight over the scraps.
I’ve also been adding in some music tracks, which will play randomly every so often. Don’t worry, there’s a volume slider if you’d rather blast some death metal while spearing nakeds. All in all, these new sounds add a lot of atmosphere and ambiance to Hurtworld.
Hurtworlders love to break stuff – which is great! We’ve come a long way in fixing exploits since release, and we owe that to the community for finding and reporting these. Remember that time you could double-jump by opening your inventory? The series of events that made that possible in our code was… pretty mind-boggling, and we may have never found out about it without your help.
It turns out that there’s one scenario that creates exploits a lot, and that’s whenever you transport the player. This happens a lot in vehicles.
So, a simple scenario. You’re on a goat, and you decide to get off. This is basically a teleport – you just kinda poof off the goat, and appear somewhere else. But where do you appear? It’s a simple problem when your surroundings are simple – say, you’re just on a flat surface. Just appear next to the goat, problem solved. As your surroundings get not complicated though – say, a bunch of rocks, buildings, etc. – there’s a lot of trickiness introduced, and it’s difficult to always answer that question properly. When it gets it wrong – say, teleporting you halfway into an object – that’s when exploits happen.
I’ve been making this system a lot more robust so this can’t happen. This means, however, that there are some situations where there is no good answer to where you should exit. Say, if you’re completely surrounded by walls. There’s nowhere to go, so what do you do? Easy, right? You just tell the player that they can’t get out. Problem solved! But wait – there are situations where the player has to get out of the vehicle. When you disconnect, or the vehicle is destroyed for some reason, you must exit, because its nonsensical not to. Really, the only solution to this is to kill the player when they end up in that kind of scenario. And I mean really, if you’re trapped that bad, you’re probably going to have to suicide anyway. The moral of the story is – don’t disconnect when you’re in a vehicle.
We’ve also had some reports about sneaky people getting under the terrain! Fortunately, it’s pretty easy to check for this and just kill the player.
This week I put the finishing touches on the Map SDK which is now live. This isn’t much use without a tutorial on how to use it, so I’ve been also recording my first dev videos and uploading them to YouTube. Definitely not my forte but I’m sure they will get you started on using our toolset.
Getting the SDK
The SDK is downloaded through Steam under the Tools section of your library. I am currently working with Valve to ensure everything shows up as it should, if you can’t see it now give it a couple of days.
To use the SDK you need to first download Unity 5.3.2 P4. To build maps you need to make sure you tick the Windows, Linux and Mac Standalone support in the installer (not enabled by default).
Usage beyond that can be found in this video series:
The focus on these videos was not to tie up too much of my time editing and rendering, so excuse the roughness. The final part of the quick guide is rendering now and will be added to this playlist tomorrow. I have a new found respect for youtube / streamer fam as I now see how much work it is to plan record, edit, render and upload a video to YouTube!
Going through all the infamy stuff this week was pretty time consuming, I appreciate everyone’s input on the discussion. I feel that writing it out in a blog was useful for myself to lay out the next steps to take with fixing the problems.
I have a pretty clear idea of what approach we need to take, some things pretty drastic, I am keen to get back to working on it as soon as we get the engine upgrades and current patch cycle released.
I’ve seen a few posts about server performance getting pretty shitty on the infini wipe servers. This was expected at some point, we are now 26 days into the wipe schedule, far longer than ever before. There is obviously some areas we need to look at to ensure perpetual servers are sustainable, we will be looking at that this week.
When’s the Patch?
There won’t be a patch this Friday as there are still a lot of things that need testing. The patch won’t require a wipe when it hits, so I will aim for mid next week.
We are big fans of the Skoogler, so I did an extra skin, making a version that gives it a more dirtied up, slightly diseased look. Such a filthy Skoog.
I have now moved on to a new creature, who is sort of a monkey/bat hybrid. Hopefully they will have fast movement and a decent sized leap, allowing them to both chase down players and also attack via leap/harassment. We want to make the critter something that players will think twice about engaging. Potentially making it nocturnal giving it it increased stats or perception etc during the night………….I also think some sort of Howler Monkey esq sounds as they chase players down might be cool.
We’ve been pumping out creatures while we still have our creature animator full time. That role will hopefully be transitioning into a programmer so we can through the bottleneck of game mechanics work.
Not much from me this week. After spending some time in official servers over the last few weeks I have been hanging out in community servers this week meeting players and making contact with server admins. During this time I have been amazed at the creativity and community surrounding the servers I have visited. I have seen events ranging from deathmatches to dodge ball, taken part in a purge and have seen player structures varying from castles to pyramids. It is always great to see the different ways players are having fun in game.
On the other side of the server list I have been monitoring official servers. Last weekend full loot servers went infini wipe leaving 14 day servers as the only servers with scheduled wipes. The next scheduled wipe for these servers is at the end of the week and there won’t be any changes to wipe schedules or server numbers as part of this.
As always I’ll be in and out of servers so if you see me in game feel free to say hi!
Destruction is my name this week. These individual rubble pieces make up the bulk of the rubble. By making a few detailed bits at the start I can then stick them together in a variety of ways to form unique looking piles.
I made 3 Normal mapped blobs of geo after to stick the individual pieces into. I think 3 piles will give a good variety which I can then smoosh together and scatter around to create more individual shapes.
These have turned out quite well. I will be breaking more of the city moving forward.