Thinking of it, pinball makes for a pretty good demo for physics engines
Thinking of it, pinball makes for a pretty good demo for physics engines
With regards to Godot, while I like it, when using my own engine I can take a lot of shortcusts that Godot cannot. For example, I am able to save a lot of computational logic on reflections by making the requirements that reflections only world on right angled surfaces, which is fine for a pinball table. Also, I am able to cheap out with lighting using a my ouwn techniques for generating lighting maps in a shader, something that is hard to pull off with Godot.
This other game project of mine is written using Godot and C#:
That looks awesome! I was just thinking about Marble Madness earlier this week and wondering if there were spiritual successors.
Why? It's a 3D object careening around a 3D environment. I'm struggling to imagine how you could imagine this.
But all the physics is 2D. Because the model is a circle on a map on to which 2D forces are applied. The ball moves in 2D. Even with ramps and shutes, which can be modeled like "extra 2d maps with entrances and exits (portals)".
I've made a pinball sim myself (in bevvy), and have poked around in FLOSS projects (vector pinball, Metal-Pinball) as inspiration for that sim. While some pinball games do use full 3D modeling, I fail to see the benefit that the 3rd dimension offers. The way I see it, it can add a tiny bit of extra realism (like bouncing off the floor, friction, curved ramps or floors etc). But a lot (and I expect not all) of that extra can be simulated in 2D by manipulating the 2d forces applied.
I grew up playing only video game pinball. It wasn't until I was living in a more urban area in my late teens / early twenties that I actually played on real pinball tables. Until I played real tables I don't think I understood the physicality of the game.
While Space Cadet Pinball proudly calls itself '3D pinball' , the only 3D thing about it is that the table background bitmap is drawn in perspective and the ball gets smaller if farther away ;-)