
As mentioned in my previous post about Storm the Castle!, I said that I would be revising the layout I made in my Pinbox Pinball project in Visual Pinball, an open-source pinball engine, with a list of definite fixes for the virtual layout. Just so you don’t have to go back through the other post, what I said I’d be doing is the following:
- Move the castle a bit back and have all the bumpers forward, that way it seems more akin to attacking an opposing force.
- Add some sort of visual representation for each of the troop types (infantry, cavalry, artillery), perhaps with a little cutout drawing on top/in front of each bumper.
- Change how the castle works. I can’t exactly keep the balls stuck in a hole in Visual Pinball, since that’ll result in a softlock. I’ll most likely make the castle a walled-off kicker with a rail being the only way to get into it, but we’ll see once I get started on getting this together.
Changes
I not only incorporated the changes listed above, but I also did the following:
- Change the enemy troops from being bumpers to drop targets. This would make the concept of taking out the enemy forces much, much more tangible, since hitting the target would remove them from the board.
- This posed a separate problem of not having much to do once targets were eliminated, so I decided to incorporate another mechanic: Waves. Once you knock out a group of targets (Infantry, Cavalry, Artillery), you would get a point bonus for routing (taking out) that respective group, and they would all pop back up.
- I also decided to have all troops pop back up once your ball was out of play. That way you wouldn’t have to launch a ball into an essentially empty board.
- Add a spinner to the castle ramp. That way you still get some credit for hitting the ball up the ramp, even if you don’t actually breach the castle.
- At first it doesn’t give that big of a bonus, but if you can manage to successfully breach the castle, it’ll give you more points. The more you breach the castle, the more points you’ll get.
Design
Thanks to Visual Pinball being a virtual pinball editor, I didn’t have to worry about making the table itself; the engine has a preset for a completely blank pinball table.

The trickiest part of getting the table working was the scripting. While including simple things, like a bumper, drop target, trigger, etc. is as easy as dragging and dropping, Visual Pinball is kinda archaic; if you want to do fancier things, like group targets together or have a kicker hold a ball for a certain amount of time, you’ll need to use Visual Basic scripts to make things work; however, because Visual Pinball has been around for so long, forum posts and really old websites provide a lot of the exact code you’re looking for.

Thanks to those online sources for making the scripting process easier, I was able to add a lot more functionality than I’d hoped for, including the following:
- Incorporating a light that will go out if you hit its respective target.
- Including a multiball mechanic every 5 times you breach the castle.
- Increasing the amount of points you get every time you knock down a set of targets or breach the castle.
- Having an end of ball (Assault) bonus, which would be dependent on how many times you breached the castle or knocked down sets of targets.
- I would’ve loved to have the Assault Bonus show each part one at a time, similar to your typical pinball table after you lose a ball; however, timers were hard to manage and I ultimately couldn’t get it done in time.
- Pressing F5 to reset when the game is over.
However, there were still some issues that popped up that were a bit out of my control. These included:
- The pinball itself could completely miss the kicker in the castle, which meant that you’d be shafted out of points if this happened.
- I decided to justify this one by saying that cannons won’t always hit their mark; just refine your aim and try again.
- Score updating and displaying text representing bonuses (i.e. defeating a troop type or breaching the castle) was wonky.
- This is why there are two separate displays for the score and flavor text; that way, score can be displayed while bonuses are clearly described.
- There’s an issue of how consistently the text updates when you get a bonus, and while that could be rectified with Timers in Visual Pinball, it ended up just not working when I tried to program it.

Playtesting and Feedback
Unfortunately, I couldn’t get much peer feedback because my table wasn’t in a playable state when we needed to playtest the tables in-class, so I had to improvise with feedback from friends and from Imagine RIT, which is RIT’s signature event for makers.
I’ll talk more about how the Imagine RIT experience went when I talk about the Demo Days, but in short, feedback at the event was overall positive. The biggest critiques were in regards to the lights; the orange and yellow lights had minor issues with contrast when under certain viewing angles. It also seems to be a game in which players are either capable of extremely high scores or super punishing, and there’s not much in-between there.
I’m overall very proud of how things turned out with the Visual Pinball iteration of Storm the Castle!. I’m glad I was able to put in most of the functionality I wanted into the table, and it’s super satisfying to play now.