Status
SteamPeaks
ChartsSalesUpcomingPatchesNewsCalculator
New on SteamEvery app, DLC and depot the minute Steam creates itAppsEvery app on Steam, newest change firstPackagesSubs and bundles, and what each containsDepotsDepots, manifests and install sizesTagsSteam's user tags and the games under themDevelopers & publishersCompanies and their cataloguesTechnologiesEngines, SDKs and anti-cheat found in the filesChange historyEvery PICS changelist as it lands
SignalsNineteen readings of the whole catalogueCompareAny games side by sideRecordsAll-time peaks and the days they were setReportsWeekly and monthly write-upsAlerts & newsroomWatch a game, get told when it movesSteam statusIs Steam up, right nowWeb API explorerTry the endpoints in the browser
NewsSteam's own announcements and the sales calendarCalculatorWhat a Steam account is worth, and its pile of shame
/
Sign in
/
SteamPeaks
The ultimate resource for Steam data.
ExploreChartsSalesSales and festsUpcomingPatchesNewsRecordsTrendingSignals
DatabaseAppsPackagesDepotsTagsDevelopersTechnologiesChange history
ToolsCalculatorCompareSearchAlertsSteam statusAPI
SiteMethodologyFAQDiscordSupportSign in via Steam
Not affiliated with Valve or Steam. Game names and artwork belong to their owners. All times UTC.
PrivacyCookiesFair useStatus
AiyanaNewsPerformance Progress: Animals
Community

Performance Progress: Animals

Aiyana · published 17 Jul 2025, 09:42 UTC

All newsPlayers around this dateRead on Steam

Since its been a couple of weeks I thought I would drop what is becoming my usual dry/technical updates.The next area of focus for me hitting that draw distance is animals. I had mentioned fish in my last update and I'm still working towards them but the fish use the same animation systems as the animals. That system is one I bought online that allows you to animate purely on the GPU (your graphics card).As a foundation, that tool was great but it does have its drawbacks by trying to be generic. Namely, it spends a lot of rendering time preparing skinning data.

This picture is something called RenderDoc which lets you measure how long it takes to render something. In this case its an older render and it took 28ms, which is too much. The aim is to be under 16ms for 60fps.The highlighted section here is time spent by the GPU doing what you can think of as general calculations, in this case its that tool preparing all the data it needs to animate fish and animals.To be fair to the tool, what it is doing here is incredibly efficient, but bottom line is its too much time. In this case it was 5ms or 30% of the rendering budget for 60fps.

So I'm making my own animation tools that will prepare the skinning data on the CPU. For anyone that has tried this before, I realise this is utterly mad and a Ton of data to process!Normally, attempting this is pretty foolish because of the sheer amount of data to send to the GPU since skinning on the CPU means you need to send data per vertice, per animal, instead of per bone and per animal (which for the less technical this is roughly 1000x more data as a minimum. Sometimes its 10,000x more data depending on how complex your models are). However. In my last update I discovered new-ish techniques for writing to GPU memory directly. So coupling this with the Burst compiler, I'm seeing some promising results that let me completely remove that time spent on the GPU.The tool itself is mostly done and the results are great. However, getting it to work with existing animal logic was going to be extremely messy since Animal AI relies on lots of checks that can only happen on the main thread for things like drawing particles (magical effects) or things like lens flares.

So I've decided that whilst everything is already really broken, now is probably a good time to rewrite animals AI so that it can run properly in a multi threaded way and utilise Burst as well. This is going to take a bit of time but in the long run it means they will take a ton less CPU time (which is now important since skinning will need it) whilst also letting me rewrite some sections to make multiplayer work easier in the future and syncing with the new animation systems is clean/easy since I'm doing everything at the same time.Finally, by reworking animals in this way it should be much more efficient to have more of them in the world at once. My hope is that once this is all done I can spawn more animals and rebalance their drops so its easier to find the things you need from them such as the leather strips.

More from Aiyana

Other announcements

All news
Major update31 Aug 2026Biomes & Points of InterestIts been a busy month, a little too busy. I was pushing myself hard to try and get multiplayer ready in some early form for the upcoming Survival Fest that Aiyana is a part of but I pushed too hard and needed some time off once I realised I just couldn't hit the deadline. So instead I stopped and focused on what I could get done in time, hence this update a little out of nowhere. Biome Generati…In-game event30 Jul 2026New Wood (Beta & Creative Only)Time seemed to slip away from me again but this update has some changes in it that could do with more time to confirm them so its live on the Beta branch only for now. Multiplayer is still coming along nicely but nothing new to report on it yet. Its just very slow to make progress on, especially as a solo dev. Bamboo, Ebony and Cherry Wood As usual I work on something slightly creative to give…In-game event10 Jul 2026Triangles & Snow ShapesThis one took a little longer than expected and I don't think there was any one particular reason, I just struggled to reach a stable state whilst juggling single player and multiplayer bug fixes. For example I need to compress world data before sending it for MP as players join worlds, something that should have been Extremely straightforward but it turns out off the shelf compression algorith…