Requesting ‘Starling’ to step independently?
Has the OpenFL team considered creating a version independent of ‘AS3 Starling’ to independently update new features and optimize performance? Thank you
I was tagged, but just to clarify, I can’t take any credit for the work that’s done on OpenFL and Starling for OpenFL. There’s a number of folk working on those projects, and my part in that is barely negligible ![]()
I do what I can here, because it’s what I can do to pitch in.
A hard fork that you’re implying, is an undertaking of greater work, than a soft-forked port. I can understand the appeal of it, but it comes down to having persons interested and capable enough, to undertake the task. It’s open-source, so aside from willing people, there’s nothing stopping it.
@Matse has touched on it a bit in the past if I recall, but has also taken some great leaps ahead with Starling, with the massive-starling extension.
Yes, at least to an extent : I’m just a contributor, not part of OpenFL team
There is a consensus to improve Starling’s code on non-flash targets to avoid using ByteArray because then all the data has to be copied to another format before uploading to GPU. Josh already provided an update on this here VertexData, IndexData: prefer ArrayBuffer and typed arrays over ByteA… · joshtynjala/starling@1ac9872 · GitHub
I have yet to take time to play with it and see if it can be further improved, I think Josh reported a performance improvement around 10-20% with those changes.
Starling-haxe is already a bit different than Starling-as3 : on the haxe version MultiTextureStyle is pretty different than on the as3 version. It handles up to 16 textures and is optimized to run significantly faster.
If you have a lot of objects that are using different textures/atlases mixed together, MultiTextureStyle can be a real game changer. This can be tested using Massive’s demo ( MassiveDemo ) : with 16 atlases and MultiTextureStyle turned off I get about 30fps with 2000 movie clips on my system (using Firefox). With MultiTextureStyle turned on and max textures set to 16 I get 75 fps.
I sent a PR for the as3 version a few months ago but didn’t get a reply from Daniel. Currently with the as3 version unless you use baseline profile MultiTextureStyle will throw an error if you set its max textures to a value higher than 2 so I guess there are not many people using it.
It’s also worth noting than in its current state starling-haxe is a lot faster than starling-as3 on flash/air target : on my system I can display about 3 times more movie clips with the same frame rate
Thank you for your positive response. It’s great to hear such good news. Thank you, thank you to all the contributors
I’m personally against major public API differences between AS3 Starling and OpenFL Starling that would make them incompatible with each other. If someone wants to port an AS3 Starling game to OpenFL, they should be able to do so by focusing only on AS3 vs Haxe syntax differences and not figuring out how public APIs have changed in the library.
Note: That doesn’t mean I’m against improving the non-public internal implementation, nor am I against adding new Haxe APIs that didn’t exist in the AS3 version. Both of those are completely acceptable.
However, if anyone wants to fork Starling to create a new project that makes major changes to the public API, I say go for it! I just don’t think that it should be called Starling anymore. A project like that deserves a new name.
I agree entirely, that’s still a lot of room for improvement !
