First of all, thanks for releasing this for PC, and double thanks for including portrait mode at launch! After playing this for over 30 hours in the past 5 days, here's my lengthy list of cabinet suggestions and ideas.
I know you guys are busy and that cabinet owners are a minority (if an extremely passionate one). So I'll organize these by importance as I see it. Some have obviously been mentioned, but I wanted to get all my thoughts in one place. Others can feel free to disagree, offer their own ideas, or expand on what I have. Just trying to help out with ideas and I appreciate your responsiveness to the community in general.
By the way, we don't need menus for everything. Some simple txt or ini files would be fine for a lot of this stuff, if that's a possibility. Also, speaking for myself, I'd be more than willing to pay for access to some of the more advanced features, or contribute to a small Kickstarter.
P.S. You guys should get/build a cabinet for the office. They're awesome.
Critical
-- Multiple monitor support, with ability to move DMD to another screen. Ideally you could drag the DMD to any monitor, rotate 90 degrees in any direction and allow it to be resized to any size to accommodate everyone's builds. A text file would be fine, though (monitor number, X and Y coordinates, X and Y size in px, etc). This would be appreciated by some multi-monitor desktop users as well.
-- Ability to remap controls to any key, any joystick button, or any joystick axis. This would be appreciated by desktop users as well.
-- Analog nudging recognized by input on the X and Y axis would be ideal. Otherwise, an adjustable minimum threshold would help so that accidental bumps to the cabinet (or the impact of a real plunger) do not trigger huge nudges. Either way, a "gain" setting for the amount of nudge force applied once input is registered would help as well. This would allow me to trigger full-strength nudges like the Xbox 360 controller stick does without abusing my cabinet.
-- Ability to rotate to portrait/cabinet mode inside the game, rather than via Windows monitor settings. This would be appreciated by desktop portrait users as well.
-- One of two things:
-- A) Ability to launch directly into a certain table via command line commands. This would allow the front end programs people use on cabinets to launch tables from different pinball games and back out again. Ideally it would skip any splash screens, or at least proceed through them without any "Press Enter to Start" prompts. I'm not sure what might be required, like in terms of closing Pinball FX instantly when an exit button is pressed, or if the script would basically just do an Alt+F4 on it or what. Others can hopefully provide more detail on the bare minimum needed here.
-- or B) a menu system that can be navigated by just the buttons on a cabinet. For example, mine has two flipper buttons on each side, a Start button, a "coin" button, a Launch Ball button and an Exit button underneath the cabinet. I was thinking this would be tricky, because you don't want to have to maintain a separate UI just for cabinets and adding wrapping to the cursor (to avoid mapping up/down buttons) might get messy while trying to use it. But I think the best idea is to just keep the UI how it is in portrait mode and offer an option to have separate controls configured in the menus vs in the game. Given my setup and the existing portrait mode UI, I'm imagining this:
-- Menu:
-- Left primary flipper button: move left
-- Right primary flipper button: move right
-- Left secondary flipper button: move up
-- Right secondary flipper button: move down
-- Start button: select (Enter on the keyboard by default)
-- "Coin" button: switch section (Tab on the keyboard by default)
-- Launch ball button: nothing; or maybe select also
-- Exit button: back out (Esc on the keyboard by default)
-- In-Game:
-- Left primary flipper button: left flipper
-- Right primary flipper button: right flipper
-- Left secondary flipper button: launch ball (for Tesla magnasave, Moon Knight shooting gallery, and other instances where you can't move your hand down to the other buttons on the front of the cabinet fast enough)
-- Right secondary flipper button: launch ball (same reason as above)
-- Start button: launch ball (for starting a game from attract mode and entering initials)
-- "Coin" button: nothing
-- Launch ball button: launch ball
-- Exit button: pause (Esc on the keyboard by default)
Through key-mapping utilities, I'm basically already using this system for the menus and it works well.
Important
-- Option to disable all non-critical special event cameras. What I mean by this is anything you can see in a normal, full-screen, portrait view of the table should not zoom in to a close-up view. Examples that should not have a zoomed event camera: launching the ball from any plunger (main or alternate), Jabba the Hut coming out into view on Boba Fett, the mission mini-playfield on Blade, the submerged "Fight" mini-playfield on Pasha, etc. Examples that should continue to have special cameras because they zoom away to mythical offscreen areas: Hulk Arena, breakout-style minigame in Fear Itself, Brain puzzle in Biolab, etc.
-- Extra credit: get the upper backbox playfield on Paranormal (when it is released) to operate on the 2nd backglass monitor like the real pinball table Banzai Run.
-- Option to disable the roaming camera in attract mode. It kind of kills the illusion in a cabinet.
-- A backglass image displayed on a second monitor. Ideally built in automatically with some nice art, or else the ability to somehow set an image ourselves per table. The artists in the community would come up with something.
Nice-to-Have
-- Slightly more adjustable camera. I'm torn between views 1 and 2 right now. The angle on 1 seems good, but is maybe a hair too close and a little of the plunger mechanism gets cut off. Maybe custom positioning, or at least custom zoom? Extra credit: some kind of setting where you put in your height and it adjusts the camera?
-- Support for real DMDs. Many people are building these into their cabinets because they are so much brighter and more authentic than emulating the look of a DMD on a monitor. As far as I know, they all use the PinDMD board. The owner, Russ, is active in the virtual pinball community (especially over on vpforums) and might be willing to work with you. I don't know how your DMD system works and what this would take, but it would be amazing. Others in the community may be able to help as well.
-- Built-in support for the the Pinball Wizard controller (and thus Pinball Wizard kit used in many cabs). I haven't used the standalone controller itself, but I imagine it would work well for desktop enthusiasts who want authentic controls. Ideally the game would recognize it so that the plunger and analog nudging would work with no configuration. Probably would be good to still allow button remapping on top of that, though, because people may have different preferences depending on what the menus are like and such (or they may have physically wired their buttons to different joystick numbers other than the default). Barring built-in support for it, it would be cool if you got one and tested with it to make sure it works nicely with generic control configuration options.
Stretch Goals
-- I don't know if this is even possible, but a cabinet-specific camera angle that removes or counteracts the 3D perspective you get from the game engine. What I mean by this is that normally objects in a video game that are further back in the scene appear smaller because they are further away. So on a cabinet if you align the camera so that the front of the siderails of the in-game table line up with the edges of the screen on the near side of your playfield monitor, the rear siderails of the in-game table are like an inch or two in from the edges of the monitor because the perspective effect of the engine takes over -- the far side of the table appears smaller. I don't think you really need this on a cabinet, because the far side of the playfield monitor is physically like 3 feet farther away from your eyes than the near side. It would be awesome if the virtual table just "fit" the real one perfectly. Obviously not a high priority; just an idea.
Extra Crazy Stretch Goals
-- Head tracking like in this video. Maybe via Kinnect for PC? I don't seriously expect this, but it would be cool, right? Assuming there was minimal lag.
Thanks for your time!