Open IWonderWhatThisAPIDoes opened 2 months ago
RE: Finite Horocycles: By using an animation with velocity that diverges like 1/x, you can traverse an infinite distance in a finite time, it would be therefore possible to animate an object moving like this, and it would basically never teleport while onscreen (well, technically it would teleport at one frame, but the idea is that the object appears to be moving so ridiculously fast it doesn't seem like a teleport, maybe).
Also thought of that mathematical trick, but I am not sure if that animation would actually look natural. We might have to try it and see.
All of our cycles are still circles, which is fairly limiting in design of more deranged puzzles. Cycles should be able to take on more shapes.
This is related to https://github.com/IQuick143/bevy_jam_5/issues/5, but it is not the same thing - this issue is about regular cycles (as far as the game logic is concerned, there is exactly zero differences), just presented in a different way. Nontheless, the different shapes could allow for new ways the cycles could interact on a mechanical level.
Finite Horocycles
Straight lines that loop off-screen. If nothing else, these could allow for more concise geometry of some levels. An important design consideration is that some screens do not have the aspect ratio we expect, and what we consider off-screen might be visible then. For that reason, animation of movement on these curves will have to be done carefully, and probably involve a fade-out since we cannot guarantee anything moving off-screen.
In a similar way, an infinite curve could be of a circular (or other) shape.
Shapeless Cycles
A closed loop of no particular shape. The use case for such cycles is when the level geometry does not allow for neat circular cycles. An example of this is the Rubik level, where the single-face cycles cannot be circular.
Ellipses?
An ellipse is not particularly necessary for anything, but could be a nice addition here. One point to keep in mind is that ellipses could potentially intersect at more than two vertices, allowing for new level geometries.
Swap?
A circle with two vertices takes up a lot of space and very little of it is actually used. An ellipse would be better at this. Another alternative would be a special type of "cycle", a line segment that connects two vertices and simply swaps their contents.
Off-screen curves
Any of the closed curves should be able to be placed partially off-screen to save space. This might not require implementing a new cycle shape, the ability to adjust the resizing viewport should be enough.