update 0.19 is finally out!


It's been a while! Both of my development computers decided to die within weeks of each other (one in a rather spectacular manner). Needless to say, that stymied progress somewhat. Nevertheless, development is back in full swing and a ton of work has gone into this patch.  

Version 0.19 is the final patch in the "Pumice" series, which concentrated on establishing the core gameplay mechanics and developing the major optimization techniques. With this final patch in this cycle, we're happy to finally include some of the major features we've been working on, including level chunking, A* pathfinding, and glowing crystals! Of course, there's a lot more, and these are the ones I remembered to write down in the patch notes:

1. Improved performance by disabling some UI canvases when they were not in use.

2. Improved performance by disabling some scripts when they were not in use. Most non-essential scripts should use Observer patterns now.

3. Improved combat responsivity by removing the debounce on input. The previous debounce was only supposed to last a few frames, but would occasionally lock up commands for much longer than that (up to one second). Now you can hack and slash to your heart's content. May need to tweak animation transitions still, but I have plans for the character animator which will hopefully cover this issue.

4. Removed some of the overkill quality modes on ambient occlusion and screen space reflections. These modes didn't add much (if any) visible improvements but were extremely expensive, performance-wise. 

5. Fixed an issue with the dodge-roll animations where non-cardinal input directions were being overwritten.

6. Fixed an issue where the inputs were not properly calculated relative to the camera's view direction when the camera was tilted at extreme angles. Previously, this resulted in turn angles being improperly calculated while strafing and was most noticeable when dodge-rolling.

7. Fixed some issues with how gravity affects the player. Now you should fall at the same rate regardless of your ragdoll or death state. Similarly, I fixed some redundancies with the gravity calculation as applied to certain movement states.

8. Adjusted animation transition conditions for falling impacts to make rolling and hard impacts less frequent. Previously, you would be able to roll or have a high impact from double jumping on flat ground. Now you need to fall a little bit further before rolling and should instead transition directly to either the moving or idle states depending on your forwards speed upon landing.

9. Fixed inconsistencies with texture resolutions for some of the mushroom variants. Now the emission of green and purple mushrooms should be more consistent at long distances.

10. Added low detail LOD models to all of the rocks and stalagmites and added them to LOD chunks.

11. Added individual LOD Groups to monsters and dynamic objects so they get culled at long range. These objects are incompatible with the current chunk system due to the fact that they move around.

12. Made a system for splitting up the renderer of the marching cubes map into LOD chunks. This massively improves performance in large maps by cutting down on the number of lit triangles being rendered at once. Each chunk is about 8k triangles, compared to the >150k triangles for some of the larger maps. Eventually we might add an intermediate LOD mesh with lower detail, but for now distant or occluded chunks should not be rendered at all. 

13. Speaking of lighting, I also added a custom LOD system to the lights to disable ones that are out of the view frustum and not in range (fog conceals some of the pop-in at long distances). Nearby lights are shown to prevent pop-in/out behind the camera. Generally, this cuts down the lighting to about 20% of the previous values in large caves.

14. Fixed an issue with enemies not being turned hostile after spawning during a wave. Likewise, I removed a few recursive checks that slowed things down unnecessarily when enemies did turn hostile. 

15. Added a custom shader for all of the LOD objects that uses GPU instancing and dithered crossfading.

16. Reduced camera shake during the sphere of doom phase by 50%.

17. Working on improvements to the vaulting system. It is only partially implemented at the moment, but should allow you to jump up on low rocks and mantle onto compatible ledges. The main improvement is to the stair-stepping behavior, which now mimics the regular motion on slopes (rotating the current movement vector). Sometimes the animations looks funny when mantling onto rocks and stuff. Also, the system does work while airborne and trying to grab onto valid objects (for now only certain rocks). This needs adjustment and is a WIP.  

18. Added A* pathfinding to the monsters! This helps monsters at intermediate ranges navigate through the cave to reach the player. There's a ton of things that I use to limit this system for performance reasons. For example, pathfinding is disabled at long distances or in combat range and only a few monsters can request paths at a time. Additionally, pathfinding recursions are severely limited to prevent some nasty lag spikes. Please let me know if you encounter CPU related lag. For the time being, it's all running on the main thread. Once I feel more comfortable with Unity's job system (multithreading), I will probably shift some of the pathfinding onto other worker threads.

19. Fixed a bug where invulnerability frames could stack (d'oh).

20. Unified all lighting in the dungeon to use a single pulse controller system and LOD system. Also, when the energy pulse from the obelisks crosses a valid light, it will brighten perceptibly for a short time.

21. Tweaked the grappling hook speed to make it less likely to smack the player against the ceiling. Now the max speed has an additional braking factor depending on the starting chain length.

22. Made it possible to hit obelisks with attacks without needing to actually hit them with the sword.

23. Made the delay for boulder traps more consistent (2s to 3s instead of 2s to 5s).

24. Fixed another bug where ragdolling would disable the player collider. 

25. Made certain enemy behaviors either increase or decrease their damage vulnerability. For example, pillbugs now take reduced damage during charge attacks and extra damage when they are on their back. To compensate for this, I'm reducing their flip delay by 1s (now 1s to 2s instead of 2s to 3s). Fireflies are more vulnerable during charge attacks (batter up!) and don't have any reduced damage phase at the moment. Extra damage states are indicated by orange damage popups, while reduced damage states are indicated by gray popups. Normal states are red. Critical strikes cannot occur during reduced damage states.

26. Figured out how to make idle animation variants work properly without screwing up transitions and being jumpy. So now Anemone will have a little more personality if not in combat and idle.

27. Fixed several issues with on screen indicators for interactable objects. First, I tracked down why single-use interactables sometimes reverted back to being interactable (at least as far as the UI was concerned). Now things like chests and obelisks shouldn't show an interaction indicator after being activated once already. Second, I capped the maximum number of interaction indicators in the pool to 10. Previously, the pool was allowed to expand which could result in laggy behavior when showered with items.

28. Added keyboard input for toggling inspection of items on the ground (left and right alt by default). Need to figure out a sensible button for a joystick (one that isn't already used).

29. Fixed a bug where the player corpse wouldn't spawn.

30. Removed some unnecessary features from stalagmites in the main menu scene

31. Made obelisks activate if you press attack near them. Nerfs the information that can be gained from the "scanner" effect by angering enemies.

32. Some more fixes to the ragdoll system dealing with sudden velocity changes and improving the precision of the check used to determine if the player is actually on the ground or not. Still might give some false positives, however (meaning midair recoveries from ragdoll).

33. Fixed a bug where pillbugs were more myopic than intended. Also slightly optimized their line of sight check in the process.

34. Made some changes to the camera behavior for aiming the grappling hook while falling. Previously, the player would fall out of the camera frame due to a combination of smoothing effects, both from the camera and the player's inverse kinematics system (basically the system that makes the character animations stick to the ground was "pulling" the character down). Now the camera target position keeps the player in sight of the camera, making it slightly less nauseating to use the grappling hook while airborne.

35. Increased damage scaling with might. Now both the player and enemies should be significantly more deadly if they dump their points into Might. I found combat to take a bit too long, especially against vitality variants of enemies. To compensate for this, the base values for enemy damage have been decreased for many of their attacks. The default player sword actually got slightly more powerful.

36. Moved the camera further away from walls. This prevents some annoying issues with looking up and getting the view obstructed by a tiny mushroom.

Files

rite-of-tephra-win-beta.zip 653 MB
Version 11 Nov 23, 2019

Get Rite of Tephra

Download NowName your own price

Leave a comment

Log in with itch.io to leave a comment.