Spencer

Hi Guys. Progress feels pretty pathetic this week, I have been testing the shit out of all our systems, raising a truckload of bugs over and over again, doesn’t feel like the list is getting any smaller. I’ve also been sick for the last couple days, hence the blog delay.

We will be doing an internal playtest with whatever broken state we can come up with. If that goes OK, I might put it out mid next week.

Stay tuned.

TEHSPLATT

This week was an interesting one for me, I’ve started doing a decent amount of hard surface modelling and while I’ve done a fair amount of hard surface modelling in the past I primarily focused on characters and organic modelling but I do enjoy the challenge and the practice of hard surface. The yellow pistol case is what’s now being used as the detonator cap world item, this is due to the size and design of the actual detonator cap being far too difficult to see in game. The bright yellow case is much better as it stands out in the world and can be easily recognized. The actual icon is basically a 3D rendition of the original icon.

As you can see here I’m also working on an ammo case for 5.56 ammo. These are the high poly models for the detonator cap world item and the 5.56 ammo world item. I like to add a lot of thickness to my models to give them a good silhouette in game, I find when if everything’s too thin then by the time you build the low poly and get it in game you are left with a very weak looking model.

Cutting the high poly models down to a suitable amount of polys for the game can be a very difficult process, you need the models to retain their thickness and silhouette while simultaneously cutting out as many polys as possible. Normal maps are super helpful in this process as you can keep a lot of detail while losing a lot of polys. These two renders are from substance painter, I’m not particularly happy with the ammo case texture, I feel it’s too noisy and possibly too realistic, but it’s not a hard fix.

Mils

This week I have been wrastling with a pit viper called Autodesk Maya. While Maya is a powerhouse in games and film it is also super frustrating sometimes. I learned to do a bunch of Skinning with it’s proprietary ‘Paint Skin Weights’ tool. I have to say it isn’t as bad as some of the tools Maya has (I’m looking at you Boolean Modeling Tool) It does have it’s quirks and illogical not-so-easy-to-use interface. Aside from Maya being interesting to deal with I also had to get used to setting up the configs in Unity which were actually pretty easy. The coders made our Item Configs as easy for an art brain like myself to use as possible. Thanks gang! Now I don’t blow a brain-valve every time I deal with setting up items.

This next image shows a Sock Puppet (low poly simplistic mesh) which I used to get a nice smooth gradient across the Bow limbs. This helped a lot because setting and painting the weights of a higher poly object takes a lot longer to do. This method also helps all the vertices move together without detaching or doing strange stuff.

Below is the final skinning I came up with that gave me a good result for the Limbs and String. This part of the Bow is influenced by two joints, so there are 2 weight maps assigned to it. There was a little tweaking where the Limbs meet the Riser or Grip bit in the middle and was also some tweaking where the string meets the limb tips.

Here’s a final animation of them working.

Cow_Trix

Hey folks, not really any pretty pictures from me this week, as I’ve mostly been in script land. This week I’ve been wrestling with some caching issues with the item rendering system. This system has turned out to be more complex than I first thought, and has taken a lot of thought and almost working versions to get to a good point. I did a stress test this week that placed significant load on the system, rendering a few hundred icons a frame, and I discovered that the caching key recycling was not working as intended. I’ve realized it’s really asking for it to pool a key object that you use in a high-frequency cache, and that you have to be very careful about how you manage and invalidate those objects. I was incorrectly keying the results of the icon renderer and world item builder in several places that only became evident when placed under high load. Asynchronous character mesh baking has also been thrown a few spanners in the works, as I naively put in some shared resources where I shouldn’t have when first designing the system as a synchronous, single threaded process. I think there’s light at the end of the tunnel here, I’ve just had to build a few test cases to push things to the limit. I’ve definitely learned a lot about this specific problem, multi-threaded systems and caching!

Tom

This week I’ve been working on ItemV2 helping to push it closer to being ready for the experimental release.

After finishing up the mesh attachment build changes to speed up our mod build times I’ve moved onto cracking through our buglist with the other coders.

Because of the bugs occurring in the item icon system I wrote a stress testing tool for our mesh combiner/baker that we can use to verify the stability of the system. This stress test scene loads up all our content packages then pulls all the mesh attachments from them and bakes random selections of them together as quick as it can. Because the test loads everything this includes some half setup attachments and old attachments with deleted references, this is good for our test so we can make sure the system wont come crashing to a halt due to an incorrect configuration. After running the test for a while we also use memory profiling tools to check for leaks.

We’ve been making good progress and it looks like we’ll be able to do a test release to an experimental branch on Steam this week! I’m looking forward to hearing what you all think.