This release adds two new features to particlefx; an option to orient particles along their movement direction, and a keyable “stretch” property. The stretch can be set to according to the particle velocity or fully controlled with keys using the curve editor.
The release also includes some big optimizations when updating transforms for gameobjects and sprite components.
The performance gain is most notable on lower end devices but will also impact newer ones too: e.g. ~65% gain on iPhone 4S (5000 sprites) and ~15% for an iPhone 6 (14000 sprites). Measured using our defold-bunnymark test.
The sprite component now also uses indexed vertex buffers instead of triangle lists which makes better use of the GPU.
Engine
DEF-2047 - Added: Particle orient along movement direction, stretch by curved values or by velocity.
DEF-3069 - Fixed: Crash fix for tilegrid when no physics is used.
DEF-3058 - Fixed: Engine video recording not working.
DEF-3057 - Fixed: Refactor sprite component to use indexed vertex buffers instead of triangle lists.
DEF-3052 - Fixed: Optimized the Sprite update transform function.
DEF-3054 - Fixed: Bug when playing a spine animation backwards 3 times.
After debugging with @Mathias_Westerdahl, we are no longer able to replicate the issue I described below. As far as I can tell, I can only assume it was some sort of temporary issue on my end! So with that said - apologies to everyone for the false alarm and for keeping you from what seems to be a very useful update!
ORIGINAL:
This update has affected me adversely - so I am just wanting to sense check whether that’s my fault or possibly something of an issue in the update. (I wouldn’t be surprised if it’s the former!)
I’m developing an isometric-tiled game. Currently my structure is such that each tile is a gameobject with a sprite attached. In the previous release versions, this would run at ~30 fps when I had ~13000 gameobjects with sprites attached (the quantity of sprites is a stress test beyond what I expect in the final product). I was in the process of refactoring my code, so that sprites not on screen would be “disabled”. This improved things to ~55 fps prior to this update - which I found perfectly acceptable considering the large quantity of sprites.
I just updated to 1.2.119 and the game now runs at ~5 fps (using my latest, more optimised, code). I am aware my structure is probably not ideal, but it is odd to me that things would become significantly slower to this extent.
I would appreciate anybody’s input on:
Whether or not this is something “wrong” with the release or if this is just my reality now and I have to completely rethink my game’s structure; and
If my structure is wrong, what a better solution would be for my situation.
Done - I have added you to the team. The code for spawning and enabling/disabling tiles is located in maps -> map_spawner.script. I am developing for Windows/Mac.
I hope I wouldn’t be preventing something being deployed that would be useful for other people. Perhaps it could be an option in game.project? In any case, I do appreciate you having a look at my project to see if it’s sensible to do it my way.
We couldn’t reproduce it. We think it was an issue with the user’s computer/setup, since he couldn’t reproduce it either. So, we’re went ahead with the release