As the title says, I am working on a FOSS Linux Pinball Simulation Engine. It is based on my Pascal Tiny.Sim library which has been in github for many years. Tables are designed in parametric CAD (OnShape for now) and imported by my engine as 3D meshes. It simplifies many of the physics bodies into primitives and has options to configure how meshes are convert into a table. The logic for a table is written in Typescript. Users can also edit the table inside the game. The idea will be that users can use the engine to play and share pinball tables of their own designs. I am supporting Linux because I use Linux every day and it needs more support when it comes to playing good fun games.
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.
I love pinball, personally terrible at it, I always thought a some luck came into play depending on where the ball was dropping/heading, until I watched someone actually good at pinball play.
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...
If you have an interest in virtual pinball, grab the latest release build of Visual Pinball [0]. Nudging is fully implemented (keyboard, gamepad, actual accelerometer boards you can mount in a cabinet, etc) and the overall physics have been substantially updated recently. The current development version runs on Windows / Mac / Linux / iOS / Android / VR Headsets, etc. And there are thousands of tables available from recreations of real machines to original creations [2]. It is all free and open source.
I would even argue that without bumping and the threat of tilting the table it is not really a pinball simulation, but merely some kind of pinball looking video game.
Yes, I am aware of Visual Pinball. This is meant as a pinball simulation system for Linux, using a Javascript engine and not VB Script. Also, it will support running on Linux using dmks, so on PCs without a display server.
I'm interested in knowing how the physics are realized here.
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.
You might be interested in checking out how Visual Pinball does it. The changelong [0] for the current development version discusses all the latest physics updates since the last release and it is very comprehensive. The code is open source so you can dive into the code for it to see how it's done.
I started writing my own physics system a while back, and in January of this year started working on some tests befre realziing I was never going to get acceptable phyics on my own. In August I started using Jolt and it seems to work. So to answer your question, I am using Jolt for the physics now.
Tons of physics engines (including jolt mentioned by op) have some variation of continuous collision detection that should prevent such tunneling effects. At this point it seems more rare to not have CCD at all.
The video demo looks great, the physics seem really close to a real pinball machine. I have a digital pinball machine at home, I hope this will support dual-screen machines!
Yes, it will eventually support dual screen, that is the playfield and the backglass. Today I will be working writing DMD screens using typescript, and I happen to prefer DMD over the newer LCD screens on modern tables.
When I get close to my initial source release I will look into what it takes to port tables from VPX to my engine. Right now I am purposefully not exploring that because I want an unclouded fresh start for pinball simulation.
Check out Visual Pinball [0]. Not on Steam. Thousands of tables. Cross platform and runs on everything from phones to purpose built cabinets. Very advanced physics. Free and open source. It's fantastic.
No, but it will support PinMAME fully. For copyright reasons, I wll not however be developing both the engine, and recreating actual tables. That would be a bit too far from my legal perspective. I will leave it to other who want to do that.
As the title says, I am working on a FOSS Linux Pinball Simulation Engine. It is based on my Pascal Tiny.Sim library which has been in github for many years. Tables are designed in parametric CAD (OnShape for now) and imported by my engine as 3D meshes. It simplifies many of the physics bodies into primitives and has options to configure how meshes are convert into a table. The logic for a table is written in Typescript. Users can also edit the table inside the game. The idea will be that users can use the engine to play and share pinball tables of their own designs. I am supporting Linux because I use Linux every day and it needs more support when it comes to playing good fun games.
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.
How are you doing physics here, what is the physics engine based on? I checked Tiny.Sim on github and it said that it's has just 2d physics?
Thinking of it, pinball makes for a pretty good demo for physics engines
I love pinball, personally terrible at it, I always thought a some luck came into play depending on where the ball was dropping/heading, until I watched someone actually good at pinball play.
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? :-)
If you have an interest in virtual pinball, grab the latest release build of Visual Pinball [0]. Nudging is fully implemented (keyboard, gamepad, actual accelerometer boards you can mount in a cabinet, etc) and the overall physics have been substantially updated recently. The current development version runs on Windows / Mac / Linux / iOS / Android / VR Headsets, etc. And there are thousands of tables available from recreations of real machines to original creations [2]. It is all free and open source.
[0] https://github.com/vpinball/vpinball
[1] https://github.com/vpinball/vpinball/commit/faedd951e77ad163...
[2] https://virtualpinballspreadsheet.github.io/
I would even argue that without bumping and the threat of tilting the table it is not really a pinball simulation, but merely some kind of pinball looking video game.
I've been playing and loving Vector Pinball (Floss, on fdroid: https://f-droid.org/en/packages/com.dozingcatsoftware.bouncy...) a lot.
I can only applaud more options for pinball games in the FLOSS world. Thanks!
Make sure to also check out Visual Pinball, the community has built tons of tables for that.
Yes, I am aware of Visual Pinball. This is meant as a pinball simulation system for Linux, using a Javascript engine and not VB Script. Also, it will support running on Linux using dmks, so on PCs without a display server.
I'm interested in knowing how the physics are realized here.
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.
You might be interested in checking out how Visual Pinball does it. The changelong [0] for the current development version discusses all the latest physics updates since the last release and it is very comprehensive. The code is open source so you can dive into the code for it to see how it's done.
[0] https://github.com/vpinball/vpinball/blob/master/docs/Change...
I started writing my own physics system a while back, and in January of this year started working on some tests befre realziing I was never going to get acceptable phyics on my own. In August I started using Jolt and it seems to work. So to answer your question, I am using Jolt for the physics now.
Tons of physics engines (including jolt mentioned by op) have some variation of continuous collision detection that should prevent such tunneling effects. At this point it seems more rare to not have CCD at all.
The video demo looks great, the physics seem really close to a real pinball machine. I have a digital pinball machine at home, I hope this will support dual-screen machines!
Yes, it will eventually support dual screen, that is the playfield and the backglass. Today I will be working writing DMD screens using typescript, and I happen to prefer DMD over the newer LCD screens on modern tables.
Make it work with dualshock controllers, so that everyone can benefit from force feedback.
I will look into adding haptics. Thanks for the feedback.
Is it compatible with Visual Pinball? Because that's where all the tables are.
When I get close to my initial source release I will look into what it takes to port tables from VPX to my engine. Right now I am purposefully not exploring that because I want an unclouded fresh start for pinball simulation.
good. we need some quality games that are not on Steam to show to new linux users.
MsPinBall was very good at that for windows.
Check out Visual Pinball [0]. Not on Steam. Thousands of tables. Cross platform and runs on everything from phones to purpose built cabinets. Very advanced physics. Free and open source. It's fantastic.
[0] https://github.com/vpinball/vpinball
Does it pull or use anything from vPinMAME?
No, but it will support PinMAME fully. For copyright reasons, I wll not however be developing both the engine, and recreating actual tables. That would be a bit too far from my legal perspective. I will leave it to other who want to do that.
Very slick!