Progress
Since we’ve been making so much progress on Deerdog/Humble_Shepherd, why don’t we get more acquainted? Internally, we’ve been referring to this character as Bargeist! The name draws inspiration from Barghest, the Northern English mythological canine, and the German word for ghost, “geist.” Given that this is a community-created Kinfolk, it wouldn’t feel right to finalize the name before getting the community’s opinion. We’re excited to hear your thoughts!
Bargeist’s animations are finished, so we’re looking forward to sharing footage of combat soon! With that finished, we’re moving onto polishing Nyazen’s standard animations and starting their combat animations. We’ve also started on animations for Briar_Runner, one of Brihorn’s evolutions.
We spent this month on a focused performance push across the overworld, and it paid off massively! The world now runs somewhere between 1.5x and 2x faster than it used to. This progress came from a lot of small advances, including a more efficient system for handling shadows and a pass over the grass rendering. None of it changes what you see, but it means more of the processing power is left over for the world itself, allowing us to keep adding more things that you would notice.
We recovered about 1 GB of RAM usage across several different fronts. The largest single improvement was changing how the game packages and loads content, so world pieces arrive on demand rather than everything being held at once. On top of that we found terrain textures that were being loaded into memory and never actually used properly, and adjusted how much detail is kept once it’s a certain distance away from the player. With this and the performance improvements, we’re excited about how much more comfortably the game should run on lower end hardware!
The world streaming system has been reworked to run on Unity's Addressables system. Previously the world would come in with a noticeable hitch as you crossed from one terrain tile to the next, and memory that had been used for a tile behind you didn't reliably come back when the tile unloaded (walk far enough and the game would keep growing). Both of those are fixed! Terrain tiles stream in without stuttering, and when they go, the memory goes with them. It’s not flashy, but it will prevent a case of immersion-breaking stuttering on lower end hardware.
Our grass is looking much more lush since we moved it onto a new instancing system that draws far more blades for far less processing cost. Grass now holds its full thickness much further out from you, and thins gradually rather than popping in/out in a few steps. Along the way we found the system was thinning distant grass considerably more aggressively than we'd actually asked it to. Correcting this roughly tripled the amount of grass in the distance, for no extra cost whatsoever. The results are fuller fields that extend further when you look out across them.
The mountains and ridgelines you see out on the horizon used to be very costly every frame. When whirling the camera around, there was often noticeable stuttering when there were more mountains in the background. After this pass they're essentially free. That means we can be more generous with what's visible in the distance without it eating into everything nearer to you.
Our water and rivers have both been reworked onto the current generation of the tools we make them with. The foam was upgraded, both out on the open surface and along the line where water meets the shore, and we get proper waterfalls out of it now! Other parts of the game can also read the height of the water surface directly, which is what lets something floating on a moving river sit correctly on the water, rather than on a rough guess at where the water probably is.
Community
In case you don't know, we post weekly on Bluesky! Here's what we've posted in the last month:
Deerdog animation blocking https://bsky.app/profile/skymillstudios.bsky.social/post/3mu263yp6z22f
Deerdog drowning https://bsky.app/profile/skymillstudios.bsky.social/post/3mtil5xy3sc2c
Fixed terrain https://bsky.app/profile/skymillstudios.bsky.social/post/3mswrrwktls2y
Deerdog sneezing https://bsky.app/profile/skymillstudios.bsky.social/post/3mser3zovuk2h
LeXICON
The full lexicon can be found here.
Addressables: The framework Unity provides that allows developers to decide what assets are currently loaded into the computer's memory.
Optimization: Making the code run more efficiently, so it takes less processing power to achieve the same effect.
Overworld: The playable area in the open world exploration part of the game.
Texture: A 2D image that’s applied to a 3D model to give it color and shading.
World Streaming: The process of breaking up large terrain into smaller tiles that can be unloaded if they aren’t visible from the player’s current perspective. Reduces processing power needed to run the game.
Thanks for stopping by! We’ll see you for our next newsletter on September 25th. Until then, take care!
