I'm Working on a FOSS Linux Pinbal Simulation Engine
getlazarus.org
getlazarus.org
If you want to help Linux and are an artist, I plan make the initial source code release with 3 different tables and a guide for how to create your own pinball tables. I am looking for artwork to help with table artwork. My contact information is on the page linked to this submission.
Thinking of it, pinball makes for a pretty good demo for physics engines
Why? It's a 3D object careening around a 3D environment. I'm struggling to imagine how you could imagine this.
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.
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.
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 ;-)
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.
He showed me there is a fine art in bumping the machine subtly enough to move the balls line so you can stop it from going straight down the middle or into one of the dead lanes... but not so much to trigger the sensors to shut the machine down.
Watching him play pinball blew my mind. I've never been able to do what he could do, but it's definitely an art form...
So, can you implement machine bumping? :-)
[0] https://github.com/vpinball/vpinball
[1] https://github.com/vpinball/vpinball/commit/faedd951e77ad163...
I can only applaud more options for pinball games in the FLOSS world. Thanks!
I've been working on a golf game to play with my friends and the first hurdle I had to go through was the fact that you can't just slap an off-the-shelf physics engine on it and call it a day, because over certain velocities the ball will tunnel through the walls.
[0] https://github.com/vpinball/vpinball/blob/master/docs/Change...
The main issue was "bouncy ball" physics. At certain angles, balls should roll along the edge and continue to touch that edge. In other cases, the ball bounces of the edge. It's very hard to get both use-cases right. Anyway, you cannot seem to get it right without taking the ball spin into account.
Some things seems very simple but are actually very hard. Pinball physics is one of them. The other I know of is time, super complex!
MsPinBall was very good at that for windows.