In small video i would like to demonstrate frame rate fluctuations that cause my game to be unplayable.
I have an empty level with 4 sprites as floor and player start. Every few tenths of a second we can see framerate dip. Now if i pause game same exact thing. While game is paused only thing ticking is paused menu blueprint that loops a flipbook.
With experiment that has nothing but 1 blueprint and 4 sprites on screen i would like to show Devs and in particular that there is something really wrong with Unreal and paper2d.
Please do something about it.
For temporarily workaround, you can try fix here: /marynate/UnrealEngine/commit/70cd0fa29052f65511e97a0c2973fa9392188941
(It seems to me Atlas Group feature is still WIP, so you probably will bump into other issues here and there. )
I don’t know If that question was already answered before, I didn’t read all topic,
We have been working in a project with paper2d during a while and overall it’s great. But we have a lot of physics issues.
Is there any intention to completely add box2d to ?
If not, how difficult should be try to do it by ourself? Bearing in mind that we would integrate in unreal engine and only features we need and want.
I know use/integrate box2D as external tool wouldn’t be so hard in a normal basic engine, problem is that I don’t know how hard is in unreal.
Collisions are still messed up.
Shrink wrap fires both OnBegin and On End and sprites that have no collision when you drag and drop them into a level they still get a block all collision setting.
I’d like to bring up something I mentioned a while ago. Would it be possible to please have a control on terrain splines for control over resolution of render and collision geometry?
It would be nice to get a bit more fidelity out them and it also affects gameplay as collision is quite low resolution.
It is called in InsertConvexCollisionDataFromPolygon() and OnSplineEdited(). If I create a float UPROPERTY and use that as a multiplication factor on FlatEdgeDistance argument, will that get me what I’m after? I’m going to give it a go tonight but just thought I’d ask as it looks like where geo is being made.
It was a combination of FillRasterizationTimeRate (which generates higher res geo) and extra variable I made which is provided as an argument to SimplfyPolygon function to reduce geo. way I have nice detailed geo on sharper angles and less on flatter areas.
And one of main questions I wished to understand is how sorting of translucent sprites is done? I don’t mean from what criteria; I know you can set axis, distance… etc… What I’m wondering is if is always a sorting algorithm occurring with our sprites we need it or not, which algorithm is it, and if we can disable it?
In my example project above when I hit 3,000 sprites it become painfully slow… Is engine still trying to sort (with QSort or something) all that 3k sprites even if all of them are at zame Y=0 value?
There is any plan to implement actual Layers where all sprites contained in same layer do not need any sorting?
Actually before went AWOL he created something called ‘sprite merging’. Pick all sprites that you want to be in same z order layer and right click. From there choose merge sprites and system will render them as only one draw call.
patch at /marynate/UnrealEngine/commit/70cd0fa29052f65511e97a0c2973fa9392188941 is required to package atlas on ios. Unfortunately it was not included in 4.9 release.
It is a very very minor change, any chance can get added to release branch sometime?
I can’t find that “sprite merging” option on right click, but anyway I suspecting that will not work for my project if merging takes all my sprites and make a solid group.
My sprites in fact are independent blueprint instances spawned at runtime with a PeperSprite component and they need to be allowed to move/animate independently.
May i ask why would you use blueprint actors for sprites?
Actors,pawns and characters, especially, have a very big impact on performance since they have a LOT of stuff inside them.
3000 actors is an insanely big number for any hardware, let alone mobile.
In my humble opinion your benchmark makes no real world sense for game development.
You create everything as sprites or flipbooks (scenery, tiles, etc) and you only use actors for stuff that need some logic. Not even in bullet hell games will you see 3000 objects on screen at same time!
Especially for mobile most limiting factor are draw calls. With sprite merging option you can make some really big and complex things only count for one draw call.
In general game development is about using everything you got in a smart way. Brute force is not always right solution, even though i have to admit that as time passes by it is less and less of an issue.