Golfing In Aether Update Released [1.5.0]
After listening to various feedback Ive worked on a new rule set for how levels get divided up with the idea of adding to diversity. Previously levels had three stages, Early, Mid, Late, with groupings being every 3 levels. For a new rule set Ive changed the Early and Mid-categories to be groups of four, with a final late game level chosen. Additionally, some levels have been moved to different categories. For the most part baring a few exceptions (such as mid-hole madness) multi-hole levels are now not part of the early category and now part of the mid category. With plenty of mid levels not having these multiple hole setups there should be a better divide up of levels. Part of the feedback received was too many of these were getting picked, and with random being random there was a case where you could have some in both early and mid making the game very focused on that. With there being no shortage of variety this change will help show that off a bit more. After recategorizing it works out as 23 early levels in the game, 28 mid, and 9 late. When I get to working on a next free level expansion, I will be balancing those numbers out better. Its worth noting that no repeats will be picked when creating a session until youve played through every level in a category. Also this is only the default preset and via custom session settings you could already pick various presets or individually whatever levels you want. I did move some levels around in the practice level menu, specifically mid-hole madness is now fifth in the list. Just to space things out a bit better so the first level people play isn't one with multiple holes like that.
For all quality levels (but more noticeable for the lower settings) is the quality of the water has been improved. Specifically you'll see visible depth even though the water is still plane based for performance. Secondly I wanted to make the lower settings a lot closer to how higher settings render it, to this end I've faked the reflection using essentially a cube map capture of the sky, so you get the appearance of a kind-of reflection based on your camera angle. Of course this is no where near as good as having actual reflection capture but at quick glance it will still look a lot better than it was.
Besides water I've also taken another look at the shadows. Specifically far shadow cascades have been added (replacing distance fields) which actually led to a performance improvement. The number of shadow cascades in the near scene has been increased slightly too, which should give a better overall shadow appearance. In the above image you can see how in close scene vs far scene how the quality of shadows transition. I came up with idea of basically doing proxy shadowing for several geometry pieces. Essentially some wall pieces cast as if they are low poly plane object which considerably reduces the shadow cost. This way as a whole better shadow quality can introduced for the objects you'd actually notice for a net similar performance. This is an area I will likely continue to improve, theres always the balance of both not impacting performance too much and also not overdoing the sharpness of shadows via too many cascades given things like tree branches are what you commonly see most.
Continuing on from the 1.40 update which focused on an improved instancing setup to reduce render primitives, this update now includes an overhaul of shaders to significantly reduce their cost as well. Medium (and below) and ES3.1 modes have their own material variations that reduce the cost even further. Quality in some cases has been improved including notably a much better water setup, but I'll cover that in a separate section below. For actual performance numbers I was able to get the following in medium settings on my AMD 3200G test pc which is similar ball park to the steam deck.
Gentle Swing - 95 fps to 113 fps, 18 fps gained Around the pond - 81 fps to 104 fps, 23 fps gained. Tee Time - 81 fps to 117 fps, 36 fps gained.
Waterhole 67 fps to 89 fps, 22 fps gained. Go For it - 84 fps to 103 fps, 19 fps gained. See you on the other side - 86 fps to 99 fps, 13 fps gained. The fps gains do vary, but if just looking at the lowest fps in a level, then around 90fps is obtainable at 1080p. While its harder to benchmark the randomness of having nine islands rendered, in tests at least 60fps was present, meaning you can now have the 'other islands' option enabled as part of medium settings. If you were running on a Steam Deck then it is actually a bit faster than the 3200G mentioned here, plus the fact it only renders at 1280x800p on its screen means you should see a fair bit higher performance.
Previously the game ran on version 5.0.3 of Unreal Engine 5 which was released back in July 2022, and Ive instead moved the game to the newer version 5.1.1 released February 2023. The primary reason for the change was to improve platform support and just keep things up-to-date. A couple of small benefits to this newer engine version is firstly the included SDK version for Steamworks has the function to identify if the device being played on is a Steamdeck, so I'm able to make sure the medium graphics preset is set correctly when you launch the game for the first time on these devices. Next static meshes can have functioning wind without artifacts (some engine fix occurred) in the forward rendering mobile config Golfing in Aether uses for the ES3.1 mode, so the flag will be able to have visible wind movement. Note in regular graphic modes there was already flag wind movement, it was only this low-end performance mode that lacked it. Ive also been able to enable a couple of material optimizations game-wide after some specific graphical artifact issues were fixed at an engine level (specifically to do with vertex fogging in the forward render). This will give a very slight performance boost.
Ive looked into and implemented various methods of upscaling including a better setup of Temporal Super Resolution, Nvidias DLSS (and DLAA), and AMDs FSR. Nvidia DLSS has specific hardware/driver/OS requirements whereas FSR and the built in TSR are way less restrictive. For the ES3.1 performance mode there is a mobile orientated version of FSR1 available. In the graphics settings menu you'll find the new "Anti-Aliasing and Upscaling" section with more options than previous. At first I was looking at better image quality for really low settings such as in the ES3.1 mode which by default has a 75% 3D resolution setting. Using the included FSR1 you can get a mostly close to 1080p image and at very least looks a lot better than before. As upscaling can also help when you want to hit higher resolutions such as 1440p or 4K while still maintain a decent framerate, I went and added both DLSS and FSR2 to the regular version of the game. I will be enabling DLSS when supported automatically (set to auto) and TSR as a fallback. This will only apply to new players during the benchmark stage, so if youve already played the game before then you will have to enable the method you wish to use from the graphics settings menu. It should be noted that its probably more than possible to hit 1440p resolutions on a 360hz monitor without any need for upscaling at all with where the game is at (with a recent mid-high end gpu) It is certainly not a demanding title to run. But as you start to look upwards of that, with 4K or more resolutions and still want those kinds of framerates they'll become really useful to have.
Installation size has been reduced by more than 700 MB on Windows (a reduction of 42%) to just under 1.0 GB with a download of 920 MB and a slightly smaller 400MB (33%) reduction on Linux for 1.0 GB install and 880MB download. This is achieved though a one-time redownload of most of the game (which isn't very much, see above) to take advantage of newer packaging such as IO store rather regular pak method earlier unreal engine versions used. To make full use of this one-time redownload Ive done a bunch of other changes such as taken time to better divide up the chunks better to push patch sizes smaller and have enabled Oodle Texture RDO. All of this will make the game much lighter on disk space and perform some loading operations slightly quicker.
Ive played around with how the UI scales which should benefit portable devices especially (such as the Steamdeck). At 720p the menu will remain a constant size as if it was 1080p, essentially loosing just the empty space and making full use of the space for readable text. Outside of these ranges it will continue to scale as it did before, so if you are using 1080p or above you will notice no changes.
Firstly as shown in the screenshot above I've made scroll-bars proportionally a bit wider so users with a touch screen can better select them. Overall these have an improved appearance that better fits the menu theme as well. Secondly when using either a d-pad or thumbstick and holding a specific direction the menu will now cycle through options after a delay. So if you hold e.g. down for 0.5 seconds, following on from this while still holding down every 0.125 seconds it will move an additional step. For some menus that are really long like the practice menu this will be a big help for navigation.
Most notably when getting a perfect stroke you'll see an added particle orb effects emit as part of the trail. This is just a small addition to mostly more behind the scenes work as I improved and tidied up various effects with performance optimization in mind. When playing in ES3.1 mode you should now see particle emitters such as from tree's (petals, leaves etc.)
Fixes to several issues that showed up while testing as well as for issues previously mentioned, please see the full notes below for these. Of course this is a huge update so its quite possible there are issues introduced somewhere, please let me know if you spot any as they can be hotfixed pretty quick. https://store.steampowered.com/app/1914980/Golfing_In_Aether/
Be sure to check out the official discord server with channels for Golfing In Aether and my other various projects.
[ 2023-04-27 16:28:48 CET ] [ Original post ]
This update started with migrating to the newest version of Unreal Engine 5 (5.1.1 from 5.0.3), but following on from that I've also taken a good amount of time to complete various performance improvements and add quality of life features.
New random level ruleset
After listening to various feedback Ive worked on a new rule set for how levels get divided up with the idea of adding to diversity. Previously levels had three stages, Early, Mid, Late, with groupings being every 3 levels. For a new rule set Ive changed the Early and Mid-categories to be groups of four, with a final late game level chosen. Additionally, some levels have been moved to different categories. For the most part baring a few exceptions (such as mid-hole madness) multi-hole levels are now not part of the early category and now part of the mid category. With plenty of mid levels not having these multiple hole setups there should be a better divide up of levels. Part of the feedback received was too many of these were getting picked, and with random being random there was a case where you could have some in both early and mid making the game very focused on that. With there being no shortage of variety this change will help show that off a bit more. After recategorizing it works out as 23 early levels in the game, 28 mid, and 9 late. When I get to working on a next free level expansion, I will be balancing those numbers out better. Its worth noting that no repeats will be picked when creating a session until youve played through every level in a category. Also this is only the default preset and via custom session settings you could already pick various presets or individually whatever levels you want. I did move some levels around in the practice level menu, specifically mid-hole madness is now fifth in the list. Just to space things out a bit better so the first level people play isn't one with multiple holes like that.
Improved Water and Shadows
For all quality levels (but more noticeable for the lower settings) is the quality of the water has been improved. Specifically you'll see visible depth even though the water is still plane based for performance. Secondly I wanted to make the lower settings a lot closer to how higher settings render it, to this end I've faked the reflection using essentially a cube map capture of the sky, so you get the appearance of a kind-of reflection based on your camera angle. Of course this is no where near as good as having actual reflection capture but at quick glance it will still look a lot better than it was.
Besides water I've also taken another look at the shadows. Specifically far shadow cascades have been added (replacing distance fields) which actually led to a performance improvement. The number of shadow cascades in the near scene has been increased slightly too, which should give a better overall shadow appearance. In the above image you can see how in close scene vs far scene how the quality of shadows transition. I came up with idea of basically doing proxy shadowing for several geometry pieces. Essentially some wall pieces cast as if they are low poly plane object which considerably reduces the shadow cost. This way as a whole better shadow quality can introduced for the objects you'd actually notice for a net similar performance. This is an area I will likely continue to improve, theres always the balance of both not impacting performance too much and also not overdoing the sharpness of shadows via too many cascades given things like tree branches are what you commonly see most.
Performance Gains
Continuing on from the 1.40 update which focused on an improved instancing setup to reduce render primitives, this update now includes an overhaul of shaders to significantly reduce their cost as well. Medium (and below) and ES3.1 modes have their own material variations that reduce the cost even further. Quality in some cases has been improved including notably a much better water setup, but I'll cover that in a separate section below. For actual performance numbers I was able to get the following in medium settings on my AMD 3200G test pc which is similar ball park to the steam deck.
Small Levels
Gentle Swing - 95 fps to 113 fps, 18 fps gained Around the pond - 81 fps to 104 fps, 23 fps gained. Tee Time - 81 fps to 117 fps, 36 fps gained.
Large Levels
Waterhole 67 fps to 89 fps, 22 fps gained. Go For it - 84 fps to 103 fps, 19 fps gained. See you on the other side - 86 fps to 99 fps, 13 fps gained. The fps gains do vary, but if just looking at the lowest fps in a level, then around 90fps is obtainable at 1080p. While its harder to benchmark the randomness of having nine islands rendered, in tests at least 60fps was present, meaning you can now have the 'other islands' option enabled as part of medium settings. If you were running on a Steam Deck then it is actually a bit faster than the 3200G mentioned here, plus the fact it only renders at 1280x800p on its screen means you should see a fair bit higher performance.
Newer Engine Version
Previously the game ran on version 5.0.3 of Unreal Engine 5 which was released back in July 2022, and Ive instead moved the game to the newer version 5.1.1 released February 2023. The primary reason for the change was to improve platform support and just keep things up-to-date. A couple of small benefits to this newer engine version is firstly the included SDK version for Steamworks has the function to identify if the device being played on is a Steamdeck, so I'm able to make sure the medium graphics preset is set correctly when you launch the game for the first time on these devices. Next static meshes can have functioning wind without artifacts (some engine fix occurred) in the forward rendering mobile config Golfing in Aether uses for the ES3.1 mode, so the flag will be able to have visible wind movement. Note in regular graphic modes there was already flag wind movement, it was only this low-end performance mode that lacked it. Ive also been able to enable a couple of material optimizations game-wide after some specific graphical artifact issues were fixed at an engine level (specifically to do with vertex fogging in the forward render). This will give a very slight performance boost.
Addition of AMD FSR 2 and Nvidia DLSS
Ive looked into and implemented various methods of upscaling including a better setup of Temporal Super Resolution, Nvidias DLSS (and DLAA), and AMDs FSR. Nvidia DLSS has specific hardware/driver/OS requirements whereas FSR and the built in TSR are way less restrictive. For the ES3.1 performance mode there is a mobile orientated version of FSR1 available. In the graphics settings menu you'll find the new "Anti-Aliasing and Upscaling" section with more options than previous. At first I was looking at better image quality for really low settings such as in the ES3.1 mode which by default has a 75% 3D resolution setting. Using the included FSR1 you can get a mostly close to 1080p image and at very least looks a lot better than before. As upscaling can also help when you want to hit higher resolutions such as 1440p or 4K while still maintain a decent framerate, I went and added both DLSS and FSR2 to the regular version of the game. I will be enabling DLSS when supported automatically (set to auto) and TSR as a fallback. This will only apply to new players during the benchmark stage, so if youve already played the game before then you will have to enable the method you wish to use from the graphics settings menu. It should be noted that its probably more than possible to hit 1440p resolutions on a 360hz monitor without any need for upscaling at all with where the game is at (with a recent mid-high end gpu) It is certainly not a demanding title to run. But as you start to look upwards of that, with 4K or more resolutions and still want those kinds of framerates they'll become really useful to have.
Installation Size reduction
Installation size has been reduced by more than 700 MB on Windows (a reduction of 42%) to just under 1.0 GB with a download of 920 MB and a slightly smaller 400MB (33%) reduction on Linux for 1.0 GB install and 880MB download. This is achieved though a one-time redownload of most of the game (which isn't very much, see above) to take advantage of newer packaging such as IO store rather regular pak method earlier unreal engine versions used. To make full use of this one-time redownload Ive done a bunch of other changes such as taken time to better divide up the chunks better to push patch sizes smaller and have enabled Oodle Texture RDO. All of this will make the game much lighter on disk space and perform some loading operations slightly quicker.
Improved UI scaling for portable devices (e.g. Steamdeck)
Ive played around with how the UI scales which should benefit portable devices especially (such as the Steamdeck). At 720p the menu will remain a constant size as if it was 1080p, essentially loosing just the empty space and making full use of the space for readable text. Outside of these ranges it will continue to scale as it did before, so if you are using 1080p or above you will notice no changes.
Improved menu navigation for portable devices (e.g. Steamdeck) and gamepads
Firstly as shown in the screenshot above I've made scroll-bars proportionally a bit wider so users with a touch screen can better select them. Overall these have an improved appearance that better fits the menu theme as well. Secondly when using either a d-pad or thumbstick and holding a specific direction the menu will now cycle through options after a delay. So if you hold e.g. down for 0.5 seconds, following on from this while still holding down every 0.125 seconds it will move an additional step. For some menus that are really long like the practice menu this will be a big help for navigation.
Particle effect improvements and perfect stroke effect
Most notably when getting a perfect stroke you'll see an added particle orb effects emit as part of the trail. This is just a small addition to mostly more behind the scenes work as I improved and tidied up various effects with performance optimization in mind. When playing in ES3.1 mode you should now see particle emitters such as from tree's (petals, leaves etc.)
Various bug fixes
Fixes to several issues that showed up while testing as well as for issues previously mentioned, please see the full notes below for these. Of course this is a huge update so its quite possible there are issues introduced somewhere, please let me know if you spot any as they can be hotfixed pretty quick. https://store.steampowered.com/app/1914980/Golfing_In_Aether/
Patch Notes
General
- Added some tidy ups to optimize frequency of saving events, specifically from choosing profile to beginning a level.
- Added improved asset parenting to ball materials to help with error prevention.
- Added restructure of game files to further improve loading times and reduce future patch sizes.
- Added small addition to ball trail particle effect when a perfect stroke.
- Added change to ball trail particles and level sequence spline so in ES31 mode they will run on GPU not CPU. This is because some really low end systems can cause artifacts with the particle failing to follow the target accurately. CPU based particles for path-based stuff visually look better as was how they were previously set, and on PC you are more likely going to be GPU bottlenecked anyway.
- Added small tick optimization to movers by implementing similar world position offset behaviour to the rotators so only the active level is ticked on CPU.
- Fixed field of view not setting when changed while playing.
- Added improvements to temporal AA implementation, specifically to help reduce shimmering.
Engine
- Migrated from Unreal Engine 5.0.3 to Unreal Engine 5.1.1.
- Added change to re-enable vertex fogging for the forward render now that this version of the engine no longer produces artifacts. This gives a very slight performance boost.
- Added change from pak to io store for files, as well as enabled Oodle RDO.
- Added change to force SM5 when using DX12 as no SM6 specific features are used (plus SM5 gave higher fps in testing).
- Added FSR Mobile (FSR1) exclusive to ES3.1 mode.
- Added improved temporal super resolution support.
- Added FSR2 support.
- Added DLSS and DLAA Support.
- Added replacement to rotating movement for e.g. windmills/waterwheels due to engine level issues.
Platform
- Added Cross Platform Steam Cloud support (previously only worked with local platform).
Environment
- Fixed a small wall gap on see you on the other side.
- Fixed a tiny ground gap on across the pond.
- Added moving flag in wind in ES3.1 mode.
- Fixed pipe alignment on 'Center Path'.
- Added small shader instruction optimization to the sky, reducing instruction count by about 12%.
- Added significant shader instruction optimization to red wood fences, windmills, and water. Reducing by 11% for High, 45% for Medium, and 73% for ES3.1.
- Added rework of all wall meshes to be both higher quality and slightly reduced triangle counts. Higher quality involves giving all ramp walls consistent depth with normal walls, these were only 6cm deep due to an alignment issue with ramps but this has been worked around and these have now been given the full 12cm appearance. Triangle reduction is from a combination of better boolean accuracy and re-running simplification for LODs. Visually theyll be the same, just some triangles you would never see on the back face have been removed.
- Added improved LOD models for all aquatic plants. Primarily for performance but should also give better performance as these LODs changes are more targeted.
- Fixed one end of the back wall of the ramp in learning curve not being seamless.
- Added improvements to the angle of a few exit pipes so they do not dip below the exit height. This means they dont have to rely on ball speed for the ball to exit, which should help clear up some very rare cases of the ball not behaving when entering these specific pipes.
- Added improvements to various levels by trimming any wall meshes that intersect with terrain.
- Added improved LODs for windmills and movers. This is better targeted so should be both better visual quality and lower poly at the same time. Added improved ground to top of tower.
- Fixed some tree placements on 'All teed up'.
- Fixed a wall gap on Law of Reflection.
- Fixed some wall gaps on 'now where do I go".
- Fixed a few unneeded wall pieces not visible under one of the structures in Spin City.
- Added improvements to All teed up by trimming several wall pieces intersecting with terrain to save on poly. Some of the trees and rocks outside playable area have had their placements tweaked slightly to improve visuals on lower graphics settings.
- Fixed an issue with collision on a half meter height corner piece.
- Added improvements to Speed Bump by reducing the level triangle count via trimming of several walls intersecting with terrain. The primary pipe has also been adjusted. Several rocks and trees have been shifted around to fix various issues. A couple rocks were completely occluded by other rocks or walls so have been removed.
- Fixed various rocks clipping with walls on Spin City.
- Added a rework of all island meshes to bring additional LOD levels.
- Added improvements to normals on various pipe meshes.
Interface
- Added usability improvement to scroll bars by increasing their width by 50% (12 to 18px) as on small touch screen displays it could be a little awkward to select them.
- Fixed a typo on the hole-out screen.
- Added visual improvements to scroll bars by using rounded corners like other elements feature and adjusting the top/bottom padding so it sits in line with other elements.
- Added new Anti-Aliasing and Upscaling section to the graphics settings menu with added options for FSR and DLSS. These two new options have their own sharpening methods and screen percentage is controlled, so you will find a sharpening setting where 3d resolution normally is.
- Added re-order of some levels on the practice menu. Specifically moved mid-hole madness to the fifth level in the list and gentle swing to the first. My reasoning is for players who first play the game and pick a practice level, I didnt want to introduce the multiple holes as the absolutely first level they play.
- Added improvements to ES3.1 graphics menu, with similar Anti-Aliasing and Upscaling section available. Because not all AA methods work in this mode (it is mobile rendering after all) you will find a reduced list of MSAA,TAA, and FSR1 compared to the regular desktop renderer.
- Fixed gamepad navigation on the custom levels menu.
- Fixed thumbstick navigation on the achievements menu.
- Fixed the right scrollbar in the custom levels menu not inheriting dark theme correctly.
- Added improved navigation behaviour allowing continuous movement in a direction after a short delay.
Discord Server
Be sure to check out the official discord server with channels for Golfing In Aether and my other various projects.
Golfing In Aether
Vetron
Vetron
2022-09-23
Indie Simulation Sports Racing Singleplayer Multiplayer
Game News Posts 82
🎹🖱️Keyboard + Mouse
🎮 Full Controller Support
Positive
(11 reviews)
https://store.steampowered.com/app/1914980 
DunGen VR Depot [902.67 M]
Game is not tagged as available on Linux on Steam.
Linux is not in the OS list.
- Unique overall course layout for each session. Golfing In Aether accomplishes this through having each of the holes being its own independent floating island. The game will choose these at random from a pool at the start of a session and procedurally create the overall course layout.
- Get-together with friends in sessions supporting up to 16 players online and 4 players locally. You can take any additional local players into online sessions with you. Online sessions also support joining as a spectator.
- Freedom to choose different modes such as playing together in real time (local players use split screen) or taking it in turns via hotseat.
- Compete against ghosts in practice mode for the top spot in an individual level with both global and friends only leaderboards.
- Replay your previous sessions via the session replays feature. This allows you to spectate previous sessions you've played with options such as being able to see from another players perspective, use free camera, and the ability manipulate playback rate.
- Customize through a range of color-pickable designs for your golf ball. Five designs are available from the start with others being unlocked as you earn XP through playing and level up.
- Accessible with full gamepad support through the inclusion of an on-screen keyboard and ability to create local player profiles for saving any customizations, player names or gamepad settings.
GAMEBILLET
[ 5951 ]
GAMERSGATE
[ 1903 ]
FANATICAL BUNDLES
HUMBLE BUNDLES
by buying games/dlcs from affiliate links you are supporting tuxDB