Neon Swarm 2.0: The Mainframe, Endless Mode and Game Center

Five more weeks on the tower defence game: a fourth world that doubles the campaign, a mode where the waves never stop, achievements and leaderboards, and a phone that folds in half.

Where it was, where it is

At the end of the last post, Neon Swarm had eighteen levels in three worlds and played start to finish, with real devices still to come. Since then it has been on an iPhone, an iPad and the iPhone Duo, it has a proper icon, and the campaign has grown to 30 levels in four worlds. Version 2.0 adds a whole second way to play.

Neon Swarm, by the numbers
Levels30 in four worlds (was 18 in three)
InvadersTen kinds (the Jammer is new)
Endless mapsFour, one per world
Game Center34 achievements, 35 leaderboards
Audio23 sound effects and five songs, all synthesised in code
Tests209 (was 105)

World 4: the Mainframe

The first three worlds were sunsets, cities and beaches. The fourth goes inside the machine the swarm comes from: data rain falling over server racks, a tower on the horizon, and a circuit-board floor under an acid-green grid. It opens at 36★ and has twelve levels, twice a normal world, because it's the end of the campaign and the hardest stretch.

Concept art of Packet Storm in the Mainframe: two roads behind closed firewalls under a green grid, data rain and server racks on the horizon
The Mainframe's concept frame: 4-3 Packet Storm. Green grid, data rain, and two firewalls holding the roads.

Every world has brought one new idea, and the Mainframe brings two.

Firewalls are barriers across the road that close for a while, then open. While one is shut, invaders queue behind it, and when it opens they all pour through at once. That changes the rhythm of a level: a queue is a gift to splash damage, but the burst that follows is a test of whatever is waiting behind it. Levels with two firewalls set them to take turns.

The Jammer is the tenth invader. Every few seconds it pulses, and any tower close to it stops firing for a moment. On its own that's a nuisance. In a queue behind a firewall, a few jammers keep pulsing while they wait, which silences the towers beside the queue right as it empties. The counter is distance: towers two tiles back from the road are never jammed, and anything with range can kill a jammer before it gets close.

Concept art panels explaining firewalls, which close across the road and queue invaders, and the Jammer, whose pulse jams nearby towers
The two new rules, from the concept sheet.

I carried on naming the levels after things that go wrong with computers. Handshake, Overdrive, Packet Storm, Race Condition, Signal Noise, Crossfire, Deadlock, Buffer Overflow, Zero Day, Brute Force, Blue Screen and, as the finale, Root Access.

Packet Storm running in the iOS Simulator: towers around a power node between two firewalls, with the Mainframe's green grid and skyline
Packet Storm in the real game, running in the Simulator.
Signal Noise in the iOS Simulator: a spiral road around a core in the middle of the board, with jammers on the road
4-5 Signal Noise, where the Jammer first turns up: a spiral road around a core in the middle.

Endless mode

The campaign is built around short levels with an ending. Endless mode is the other thing people want from a tower defence game: how long can you last? Every world now has one endless map. The waves never stop, each is a little tougher than the last, and when the core finally falls, your score is the number of waves you cleared.

Concept art of Open Road at wave 31 in endless mode, with a NEW BEST toast, a crowded board of towers and a long shared road to the core
The endless concept frame: Open Road at wave 31, just past the previous best.

A few design decisions shaped it:

A chart of Open Road's first forty waves: the number of invaders rises to a cap of sixty while their health keeps growing; every fifth wave is a rush and every tenth brings a boss
Open Road's first forty waves: the count levels off, the health never does. Every fifth wave is a rush of one kind, every tenth brings a boss.
Open Road in the iOS Simulator with the endless mode introduction card over the board: NEW MODE, ENDLESS, the waves never stop and each one is tougher than the last, with the tags every tower, same waves every run and no stars
Open Road for real. A first endless run opens with the mode's introduction card, and the HUD behind it shows the wave with no total.

One feature took more care than the rest: a run survives the app being closed. iOS can quietly kill a suspended app, and a forty-wave run is too much to lose to a phone call. The game now records the run and saves it at the start of every wave, whenever you pause, and the moment the app leaves the foreground, which is the last point iOS promises before it may close it. Come back later and the run is waiting, paused, exactly where it was. It also meant the game now pauses itself whenever anything comes over it, in every level, which it should have done from the start.

Game Center

Leaderboards and achievements went in too: a score leaderboard for every level, one for each endless map, one for total stars, and 34 achievements. Some are milestones (clear a world, earn every star), some are challenges (beat a level with no upgrades, hold every life through the Mainframe), and a few are about how you play (shatter a shield, shoot down a flyer, stop a patcher).

Fourteen round achievement badges drawn in the game's neon style: System Online, Sundown, City Lights, Coast Clear, Shutdown, Golden Hour, Neon Perfect, Chrome Plated, Superuser, Full Spectrum, Field Researcher, Flawless, Untouchable and Last Stand
Some of the achievement badges. Like everything else, they're drawn from the game's own shapes.

The badges follow the game's rule that nothing is hand-drawn. The same tool that renders the concept art draws every badge from the game's sprites, and because Game Center crops badges to a circle, each one keeps its subject inside the ring. The lesson from Nubrixy held: local progress is the source of truth, and Game Center is a mirror that gets re-synced, so nothing earned while offline is ever lost.

A phone that folds

The iPhone Duo arrived in the middle of all this, and it's a strange shape for a landscape game: a small outer screen, a big squarer inner one, and a camera sitting in one corner of the board. The game stays landscape on both screens, and because the board, the glow and the roads all follow the screen size every frame, opening or closing the phone mid-level just resizes the game and play carries on. On the outer screen the board lifts just clear of the camera into the spare sky, so no tile ever hides behind it.

Keeping it honest, still

The test count has doubled to 209. Every one of the 30 levels still has a reference build that must finish within a band of lives, and now each endless map has one too, which must clear a band of waves on every seed. The achievements are tested against Game Center's limits so I can't accidentally hand out more points than Apple allows. And the slowest test loads an endless run from wave 40 to make sure a long run still comes back after the app is closed.

Level select in the iOS Simulator on the Mainframe tab, with level cards for the world's first levels and their map thumbnails
Level select on the Mainframe tab.

What's next

The App Store listing is written, the screenshots and previews are made for iPhone, iPad and iPhone Duo, and 2.0.0 is built. What's left is the part I can't do from a keyboard: review, TestFlight, and finding out what strangers make of it. The next post should have a link.