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
AiyanaNewsProgress Update: Performance + Caves
Community

Progress Update: Performance + Caves

Aiyana · published 12 May 2025, 09:22 UTC

All newsPlayers around this dateRead on Steam

Since its been a couple of weeks and I'm still not sure when I'll be done with this next update I thought I should give a progress update. As forewarning, this one will be more technical than most in effort to explain why its taking so long.

I wanted to go back to a performance feature I mentioned a while back around occlusion culling, and since there are more animals now it felt like a good time to try it one more time. I've made enough progress now that I'm feeling more hopeful I can deliver on it and if all goes well, it should see about a 25% decrease in overall rendering times.

What I'm working on is sort of like this:
https://tomcc.github.io/2014/08/31/visibility-1.html

How graphics cards work is that they are Much more effecient processing big chunks of data instead of lots of little bits, so to lean into this strength Aiyana utilises something sort of like static batching, which is where once chunks load they look around their neighbours and start combining their meshes into larger versions. So instead of rendering 4 small chunk meshes, they are combined and 1 is rendered instead.

This is already in and works really well, the problem is that when I first attempted to implement occlusion culling, like in that link above, that it means disabling the static batching and the results where almost identical for perfomance. So it felt a bit pointless to trade an already working system for a different system that gives similar results.

So what I'm doing now is mixing the two systems, which is complex to say the least. I'm using my custom static batching for the meshes above ground which will receive almost no benefit from culling anyway. Then for meshes below ground, occlusion culling kicks in and the smaller meshes are disabled depending on what you can see.

It looks like I have a foundation working ok but I still have the time consuming edge cases to work out. What has made me stop and write this post is that the algorithms I use for caves are problematic for the culling algorithm. Too many of them are connected together by tiny tunnels so when I'm trying to detect what should render, too much is passing the checks to say "chunk X can travel and reach chunk Y".

As a result, I'm reworking the caves to find a better balance of nice visuals whilst also not being a drain on performance. Current caves are a bit narrow too often so my aim is to have more open caverns that are easier to explore/fight in.

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…