1+2. Yes. I’m making a fast-paced 2D platformer with curvy terrain like Sonic and am using it for nonterrain foreground decorations and certain terrain objects.
3. The tool is very nice and smooth for the options it currently has available, but a lot of improvements can still be made, such as:
a. Modifier keys when clicking on spriteshape tool hotspots (such as a shapepoint) to streamline certain modification features without having to disrupt eye+mouse position by needing to use the inspector UI. You could say it’s minor, but coming from Ferr2D which has those types of features it is something I noticed as being a workflow disruption.
b. Curve generation is currently just a manually shaped bezier curve. Since my game relies heavily on making perfectly precise angled straight and curved edges, a modifier-key+click on a tangent-mirror shapepoint that automates different types of precise uniform curve shapes would be ideal (one example curve-type being a perfect halfpipe curve like Sonic). Ferr2D currently can do this with a single click of a shapepoint which is one of the reasons why I still use it over SpriteShape for terrain objects. It doesn’t need to be that fancy, but I can’t really use SpriteShape for terrain with any curvature (which is most of my terrain) unless I can make perfect curves with it, which can’t be done with just the current system.
c. Separate material for edges for shader effects that don’t affect the fill
4+5. Collider generation has been immensely improved in the past couple months, but there are still a few quirks. There’s still a weird bug with the offset=0 matching the fill shape less accurately than offset=0.00001. And I think the collider complexity can be optimized a bit more even still while still perfectly matching the fill mesh shape. Ferr2D can still generate a somewhat significantly simpler polygoncollider for an equally complex mesh shape.
6+7. Corners are probably the worst feature at the moment. I think it would be a lot better if there were an option for Straight-line mode to automatically generate a corner for the point by very sharply bending the selected edge mesh. Very similar to how mirrored-tangent mode essentially generates a curved corner already, except just make it sharper. This creates a much smoother corner transition than needing to use a separate sprite. Specifically for shapes that represent natural landscapes like rocks, grassy cliffs, etc, which I’d argue are more prevalent than shapes that represent a more manufactured terrain that would benefit more from a custom corner sprite, like that of a building. Ferr2D manages to do it this way and it looks great.
The current corners also break easily unless they’re in a very limited shape range. The above suggestion would allow the corner to work at any extreme shape range.
10. I have no idea how feasible any of the following will be in terms of even being possible to do, but:
a. I’d love if there were some built-in edge transition features. For example I primarily use spriteshape for making natural scenery like cliffs, and in order for the edges to seamlessly blend with the fill in a professional-looking way, you need to feather the bottom half of the edge sprite in your preferred image editor so it blends into into the fill texture. Otherwise there’s a clear and jarring visual difference where an edge meets the fill. I’m happy to do this manually in the image editor, but I’m using it just as a simple example of potential edge mesh transition features that can turn a shape from looking amateurish to looking AAA.
b. Similar as the above, but for neighboring edges. If there were a built-in way to blend different edge textures together when they meet by internally overlapping and feathering them near the transition point, that’d be honestly amazing. This one’s not technically possible to do through image editor tricks, so I highly doubt the effort/result ratio is worth doing on your guys’ end. But I wanted to mention it anyway.
c. I use an orthographic camera which means I need to manually move the transforms of background objects in order to create a parallaxing effect. But I also need it so the moving spriteshapes are synced to world-space UVs. The problem is at runtime if you attempt to move a spriteshape with world-space UVs enabled, the fill texture doesn’t move with the object. So I essentially just need an option to have the spriteshape fill UVs set and saved to world space once and then have it stop syncing so it moves with the object properly.
d. Maybe an option to pre-generate the mesh data and store it in the scene asset before runtime so a spriteshape doesn’t use a decent amount of resources when it’s first rendered.
I think this is almost everything for my particular needs. I still use the tool for a bunch of stuff because it truly is great!
Thanks for making it because it really makes certain types of games seem a lot more accessible for newer devs, which is always a good thing.