FEATURE: I’m going to be taking a look back at the games that I played when I was younger. Inspired by the ‘#FourGames’ hashtag, I began wondering how these games, that I sank hours into, were made and what was the development process like?

The first game I’m looking back at is Bubble Bobble, an arcade game released by Taito in 1986. The game has been ported to over 15 platforms including the Commodore 64, Sega Master System and PlayStation.

WHAT IS BUBBLE BOBBLE?

Bubble Bobble is a cooperative platformer featuring two dinosaurs, bub and Bob, who must complete one hundred levels to rescue their girlfriends from the evil villain ‘Super Drunk’. The game was revolutionary at the time for being one of the first games to feature two-player cooperative play and have multiple endings.



To complete a level, the dinosaurs have to blow bubbles at enemies and capture them inside. Once an enemy is captured, Bub or Bob must hit the bubble to pop it to defeat the enemy. Once all enemies on a level are defeated the game progresses to the next level.





WHAT ARE THE MECHANICS OF BUBBLE BOBBLE?

Several mechanics that layer on top of each other make the game more interesting. When all enemies except one have been defeated the last enemy will become enraged, turn red and gain a speed increase. If the dinosaurs take too long to complete the level, Baron Von Blubba - a ghost beluga whale, is spawned and chases them, acting as a time enforcer.



As the game progresses, more varied types of enemies appear. The most basic enemies are square clockwork robots which do little more than move towards the dinosaurs, but later levels include enemies that can fire projectiles, fly or move diagonally. This means the player must adapt and change tactics to deal with each enemy type.





In addition to these mechanics, power ups which augments the type of bubbles blown are also a factor as well even more subtle mechanics within each level; such as the varying airflow system within a level. Bubbles can also be used as platforms by holding the jump button when above them. This adds variety to the game, and because each playthrough will be different, creates a dynamic session for the player.



The game also features secret levels and items as well as three endings that are triggered by following a Spelunky-like ridged strategy. For example the game must be completed in two-player mode where it is revealed that although this ending isn’t the bad ending (reserved for one-player mode) it isn’t the true ending either. A code is displayed on screen using strange symbols with the clue “No Miss Clear! Round 1-20! & Enter the silver door !! You will find ‘ABCD…” [sic]. This is a poor translation that means ‘Get to level 20 without losing a life and enter the silver door, here you will find the cypher for this code’. These secret levels are found on level 20, 30 and 40 which all reveal clues to getting the ending already seen which is sort of recursive, except now the code at the end can be deciphered. The secret code reveals a cheat which must be entered at the title screen and starts the game as ‘Super Bubble Bobble’. One completing the game with two-players in super-mode the happy / true ending is revealed.

WHAT’S GOING ON UNDER THE HOOD?

Very few things in Bubble Bobble are based on a random number generator. The rest is due to a clever design technique. For example, sometimes the bubbles that are burst at the end of a level will turn into fruit. There are several ways to cause this. Collecting the treasure chests and candy canes, being on every 5 th level (5, 10, 15, etc…) or if the last 2 digits of your score (excluding the 0 in the units column) are identical.



The lettered bubbles E-X-T-E-N-D appears random but actually uses a counter which increases every frame. This makes the letters predictable and can be used to theoretically get all 6 letters in 1 level. This works because a new bubble spawns every 128 frames after the previous bubble, whilst none will appear if there are already 16 bubbles on the screen. If you take the modulo of the number of frames between spawns and the number of letter bubbles (128 mod 6) you get 2. Getting consecutive letters means you get either E, T, N or X, E, D repeating. If you create a bubble on the same frame that a new bubble should spawn the bubble is delayed by 1 frame and the letter that will spawn changes.





This style of pseudo-randomness also applies to item spawns. In the NES version of the game, fast shoes spawn on the next level if the counter recording the number of times a dinosaur bounces on a bubble reaches 15, whilst the green candy granting a faster bubble blowing rate will spawn on the next level when the counter recording the number of bubbles blown hits 35. Umbrellas which allow the dinosaurs to skip levels (the number of levels skipped is random) spawns after the counter tracking how many water bubbles have been popped reaches 20. These items are also ranked in priority preventing multiple items from spawning on the same level. For example “Shoes > blue candy > green candy.”



Andrew ‘AND4H’ Shute and Brandon ‘TheFirstKnight’ Shute summarise this on the speed runners community website SDA: “the most important thing about running Bubble Bobble is that it's surprisingly mostly NOT random with its magic items. Each of the magic items has an in-game counter associated with it, and when that counter is met, the next level will spawn said item. If multiple conditions are met, then the item of highest priority spawns first. After that, the counter for the spawned item resets and the item next in line spawns on the next level (provided the players don't meet the requirements for a higher priority item before that next level). This continues until there are no more items in line. Note, however, that even if the item doesn't actually spawn in time due to level completion or game over, it will still count as having spawned.”

