• sysrpl 7 hours ago

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.

• zokier 4 hours ago

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

• berkes 3 hours ago

I'd imagine that pinball is essentially 2D. Maybe some lanes and ramps would affect gravity, but I can imagine the few Z-direction adjustments aren't worth simulating everything in 3D.

• mrob 12 minutes ago

The ball often jumps off the playfield in real pinball. It's not uncommon for it to jump high enough to hit the glass. You'll never get an accurate simulation if you simulate it in 2D.

• tstenner 2 hours ago

When you already have accelerator fields (pretty likely for a pinball simulator) you can reuse them for ramps

• sysrpl 2 hours ago

I was writing my own 3D egnine at the start of the year. I eventually gave up and switch to Jolt in August.

• V__ an hour ago

If you are already using Jolt, have you thought about switching to Godot to make it cross-platform?

• sysrpl 16 minutes ago

I started with Godot, and swtich back to Pascal. It will be and is cross platform, but I am focusing on Linux, because that is what I use.

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#:

https://www.orbliterate.com

• malbs 5 hours ago

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? :-)

• kruffalon 4 hours ago

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.

• foo12bar 2 hours ago

A pinball sim running on a phone or a tablet would be perfect for this, because of the inbuilt accelerometer.

• berkes 3 hours ago

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!

• Tade0 3 hours ago

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.

• sysrpl 2 hours ago

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.

• zokier 2 hours ago

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.

• panki27 3 hours ago

Make sure to also check out Visual Pinball, the community has built tons of tables for that.

• sysrpl 2 hours ago

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.

• InsideOutSanta 4 hours ago

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!

• sysrpl 14 minutes ago

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.

• larodi 3 hours ago

Make it work with dualshock controllers, so that everyone can benefit from force feedback.

• sysrpl 2 hours ago

I will look into adding haptics. Thanks for the feedback.

• boredhedgehog 3 hours ago

Is it compatible with Visual Pinball? Because that's where all the tables are.

• sysrpl 2 hours ago

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.

• flossly 5 hours ago

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.

• Toynbeeidea 6 hours ago

Does it pull or use anything from vPinMAME?

• sysrpl 2 hours ago

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.

• gavmor 5 hours ago

Very slick!