Skip to main content
Virtual Pinball System in Godot Engine
  1. Project Portfolio/

Virtual Pinball System in Godot Engine

Table of Contents

I got into virtual pinball with Zen’s Pinball FX3, and I looked around for open systems that would allow me to design my own pinball games.
The most active of the systems I saw was VPX, but I was dismayed when I installed it and starting messing around with it that it had a few major drawbacks from my perspective:

  1. It only works on Windows*

    I daily-drive some flavor of Linux on all of my computers, and while I could dual-boot windows on my desktop it’s not a very smooth experience

  2. The user interface looks like it hasn’t been touched since the days of Windows 98

    While some people on vpin forums are able to make really stunning tables in spite of this, I can’t be the only one who’s decided against making something because the interface doesn’t look user-friendly

  3. It requires a lot of manual file management and tweaking to get tables up and running

    Table files, ROMs and visual packs need to be put in their proper folders and sometimes visual basic scripts need editing in order to get tables to work properly.

My Solution

With these and other issues in mind, I decided to start work on a new, modern virtual pinball system in the open-source game engine, Godot. While this project is still very much a work in progress, several reusable elements and utilities have been developed to allow intuitive playfield design and testing in 3D. Through implementing these elements I’ve also laid the groundwork for extending the system with unique elements, composed of existing physics behavior nodes. This has been a very interesting project to help me jump in at the deep end of 3D game development, and I hope to continue working on it and pick up some new contributors who can help add features, develop their own tables, and spread the word.

Currently Implemented Elements

  • Flippers
  • Pop Bumpers
  • Spinners
  • Drop Targets
  • Rollovers
  • Ball Guides
  • Playfield Inserts

Elements in Progress

  • Bezier curve-defined ramps
  • Playfield cutout generator using Constructive Solid Geometry (CSG)

Roadmap

Eventually I’d like to build a community around this project including developers, designers and players. Hopefully a system like this built in a modern game engine and focused on open-source will open the door to a whole new crop of pinball designers who like me might have wanted something a bit more user-friendly than VPX.

Follow me on Mastodon for updates on the project

Star the project on GitHub and contribute

GandalfDG/pinhead

Virtual Pinball in the Godot game engine

GDScript
2
0

* OK, technically I was able to get it working with WINE, but because it relies so heavily on Windows-specific APIs the performance wasn’t satisfactory.