In this update7
Full notes
Full Aiyana update
Read the full published notes in a cleaner layout. The original post stays linked below.
What changed
- Gameplay
- Performance
- Compatibility
- UI and audio
- Maps
- Fixes
Aiyana changes
This took a lot longer than expected but a Lot has changed in the backend of Aiyana and it needed some time to stabilise.
Steam Cloud
One of the big changes is that Steam Cloud has been removed and your worlds etc are stored only on your local machine instead.
I've done this for a few reasons.
Worlds in Aiyana are fairly big and storing them on cloud means a lot of data Steam needs to sync
Linked to this, it means that relaunching Aiyana takes a bit of time
The tools I was using to send things to the cloud forced me to send data in a way that isn't ideal for performance. Which wasn't a problem before but for multiplayer it could have had more impact
I imagine the main use case using the cloud is if you use the Steam Deck, which I've still not finished full controller support for
I will add options in the future to manually upload/download from the cloud but it will involve a bit of a rebuild of the UI and a fair bit of testing so I'm not wanting to tackle it right now since this update already took way longer than intended. If you are impacted by this, feel free to reach out and I'll make a point of prioritising this on a beta branch or something.
New Starting Area
I first built the starting area a long time ago before Creative mode and the recent Dungeon update which added a bunch of blocks. It felt like that starting area could do with a revamp to show off more of what you can build in Aiyana so I've done exactly that and it now looks like this:
Performance Gains
As mentioned in the previous progress update I find multiplayer work pretty tedious so I work on other things at the same time to keep me sane. The big one that delayed this update so long is that I spotted a pretty huge performance gain that was too big to ignore. As a crash course in computer graphics, if you want to render anything in 3D you need something called a matrix. This is a collection of 16 numbers in a 4x4 grid and is sometimes also called a float4x4. This grid represents the position, scale and rotation of each object which is stored in a way that lets it know the resulting order you applied these things. E.G if you rotate something and then move it, you get a completely different result than if you moved it first and then rotated. What I had done previously was use a 3x4 grid, saving the memory and math etc needed for 4 numbers I didn't need because those 4 numbers are needed for things I don't use (scewing). So already a great saving of 25% memory. However I spotted a way to still render cubes with just 3 numbers instead of 12. I wont go into further details but its a Massive saving because it means using 4x less memory and a far less math during the final render. As a result most machines should be able to increase their chunk draw distance a decent amount and stay within 60 fps. I've also increased the max chunk distance to 64 but this is a Huge distance and you would need a Really good rig to render comfortably with this setting. Anyway this change took a lot of time because it meant changing a lot of logic and shaders to expect the new data structure. It resulted in a lot of new rendering bugs but I think I have things back to stable.
Exclusive Full Screen Rendering
Disclaimer, this section is mainly a rant. TLDR in the last 2 sentences. Ah Unity... another week another headache that makes me wonder, what exactly do you help with as an engine? This week the fight originated as a bug that cropped up whilst testing multiplayer. Each time my wife would tab out to send me a log, Aiyana would crash. At first I thought this was a problem to do with networking but it turns out it was only on her PC and not mine. A bit of headscratching and testing later and it was because her GPU was able to render as intended in something called exclusive mode, which is the fastest to render because its the mode that tells windows that its full screen and nothing else needs to render until I tab out. It turns out though that in this mode, and D3D12 rendering, that Unity does a bad job of handling drawcalls so that whilst its in the background, its not closing buffers etc properly and crashing. To fix this I could turn on a setting to stop the game running whilst tabbed out, but this means if the host tabs out, anyone else sending networking messages to them will get either queued up or dropped. Really not great. I might be able to get around this by doing a lot of manual work to check that buffers etc are manually disposed and rendering doesn't trigger when I've detected you have tabbed out but this is the source of my rant above because it feels like something Unity should be handling better. So bottom line is that I see Unity have been making progress on this issue but its still broken so until I see them making a meaningful fix the best option is to disable Exclusive rendering mode entirely. This might result in an FPS drop from some GPUs but since this update also delivers a massive performance gain in other areas I'm hoping its not noticed.
Main Menu Button
I keep going back and forth on this button but I've decided to remove it completly. This is something that would be nice to have but isn't really essential and to make it work properly will be a LOT of work so it just doesn't feel worth it when you can quit and restart instead. Its a lot of work because I would need to manually check every system is reset properly. E.G if I don't clear crafting data properly, it could very easily mix the data from 2 characters if you swap between them.
New Blocks
I've also been playing with some new structures to add as part of a later biome overhaul and one of them needed a smoother corner step and stone/metal railings so this update has 50 new blocks which are the varients of: Stone Railings, Stone Sloped Railings, Metal Railings, Metal Sloped Railings, Stone, Wood and Metal Corner Steps. It means you can make smoother shapes like this:
Bug Fixes & Changes
These might seem a bit random and unrelated. As I work on a feature for multiplayer it means I'm testing various mechanics and end up finding/fixing bugs there as well.
Added grid snapping to the candle stick
Fixed the Agaric mushroom not being allowed in structures
Toned down the damage overlay effect when at low health
Fixed banners in the lost civ being hard to break
Fixed various issues with the Hawkeye Shot spell
Updated the visuals for the spells exp bar so its a bit clearer when its full
Fixed breaking arrows not unregistering their collisions properly (I'm not sure what effect this would have had)
Fixed the small brazier using the wrong breaking effect and looking like an ice block
Fixed animals wandering far from their origin
Changed how backups are created to skip a copy operation, should be quicker this way
Fixed various breaking effects looking really dark
Added a button to manually save at any point (sorry this took so long, I was overthinking what was involved/requested!)
Fixed another scenario that would prevent water spreading properly in caves
Optimised the water spreading algorithm fairly significantly (could help worlds generate quicker)
Fixed seeing a flicker when blocks finish recovering from damage
Fixed not being able to interact with the oak or palm chandeliers
Updated how light passes through glass so it doesn't block it when its the top block of a chunk
Added an outline to the search bar for the structures list
Fixed vines not appearing in the foliage list of creative mode
Fixed snapping blocks like vines not giving a preview when trying to place by looking at the bottom of a block
Fixed Huge structures not generating a proper preview with the structure builder
Changed the wording of "Insects Caught" to "Insects Killed" so its less misleading
Fixed some dungeon statues having a max stack count of 99 instead of 1
Updated the minimum backup files to keep to be 0 instead of 1, so you can disable creating them entirely (helpful once worlds get Huge)
Moved some recipes under the wrong super groups (stone basic shapes where a part of general basic shapes)
Fixed the rock volley split perk not working
Fixed data not being disposed properly on quit when building large structures, which could have resulted in data loss for affected chunks
Added grid snapping to lanterns
Fixed sitting in a manually rotated chair making you look in the same/wrong direction
Fixed placing previews being wrong if you rotate something, select a new block and then back to the original
Fixed lighting issues with breaking blocks
Fixed blocks like stools and chairs appearing in the wrong place once you start damaging them
Fixed a scenario that would cause tutorials to still show when opening chests (only after opening/closing inventory quickly before hand)
Fixed the achievement for holding your breath triggering as a total time spent underwater rather than just a single breath as intended
Fixed not being able to cancel sitting by pressing escape
Fixed metal wall blocks having the wrong material when being damaged
Fixed grass pickups not spawning if you place a block over them
Fixed snapping blocks not snapping properly when placed directly on grass clumps
Fixed fancy and basic beds having the wrong light when damaging them
Fixed half block tiles rendering in the wrong place once flipped
Fixed half planks rendering in the wrong place in a specific room in the dungeons, which was unintentionally a bit evil!
Fixed totems being lost on load
Fixed there not being enough rugs in the dungeon crypt rooms
Updated the icon for square rugs
Spiked fences can now snap
Fixed the first 2 trees on the starting island rendering in slightly the wrong position when hit
Fixed light not spreading properly when chunks are edited
Smoothed out lighting a bit for non cube blocks (it still has room to improve)
Fixed an error calculating a mesh if it became overly complex
Fixed the final layer of the Lost Civ having too dense fog (this might have been something I added and fixed in the same update but I'm unsure)
Reworked lava to render with the new systems, should optimise the Lost Civ rendering a bit
Lava visuals have changed slightly as a result
Moved a bunch of blocks to use instancing instead of meshing systems. Should improve rendering performance of worlds with large complex structures (a bit of future proofing)
Improved how noise is eroded when spawning ores (will change the spawning of ores on new chunks slightly)
Improved the search logic to be more accurate
Fixed blocks reading light from the wrong position, usually resulting in them looking darker than intended
Fixed a very obscure situation that could cause a chunk to not render at specific viewing angles
Updated how braziers cast light
Source
Changelog.gg summarizes and formats this update. How we read updates.
