This week we’ve been powering forward with map and progression updates for the red desert release going out this Friday. The map tools have finally gotten to a point where I don’t have to pest cow_trix every 5 mins with a bug stopping me from proceeding. And I’ve got to say, these tools are awesome. We are just putting the finishing touches on the SDK update release, should have it out to you guys soon to start playing with.
The desert is coming together nicely, it’s definitely feeling like it has more character than any of our maps to date. I’ve tried to break away from too much formulaic structure that makes everything look the same, mostly thanks to our new tools that allow a lot of manual authoring in a non destructive process.
This biome has become quite big, which will likely need a vehicle to traverse easily. I’ve clustered lots of content around the south border which will border the build biome, so getting your first vehicle should be easy enough on foot. The real star of this process has been the road tool, which should more appropriately be named the spline tool. We’ve been using it not only to create awesome roads, but to create streams, deform terrain, plant lines of trees and run power lines. This is incredibly useful for making a map feel full as being able to paint a line of tree occlusion scattered in a natural way in 2 clicks if an area feels too open, has sped up my workflow immensely.
Looking forward to sending it out in the wild!
I decided to become a road worker this week. Got a sore back from diggin’ 😛
These have come out nicely. The Asphalt is pretty similar to the last build we put out, but is a bit darker and less ‘powdery’ I added a subtle normal map to show the raised area at the edge of the road and the subtle raised paint of the white lines. I made some intersection pieces also. There’s a ‘T’ Junction for the asphalt and the Unsealed Roads. There’s also a T Junction for where the Unsealed Road reconnects to the Asphalt Road. These use sneaky UV mapping to avoid having to make specific road textures. We will probably make those at a later date.
Below: I made a generic Unsealed Roads texture, which uses brown tones. This fit most of our biomes that didn’t have thick sand.
Below: For the thicker sand biomes namely; Red Desert and Start Desert I made another couple of Albedo’s and used a new normal map that really expressed the softness of the sand. This normal shows big soft tyre tread marks. Really satisfying working on these.
Hello, this week I got into trying to make the green biome feel more interesting as you explore it without taking up actual space with junk. This was a bit of a hard task, it’s easy enough to just chuck a bunch of stamps all over the map but this takes up valuable building space and also still leaves everything in between the stamps the same, which can make the map feel boring. As you can see I’ve made a bunch of different stamps, small being tight areas with little rock walls sectioning everything off, medium being farm land with lots of occlusion from trees, hay bails and long grass, and finally large stamps that consist of 90% terrain splat changes with subtle tree lines to give the player a sense of moving through an ever changing land scape. These stamps need real world rules to make them feel correct, as you can see the small stamps (red) are focal points that get tucked into corners or other tight spaces, they are then padded with medium stamps (yellow) these farm stamps which are larger and can create interesting battle zones and cover for stalking players, then comes the large stamps (blue), these are used to suggest civilization, for example as you are coming over a hill you may not notice a farm or a town like area but you can see the ground has changed under you which in the real world generally indicates that the land has been touched by other humans and civilization may be near.
I also made a spray can and ash world item. The spray can will have different patterns assigned to it for vehicles which will be displayed on the can. The pattern on this can is an example.
Heya folks. This week I’ve been chipping away at the new Mangatang map, trying to polish some areas of the map with some new techniques and tools. Luka created some great stamps that will vary up the ground texturing and add in some interesting object scattering, while still being negative space that players can claim and build in. I’ve been working on placing those stamps in the build biome and fixing some issues that came up with ground texture blending. I was finding for much of the first half of the week that I was getting a lot of artifacts and blending issues with both ground textures and grass, when stamping them down and when setting them with the road tool. I realised, after one mostly successful refactor attempt, that I’d kind of overcomplicated the logic and I could simplify everything down. I was basically trying to figure out, given a point in the map, if I should read data from all the layers beneath where I was looking to figure out what was there – which is appropriate if nothing has altered the layer yet – or to look in the layer for the value of that data – which is appropriate when something else has altered the layer. I realised it would be a whole lot easier to just copy all the compound layer data to the currently executing layer right at the start, and then never look at the base at all. This simplified the logic immensely and actually let me spot a few other bugs in code where I was sampling things just a little bit off.
Progress on the map has been going well, with me and Spencer trying to figure out a good workflow for splitting things up and working on the same map separately. Something I’ve realised with this stuff is that the key word is “context”. When something has context with something else, you really do need to be putting them in the level, or stamp, together so that context can be preserved. So, for instance, when setting up these isolated scenes to author individual areas of the map, we need to be very careful that we don’t put things with context in areas of the stamp that won’t have 100% control over that point, as the context will change. For instance, if you have a stamp that places some walls on the ground, and you’ve authored that stamp with flat ground, then the walls have a context where they require flatness. If you stamp them somewhere on in such a way where they’re placed on uneven terrain, you get some walls that really don’t look right.
The road network for this map is more complex than we’ve had in Hurtworld so far, so I’m looking forward to seeing how that plays. There are a lot more trails, intersections, and roads to travel down in this coming build. Check out screenshots below!
This week I worked on the recently released 0.4.5.1 bugfix patch and started to flesh out how our customization system is going to be implemented in an upcoming patch (at this stage targeted for a 6th October release).
As part of the 0.4.5.1 patch I made some changes to the spawn system used by vehicles and Antor hives. Previously the respawn timer was calculated by MaxRespawnTime / ServerPlayerCount but with the longer respawn of the Antor hive we needed more control over how player counts affected the spawn timer. We setup the hive to have a 1 hour respawn on a full server but this meant on an empty server it would be a 60 hour respawn!
Now the spawner uses a user definable curve that is given normalized server fullness as its input (ie. 0 for empty server, 1 for a full server) and the result of this is multiplied by SecondsPerSpawn to find the final spawn time. In this example Goats will respawn every 300 seconds on a full server and 10x that (3000 seconds) in an empty server.
I also fixed plants appearing bugged after a server restart. It turned out we were saving the plant’s planted time relative to server start instead of relative to the current time. This meant that an Owrong planted 15 hours into server start wouldn’t appear ripe after a restart until restart time + planted time + grow time.
Another tricky bug was getting the construction hammer to teardown all of its ui features properly. Because the construction validation has to occur server side but the construction selection through the ui runs on the client there is shared authority over the system and some necessary delays while one side waits for the other to process. The bug where complexity costs and attachment point previews would stick around after unequipping the hammer was caused by either a quick equip and unequip or a quick selection change (ie. foundations to walls) and an unequip. This would cause the following sequence of events:
Equip or selection change is sent to server to setup the construction preview object.
Hammer is unequipped on client, turning off the ui elements.
Client receives construction preview setup message from server, turning some ui elements back on.
To fix this the construction manager now tracks the client predicted state to see if a construction hammer is equipped and the construction preview code now makes checks against this when making client side changes.
I’ve also started working on item customization scheduled for the 0.4.7.0 update. For this we’ll be improving weapon attachments allowing you to do things like swap between different sights on your gun. Also, the customization previously available to vehicle panels will be expanded to include several items and gear pieces (you will be able to apply different design masks and also change colors).
So far I’ve been mostly focused on getting the tech side of this up and happening so items can easily have masks applied and swapped and creating asset types that allow modders to easily create new masks for items. I’ll be going into the design side of this system this week and fleshing out how you’ll be able to earn these masks in game and what other changes to items are required to properly support the system (ie. we will likely return item repairing to allow you to keep any items you get attached to and end up customizing). Watch this space!