Isle Goblin Playtest · published
- 0.4.1 - Performance Improvements
NON-BUGS
Major change to file saving:
- You may have noticed lag spikes whenever the game autosaved - this is because the game was written to one big file, and the save system I use can't write it over multiple frames of the game. The only way to overcome this is to save the world in many smaller files. This unfortunately means old worlds will no longer be accessible.
- I made similar optimizations in the character save data, so old characters will no longer be accessible either. With this new system, this should hopefully be the last time I have to make old stuff inaccessible.
- Super massive performance improvements (sort of)
- It used to be that each and every tile would be pooled separately. Now I have a generic "floorTile" that gets pooled and re-used for various types of floors. Now we need VASTLY fewer instantiations per frame while walking. This means much less memory is wasted storing all these different types of tiles (which will hopefully help with the RAM-based crashes we've seen when people play for a long time). This also means less CPU usage when the game has been running for a while, since we no longer have to cull the buffers as much. This may not make the game FEEL much faster though, because these reusable tiles unfortunately each need to "set up" and copy the base tile. So overall the "as you move around the same biome" CPU usage is SLIGHTLY better, but not a ton. I get like 75FPS running around at high speed.
- Shadow pooling massively improved
- Enemies had a lot of unnecessary overhead
- Enemies now get massively "dumber" when they're off-screen to save on computation
- Enemies now despawn instantly if they get more than 40 tiles from the player. They used to linger unnecessarily a bit longer
- Multiplayer lag hopefully improved significantly. The computation burden of enemies was unfairly distributed between players. I have not yet tested this fix. I will soon.
- Item drops (the ones that bop around when you break something) had a lot of physics overhead. I removed their colliders and now they just check the distance to each player. Massive improvement when you destroy a lot of stuff at once (like with bombs)
- Enemies are now pooled. There won't be little lag spikes anymore when they spawn... At least for <10. If there are more than 10 enemies, they don't get pooled. The first time those 10 enemies of each type spawn, there will be some overhead, but after that it's essentially free to spawn them in and out.
- Make it so the wizards only spawn far away in the forest. They're kind of an advanced enemy
BUGS
- Fixed a bug where completed quests would show up in your quest log even if you never got assigned them.