The game: A more-advanced breakdown clone. With a platform that can be angled, and moved left and right by the players control.
The goal: To make a mechanic that allows the ball to bounce around the level with zero friction and a constant velocity that can change directions as it bounces around.
Current mechanic: The idea is to have a ball that is launched at a starting velocity, and to avoid having any resistance force applied to it. This is done, as stated by launched the ball with a force of 300, in a starting direction, the ball then bounces off of all elastic obstructions, and continues this as it collides with, and destroys blocks as an objective.
The problem: Numerous variables constitute to the overall slowdown of the ball overtime, that I can’t seem to eliminate. Another issue is that if the platform that the player controls is in motion while the ball collides with it, the ball is accelerated at very high speeds. It makes sense as to why this happens, I just don’t want it to happen. And the final least prominent issue; Sometimes when the ball hits a surface parallel to the direction it is traveling, it will come to a dead stop, or slow down, regardless of both objects being 100% elastic, and having no dampening.
Alternative mechanic that has issues: An alternative would be to use a ray and calculated the direction it needs to travel if colliding with an object, this would allow my to apply a constant and controlled force to the object. The problem is that I cannot get this system to work, regardless of the numerous scripts that exist for it.
So, can any of you guys help me to find a solution for this conundrum? I would prefer the alternative solution, but a fix for the original would still be good.
I have attached a demo of the mechanic in a simplified state:
demo2.blend (646 KB)