EDIT (2017-04-06, 11:30 CET): I've just pushed a new release. This fixes an issue that actually caused more allocations than previous versions. Also, I figured out what caused the ScoreHUD to not be shown after the first few notes, for Sliders and Spinners. So, more updates coming soon. /EDIT
EDIT (2017-04-06, 14:07 CET): Another update (b7) coming later today. That update addresses the scale issue, and issues with orbs changing shape under certain circumstances. /EDIT
First of all: This version has a bug where the ScoreHUD does often not show the score of the last orb, and sometimes not at all. This broke in our last optimization round ... like many many other things, almost all of them are fixed. This particular one, I only noticed in the final testing after the build was already done, so expect a patch for this tomorrow or on Thursday. If it bothers you, you can use the "previous-branch" for now.
One of the issues you can still see in the "Max Performance" orb theme: There, orbs eventually become really tiny. This one won't be fixed because we don't really need the Max Performance orb theme anymore ... in case you see it in any other orb theme, please let me know.
- Optimization 3: Pooling "Flying Notes". Those are the objects handling orbs, sliders and spinners, and they are pretty heavy to instantiate (about 20KB each). Pooling those was kind of tricky because of some hierarchy-magic and other things I'm doing but eventually, it worked (only tested "Free Mode" so far). And we went from 3.1 MB per 10 seconds of Freedom Dive to about 2 MB per 10 seconds of Freedom Dive. Also, we went from 95-100 frames with allocations of more than 10KB to about 45-50 frames with heavy allocations. With the Max Performance settings, Zen-Mode and Particles Disabled, I can get it down to 0.8 MB per 10 seconds. That's still quite a bit but still much better than what was possible before.
- Optimization 4: Removed a lot of needless instantiations of yield instructions in loops. Also removed most, if not all text creations that could cause instantiations (string.Format(...) is your enemy). And prewarmed ScoreFlash instances for messages so there should no longer be an initial instantiation cost (both in time and memory). We'll have more data on this later (I'll probably have one posting only about the optimizations ... with all the details ;-) ).
- We now have a ScoreFlash instance for quick messages, and also one for longer messages (like when you made it into the leaderboard or improved in a leaderboard).
- Fixed issue with Spinners that was introduced with Pooling and caused spinners no longer working after the very first one.
- Fixed issue in level 3 where the song was not properly started up the first time a player entered this level, or also in the context of the demo scripts we had for Gamescom. Interestingly, this was the reason the game didn't play the melodies track that we had actually intended for Gamescom but the first track. Just recently, we removed some code that reset the playable tracks and implicitly selected the first one. That's why in normal gameplay in story-mode you wouldn't notice it until recently. Fortunately, this is now finally fixed.
- Cleaned up the old orb prefabs that we're still using extensively in story-mode.
- Added the "event texts" to the orbs of story-mode. So now you see which orb will give you the x2 multiplier also in story-mode.