HOW WAS THE GAME MADE?

For the Commodore 64, ZX Spectrum and Amstrad CPC port the development team, Software Creations, was tasked by BT’s then software division, Telecomsoft, to handle the conversion for the Firebird label. Once they were completed they later handled the Atari ST and Commodore Amiga versions. Initially they believed it was a simple platforming game, only to realise the depth of the secrets later in development, and in some cases not knowing them at all.



Taito sent Software Creations an arcade machine in free-play mode, so that they could play the game as often as needed.



The coder for the Commodore 64 version, Ste Ruddy, said in an interview with RetroGamer.net: “We spent an awful long time playing the game; it’s a fantastic arcade game! We didn’t understand all of the secrets so we just implemented the game to mimic what we did notice. So how the pick-ups appear isn’t the same as the arcade on the C64, but it should be very similar to how the pickups appear after the machine is powered up.”



They had trouble understanding the secrets because although Taito send some source code to Software Creations, it was commented in Japanese, which after translation was “mostly nonsense” . So too were the annotations showing the level maps and the air flow direction for each tile.



Due to the limitations of the commodore 64, there were some problems with bubbles acting incorrectly, and the number of sprites on the screen at once. To get round this Ruddy created the bubbles as software sprites which were updated every three frames, whilst dinosaur and enemy sprites were updated via an interrupt every two frames. The maximum number of enemies in the arcade version of Bubble Bobble reaches seven at once, this was reduced to six by Ruddy as the Commodore 64 would not cope running with seven. All of Software Creations ports of the game also show 1 less line on screen due to capabilities of the home computer’s frame buffers.





The ZX Spectrum version was coded by Mike Follin which is a far less accurate port. Along with the Amstrad CPC version, coded by Peter ‘Zero the Hero’ Gartside, it only featured 80 levels due to memory limitations. The graphical limitations also meant the game’s graphics on the ZX Spectrum were a poor imitation of the arcade release. A random colour cycling technique was used and all sprites share a colour which changes between levels. This means the Bub and Bob aren’t always green and blue respectively.



The Atari ST and Commodore Amiga versions were programmed David Broadhusrt who later went on to work on the PlayStation, PC and Saturn versions with Probe Entertainment. These ports were started after the 8-bit versions. Ruddy gave Broadhusrt his airflow data from the Commodore 64 port to save on development time. The Atari ST version was made first and that version was then ported to the Commodore Amiga. NTSC versions were then programmed for North America.



The theme music, originally created by Tadashi “KIM” Kimijima, was recreated for each Software Creations version, with Tim Follin working on The 8-bit versions while David Whittaker of ‘Kernkraft 400 – Zombie Nation’ fame, handled the Atari ST and Amiga sounds. The Amstrad version has no theme music, only sound effects.



None of these ports are truly accurate to the original. The most accurate port of the arcade version is Sega Master System version, which makes sense as it was developed by Taito themselves. It has the arcade secrets intact and uses the same counter triggers to spawn items.



Taito also added 30 new levels within the 100 extra levels triggered by collecting three diamonds from the special levels, as well as featuring two more bosses at level 48 and 80 (a giant Mighta and giant Hedgegons respectively). The graphics are very comparable to the arcade version, however due to memory limitations on the cart the game uses small 4x4 sprites for each 8x8 level wall and platform where the arcade version has differing 4x4 sprites for platforms and 8x8 sprites for the level wall. The arcade version sometimes uses unique sprite patterns for the level boarder which is also missing from this version.



I noticed that the Game Gear version, although fairly accurate to the arcade release, has a minor change in level design. The entire playfield is squeezed vertically to account for the resolution and screen size difference. This gives an impression of all sprites looking a little squished.

Probe Entertainment ported the game to PlayStation, Saturn and DOS in 1996. However these ports were reverse engineered from a PCB of the arcade game that Taito sent them. They couldn't send the original source code as in the same year Taito announced they had lost it. However, working as a freelance programmer, David Broadhurst was contracted by Probe Entertainment at the time and managed to fix some of the issues in these versions that were unknown or unable to be ported to the 8 and 16 bit versions that he developed at Software Creations.



When asked in an interview, the late game designer, Fukio “MTJ” Misuji said he believes the game’s endured popularity was due to the “cute character design and unique ability to shoot bubbles”.

Although Space Invaders is by far Taito’s most famous and popular release, Bubble Bobble is my personal favourite Taito arcade game. The game can be played single player, but it’s obviously meant for two players and the cooperative play with you and your friend against the game brings added fun into the mix. It’s also worth mentioning Tadashi “KIM” Kimijima’s iconic theme music is so joyful and an instant earworm.

The game will be 30 years old next year, it’s the same age as me, and it’s nice to see 1 thing from 1986 that’s still good with age.