This week I’ve been working on support systems for the upcoming clans feature. The main focus has been revamping how our map markers are managed across the network so they are efficient enough to handle tracking large numbers of clan mates without performing badly.
While I’m at it adding support for better proximity limiting markers so we can start concentrating localized events. So far I think our events work well but are far too infrequent within running range. Part of this is limited by out ability to notify only people nearby on the goings on. You don’t particularly care about a meteor shower 3 biomes away, once we can limit these better and tie chat / ping notifications to them, we can increase the frequency without drowning you with notifications and events should make the world feel a lot more alive.
Improving Marker API
The existing marker API was pretty rubbish for doing anything other than static objects. I had a look through some community mods to see how they used the system and have had reports that performance was being destroyed doing anything substantial. I’ve spent a bit of time restructuring how the map markers are interfaced with by Oxide mods so they are A: Heaps simpler, and B: use far less resources and scale up easily.
Our next experimental patch which will contain the new clans system will be released on the 11th of October.
I’ve been a busy beaver this last week. I finished the Drill do-over and it came out aces. This looks a lot more meaty and tech now. I gave this matte paint job which I then went back and adjusted the Titranium Workbench to match. I also overhauled the drill’s colours and created a colour mask texture that utilises our Uber Shader. This will save an extra texture in the project as I only had to make one texture to get as many colours out of the drill as we want. This will be even more beneficial in future should we add another rare ore and drill to go with it.
I also go started on a redo of the Blast Furnace. The old one had been designed with a pipe network in mind, which we may still add in the future but not yet. I kept the core of the furnace intact but just made the peripheral parts more real world. Also it got scaled down from 2.6 metres to 2 metres making it the same height as the player. This should make having it in the base a bit less chaotic. I got the Low and Hi poly modeling done already and am now in the UV mapping stage. Really smashing it this week 🙂
This week I finalised the topology for the updated face I’ve been working on, the main challenge with this was making sure that the face could have main features like the nose, mouth, eyes etc. changed with ease and then the low poly could be changed extremely fast to match any changes and bake out perfectly. This works really well currently, we still have some testing to do with style and new characters and stuff like that but in general the updated face handles changes really well. I did a bit of an extreme test to see how well it all worked which I will show below. Also currently working on a good way to do hair, as some of the hair I’ve been doing lately looks pretty gross when it intersects with the head, it gets an aliased jagged look, so, still trying to work out the best way to do that but I have some ideas and think I can make it work, with things like this it’s generally not a big deal to make them look nice, the challenge comes from finding an efficient repeatable way to do so.
Work on the interaction system is continuing along well, after some testing and review with Spencer we found a few bugs and things that weren’t working as smoothly as they should so I jumped back into it to fix them up. We’re not considering these interaction changes and the clan system an experiment, because we know we need these changes we’re taking some more time with the implementation to ensure it is done correctly rather than just trying to prove the concept as fast as possible.
Now the interaction system is ready for a second review and assuming it passes that it will just need an art pass to be ready for release.
Performance Improvements + Small Fixes
Whilst profiling performance on the interaction system changes I noticed some unexpected issues with our rendering. Several materials that could be setup for GPU instancing to save on draw calls didn’t have that option enabled and I also realized that we could save a draw call in our uber shader when not rendering backfaces (backfaces meaning the ‘other side’ of a polygon, usually these are culled for performance but we draw them on some items like world items so you can see the inside of a tshirt).
As well as these performance improvements I’ve also been resighting the AR15 and AWM sights as these guns have been scaled up slightly as they didn’t appear beefy enough in relation to the player.
This week I started working on the clan system although its still fairly early days on this due to having to do a bit more interaction fix ups than expected.
For the initial implementation I’m focusing on clan registration, applying to clans, managing applications to your clan and managing clan permissions.
Players will have 2 clan related windows to interact with, Clans (ie. a list of all clans, clan ranking and other clan info will be shown here, unclanned players will be able to apply to clans through this menu) and My Clan (ie. info about the clan the player belongs to, this will include the clan roster + rank management and application management if you have the permissions for this).
Whilst I’m working on this side of things Spencer is working on the more ‘in-game’ clan features like identifying teammates via UI overlay + tracking online clan mates through the map system, hopefully we can make some great progress on clans this week!