This update significantly improves Bubbles performance for extreme use cases where a significant amount of Bubble Columns exist (> 1 million Bubble Columns).
- Added "smart" ticking to each Bubble Column, you should now see significant improvement if LOTS of Bubble Columns
are interacting with entities.
- Improved upon particle packets so the client can manage better in denser areas (areas that have lots of Bubble Columns)
- Massively improved scanning of chunks, it is now almost instantaneous
- And some smaller optimizations to the base code and architecture that still improves performance.
This update firstly improves performance of the plugin as I implemented smart caching where possible (too much detail to get into it) and fixed the bubble columns' particles from overwhelming the client by capping maximum number of packets sent to the client per tick to 800. This fits perfectly with the client's limit of 16,000 particles before it starts culling them to prevent overdraw.
That is it--and honestly the plugin now truly feels native to Minecraft 1.8, it even outperforms real bubble columns, to prove this I created a flat world filled with glowstone and water only and TPS remained near 20.0 with 1,081,600 active bubble columns.
This update improves performance (even though it's already fast!) and memory usage and fixes a minor mistake I made to achieve parity with Minecraft's Bubble Columns. (The fix was that only the player should make and recieve Bubble Column zoom and whoosh sounds).
This update will not break the data file (bubble_columns.dat)--Which helps reduce fingerprinting chunks already known and unmodified.
This quick update fixes a non-game-breaking bug that if an entity was standing on the bubble column source block (glowstone) and they had fire resistance, the sound would still play, this has now been fixed.
Note if you are worried about the large 6.4MB+ download size, do not worry! It does not affect your server's TPS--in fact that size is because of an internal library the plugin uses which increases performance (FastUtil-Core).