Sunday, December 28, 2014

Merry Christmas, Mr Bubbles!

With the holiday spirit still in mind, I've treated the pinball machine with some respect and love and gave it a few gifts - in the shape of additional game programming features!

I've detoured from "creating the most advanced and deep ruleset the world has ever seen (tm)" and instead focused on getting basic functionality in place. I figure I can always flesh out the features every now and then instead. A strategy that proved to be most effective. I've added basic functionality for most major game play features including:

* Little Sisters
* Rescue / Harvest (videomode)
* Steinman multiball ("Ugly ugly ugly!")
* DNA / ADAM Frenzy
* Photo targets
* Drones
* Plasmids / "Plasmirage" multiball
* Rapture multiball

The features are pretty much stand-alone at the moment, as I've mostly skipped the planned interleaved parts. I've got a lot of sound effects in place as well as generic "hurry up" quotes. The game is now playable and enjoyable, which is a good thing! Next I aim to get the following features in place:

* Mr Bubbles / "Big Rage" multiball
* Splicers
* New Years Eve
* The Masterpiece  
* The rest... 

The biggest challenge so far has been to do "timed" events properly, or rather events that keeps running and doing things over several cycles, as it includes using a lot of counters and variables to keep track of various states and what not. I've found myself having to deal with, and code, a large number of different interconnecting functions simultaneously, for instance with the Little Sister mode. It's easy to get side tracked and think "oh, right - I also need this!" while doing something completely different.

Even the most basic function needs a menu setting, a start and stop state, it's own variables (which is unique to each player), an update loop and rule set for interacting with other functions etc. The list goes on and increases as the complexity of the function/mode grows. It's rather easy to miss things, for instance - one time I stared myself blind on the code for a mode and couldn't figure out why the frak it didn't work. Turned out I missed to run the update-function for the mode completely...

The plan is to at least have something in place for every switch and lane, even if it means just getting points and getting a message displayed. I've skipped almost all videos at the moment (this can be added quite easily in the future) - I just really want the machine to be in an alpha or beta state at the very least, which seems plausible at the moment, thankfully. 

1) Old rubbers. Hard to see in the picture
but when stretched this rubber is
visibly cracked almost everywhere.
I had to do the first routine maintenance of the machine, which included new rubbers for flippers and slingshots! It's mostly because of air and sun exposure as it hasn't really been played a lot. I've also wiped and cleaned the playfield, as well as adjusting some hardware (including the drain, which sometimes failed to kick the ball, resulting in multiple drain registrations and thus ending multiballs prematurely...).

Felt a little weird to perform maintenance before it's even completed, but hey, it sure feels like a proper machine now. The future for the machine looks promising - 2015 will most likely be the year I'll finish it! ;)

No comments:

Post a Comment