Settings

Theme

I'm Working on a FOSS Linux Pinbal Simulation Engine

getlazarus.org

66 points by sysrpl · 31 comments

Reader

11 threads
sysrplOP

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

    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

      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

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

      • tstenner

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

    • sysrplOP

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

      • V__

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

        • sysrplOP

          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

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

    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

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

berkes

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

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.

  • sysrplOP

    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

    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

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

  • sysrplOP

    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

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!

  • sysrplOP

    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

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

boredhedgehog

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

  • sysrplOP

    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

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

Does it pull or use anything from vPinMAME?

  • sysrplOP

    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

Very slick!

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection