Alert! Safety Boom! Mission Editing

So, how are things going here in A!SB!land?

Currently, we’re hard at work getting all the missions up and running. All of them are designed, and have been created in our custom Boom Editor, but they’re not all ready for testing yet — probably about 20% of them need more work done. Then we can get beta testers trying them out, making sure they’re fun, making sure there aren’t any bugs, and also checking the “difficult curve”. Ideally, each mission is just a little trickier than the last, so that the player is challenged but never runs into a brick wall of difficulty. This is one of the most valuable things we get from beta testing.

But first, we have to finish that last 20%. What’s up with that? Well, we treat the missions a bit like brainstorming: we come up with ideas for stuff that will be fun, and put it into the missions, whether or not the game actually supports it! As long as there’s something that can probably be adapted to the task, it’ll go in. So right now, I’m going through catching up on all the “optimistic” designs, figuring out how best to make them actually happen!

Here’s what our editor looks like, showing the last of the “training” missions:

Alert! Safety Boom! editor screenshot

If you’ve read about Alert! Safety Boom!, you’ll know that each mission consists of a set of “layers” stacked up. In order to defuse a bomb, you need to open the outer casing, solving the layers one-by-one, peeling them away to reveal its heart so you can disarm it.

In the top left, you can see all the layers for this mission stacked up. In the main display, you can see the outer casing (since it’s on top, and we haven’t zoomed in on a particular layer), and we can work on the visual design simply by dragging elements around, rotating and resizing and so on, much like in a vector editor (such as Lineform, Intaglio or VectorDesigner, to name three).

In the bottom left is the “inspector”, which is the main tool for actually setting up the gameplay. See, when a new graphic is added to a mission, it’s initially just a piece of inert scenery. It sits there looking pretty, but it doesn’t do anything. By clicking the popup menu at the top of the inspector (showing “Layer” in the screenshot), we can set that bit of scenery to instead behave like any one of a number of gameplay elements. Whether it’s “useable” items like nuts and bolts, sliders, electronic components and so on, or more obscure stuff that helps support the game, like special animations, sensors, decision-makers and such, it’s all available from that menu.

Each of these game object types has different collections of properties, and those properties work in different ways. Some are yes/no checkboxes, some are drop-down lists of options, some are colour wells, some are simply boxes to fill in text. The inspector shows the properties of the currently selected item with the appropriate controls, adjusting itself automatically to match the ‘type’ of the item. This saves us a lot of time because we can create new types for the game, and the editor “just works” — it examines the types themselves and figures out what’s needed.

Alert! Safety Boom! inspector — slider Alert! Safety Boom! inspector — animation

Something we tend to do a lot with A!SB! is use these in combination, in order to keep the list from spiralling out of control. For example, we have a standard “push-button” element that responds to finger-taps, and we can set it to either toggle on and off with each tap, or get pressed in and stay down. Other items can then be dropped into the mission and “driven by” the button.

Let’s say the button’s purpose is to pop open a battery compartment so you can take the batteries out. We’d drop in the compartment lid graphic, create an animation for it sliding aside, and hook it up so the button triggers that animation.

But also, the visual design of the button itself can be set up the same way. We can make custom button types if we wish, with completely different ways of showing whether they’re pressed or not, without needing to write new code for them. We drop in the graphics, and animate their colours, sizes, rotations, positions, etc all driven by the button just like the battery compartment lid. Then we group all the pieces together and tell the editor these should all be treated as part of the same thing — the button.

It’s actually worked out pretty well for us. We have a neat selection of tools we can reuse in a variety of circumstances to keep the game fresh and interesting for you — without entirely killing us under the weight of a thousand custom gameplay routines.