Closing in on the deathmatch build this week, we’ve been hammering out some play testing and having heaps of fun. Getting pretty close to something releasable.
Lighting / Skybox
Since the migration of all our lighting settings over to ItemV2, we upgraded our Skybox plugin to the latest version. Our of the box the lighting settings are not great, I managed to get our early access release looking decent by countless hours of tweaking. Since the upgrade to the latest version, all the configuration settings have changed, and the calculation model is completely different meaning all those finely tuned settings are now useless, hence why our screenshots of late have had pretty rubbish lighting.
While deciding whether we should downgrade back to the old version or not, I dug around a bit for new solutions that have come up since our initial build. What I found was an amazing asset called Tenkoku Sky which out of the box looks absolutely amazing. I spent a day having a crack at implementing this to link into our biome and lighting systems and it ported across like a dream thanks to some awesome work cowtrix did abstracting our old skybox with some neat ahead of time compiled logic.
Not only was I able to quickly switch to the new skybox, I was able to leave the old skybox intact as a fail safe if performance of Tenkoku sucked on lower end machines.
Here is a before and after screenshot of old and new skybox in action around the same time of day:
Another awesome win we got from this switch was the skybox and lighting play Heaps better with our water plugin:
Lastly I’ve been madly building a tuning weapons for the ItemV2 preview deathmatch build. We’ve been having a heap of fun playing with them, and can’t wait to get your hands on it. Just a few last bugs to iron out.
Cowtrix made an awesome TDM map this morning out of a section of the city. Here is 10 mins of unedited footage from this morning of Tom mopping us all up 🙂
Greybox sights have been my world this week. So far I have made some of these very similar to real life, some I made up. I tried to follow the engineering techniques/style that real life sights follow. We had a play with them on Friday in the ever-evolving Deathmatch map and damn some of them feel really good. The new gun systems Spencer has been working on, combined with the new sounds has made these guns really start to come alive. I had a lot of fun shooting my co-workers. The image below shows the sighted and unsighted view the models.
This week I’ve been working on getting construction up and going again in ItemV2. It was the first time for me going deep into our construction system internals so I started out with recreating basic machine placement by implementing the campfire.
This led to finding a few bugs in our revamped entity stats system that I’ve patched up and now campfires are working correctly and we have a basic construction prefab item component to allow items to place construction prefabs into the world.
After this I did some more work on the mesh baking system, fixing up a problem with normals and tangents not being transformed correctly and streamlining the workflow a bit by saving static mesh offsets and allowing new static meshes to be baked from an existing reference rather than having to be aligned with the skeleton.
Then I was on to recreating the construction hammer, luckily I could use a lot of the logic from the basic prefab construction component, the main change was just driving the prefab selection from the client side construction ui menu. The rest of the work was recreating the various materials and resources and updating the construction prefabs with references to the new items so they could resolve their costs and refund amounts properly.
Today I’ve been fixing a few remaining bugs with the construction hammer refund costs and creating the rest of the construction prefab items (storage chest, ownership stake etc.) which is super fast once the first one is figured out, just a matter of cloning then renaming things and setting up the prefab reference.
This week I’ll be continuing to implement our items from the live build, next up should be the spear so it’ll be ready for the deathmatch build!
So I have continued exploring character stuff focusing on a female in particular. I created a female head piece which seems to look ok so far. I have also made a few hair pieces starting with a couple of shorter styles.
After texturing up some hair we will have to make an evaluation of her in game and see what sort of body tweaks we can get away with.
This week I started off by extending the biome framework to allow for skybox modifiers. In simple terms, this means that biomes can now change how other biomes display. For instance, now you can make a biome that instead of setting the sunlight color directly, just darkens or lightens whatever the light color was going to be. To do this I extended the skybox Ahead-Of-Time compilation framework, so it will reflectively look at the skybox configuration classes and figure out what needs to be done to provide serializable modifiers for each variable. As Spencer may have mentioned, he has been playing with Tenkoku sky, and it was pretty much plug-and-play for swapping that system over, which I was pretty happy with. Spence just had to tell the AOT framework to create “stack” classes for Tenkoku, and it went and generated a whole bunch of modifiers for it.
Tenkoku raised some annoying render bugs with transparent objects and image effects. As anyone who has delved into the Unity render pipeline can tell you, things like screen-space fog and transparent objects can have a… tricky relationship, especially in deferred rendering. Transparent objects do not write to the depth buffer (and rightly so, as otherwise the objects behind them would not be rendered). However, screenspace fog uses the depth buffer to calculate how far away a pixel is from the camera, and so it ends up seeming like transparent objects are floating above the fog. Now one method of solving this is just telling the screen-space ambient effect to draw after transparent objects. This solves tree billboards not fogging perfectly, as we can get them to draw to the depth buffer. It even solves the issue somewhat for water, but not quite. There are still some issue with the depth buffer here, obviously, that need fixing.
I’ve also been iterating over the forest, trying to get some interesting rises and falls in the terrain. Check out some screenshots.