the cutting room mirror

Angry Birds Space

Unused Music#

"Planet Pursuit" (bosstest)#

There is an audio file in the demo version named 'bosstest.mp3'. It is a lot different from the final boss theme, sounding a lot more regal and faster. It does not appear to be complete, as it loops strangely.

On March 25th 2024, a finalized version of this track was officially uploaded to the Angry Birds Gaming channel, revealing this track's name to be "Planet Pursuit" and its composer being Ilmari Hakkola.

"Interstellar Interlude" (AB_space_level_menu)#

Another unused music track labelled "AB_space_level_menu.mp3" in the files, which would've likely played in the level selection screen(s). This track is also present in a TestFlight prototype build, only this version is finalized and fades out at the end.

Just like bosstest, the official name of this track, "Interstellar Interlude", was revealed on the Angry Birds Gaming channel, and was also composed by Ilmari Hakkola.

AB_space_stars_03_example#

An unused version of the tune that plays when you get three stars, with a drum roll in the background. The final one is split up into three separate sound files for each star.

Unused Sounds#

spaceAmbient01 and 02#

There are two unused space ambience sounds.

World_1_Ambient#

This unused ambience track actually differs between the mobile and PC versions of the game: in the mobile version, it is nearly identical to the used Pig Bang ambience, but with a much louder bass synth note at the beginning. In the PC version, it is an entirely different ambience sound containing strong winds, tambourine sounds, wind chimes and metallic drones.

iOS, Android, etc.

PC

BombLaunch#

An early, lower-pitched version of Bomb's launch sound.

bossBuggy01#

A looping engine sound presumably intended to play during the King Pig boss fight in Pig Bang.

Black Hole Bird Sounds#

Four sounds intended for an unused Black Hole Bird that never made it into the final game. Code and data for this bird are present in version 1.0.0 and a prototype version of the game. These sounds are also present in said prototype.

Alternate Red Yell Sounds#

There were 2 sounds titled "redbird_yell02" and "redbird_yell03". They are the same as the used yell sound.

Leftovers from Angry Birds#

Many leftover sounds from the original Angry Birds have managed to sneak their way into the game's files.

Ball Bounce#

A sound for a ball bouncing. This may be a leftover from the ball objects in Angry Birds.

Balloon Pop#

A sound for a balloon popping.

TNT Explosion#

There is a leftover sound of the TNT explosion from the first Angry Birds game.

Birds#

Red

Two leftover sounds of Red being selected and launched.

The Blues

Leftover sounds of The Blues being selected, launched, and colliding with objects.

Chuck

Leftover sounds of Chuck being selected, launched, colliding with objects, and using his power.

Bomb

Leftover sounds of Bomb being selected, launched, and colliding with objects.

Terence

Two leftover sounds of Terence being selected and launched.

Matilda

Leftover sounds for Matilda, who doesn't appear in Angry Birds Space.

Hal

Leftover sounds for Hal, who like Matilda, doesn't appear in this game.

Hidden or Off-screen Objects#

To do:

  • (All found in PC version) unused space helmets below big dipper and old level select corresponding to pigs placed on planets. *Slingshot with 3 invisible reds under original level select.
  • Pig Dipper bossfight loads saucer far below slingshot before boss is defeated.

There are some objects in levels that are hidden off screen.

Main World Select#

The main world selection menu has a planet and many bubbles loaded off screen. Despite seeming empty, each bubble can be clicked in order to pop them, and each one corresponds to a pig on the various menu planets which seem to lack any bubbles. When popped they will freeze and shatter like any directly suited pig. More interestingly, there is a planet which contains an invisible slingshot with 3 invisible Space Reds. Launching all of them does not have any effect, however they do properly collide with objects in the world.

Pig Dipper Level Select#

The level select screen for Pig Dipper has 2 pigs in bubbles and an anchor hidden below the first screen.

Unused Birds#

There exists data for some unused birds.

Black Hole Bird#

Located in version 1.0 is data for a Black Hole Bird. It is strong against wood, and would've likely spawned a black hole that would suck up all blocks and pigs in a small radius for a short period of time. It has references to 2 sprites, being "BIRD_BLACKHOLE_NORMAL" and "BIRD_BLACKHOLE_SPECIAL". Sounds for it seem to exist, which can be seen above. This may have been replaced by the Space Egg power up which was released later.

Homing Bird#

In the same version as the Black Hole Bird, there is data for an unused Homing Bird. It likely would've acted like Laser Bird, homing in on wherever is tapped, and it may have been an early version of it. Like Black Hole Bird, it is strong against wood. It has references to 1 sprite, being "BIRD_HOMING_FRAME_1".

Unused Objects#

Mario Pipe#

To do:

  • Rip the sprite and show gameplay of it at the explained level where it is at in-game.

An unused object based off the warp pipes from the Super Mario series. This object was meant to appear in Eggsteroid 2. The object uses the stone material and has a strength of 30.

Unused Graphics#

Angrybirdsspace-galaxynote.png Angrybirdsspace-galaxynote2.png Angrybirdsspace-launchpartner.png

Leftover graphics from an exclusive Eggsteroids level for the original Galaxy Note. The level can still be played in the Android version on Samsung devices.

Unused Text#

1. Poached Eggs
2. Mighty Hoax
3. Danger Above
4. The Big Setup
5. Ham 'Em High
6. Mine and Dine
7. Birdday Party
Unlock the full version for countless new levels and ads removed!
The survival of the Angry Birds is at stake. Dish out revenge on the green pigs who stole the Birds' eggs. Use the unique destructive powers of 
the Angry Birds to lay waste to the pigs' fortified castles.
Angry Birds features hours of gameplay, challenging physics-based castle demolition, and lots of replay value. Each of the 105 levels requires 
logic, skill, and brute force to crush the enemy.

Leftover text from Angry Birds.

Get it here
You already have the latest version
New update available!

Leftover text from the Maemo version of Angry Birds, stored in TEXTS_OVI_STORE.dat.

If you like %@, please rate it. Thanks!
Rate now
Remind me later
No, thanks
Angry Birds Space HD

Leftover text from the iOS versions.

Visit Samsung GALAXY Note site!

Leftover text from the Android version. This text is seen when pressing the video button after beating the Samsung exclusive Galaxy Note Eggsteroid level.

Special Launch Offer - Danger Zone levels available for Free on Samsung devices!

Leftover text from old Android versions. Interestingly, while this text is no longer used, Danger Zone levels are still available for free on Samsung devices.

Do you want to learn more about conservation of the ocean and OceanElders?
Do you want to learn more about Slash's new album(this is a placeholder)?

Placeholder message box text.

Edit

Remnants of an internal level editor?

Debugging Functions#

To do:
Sort! Explore the game scripts for more and/or more info if possible.

Changing flags in options.lua enables some debugging functions.

Debug Keys#

With releaseBuild set to false, these are usable:

Key

Function

7

Changes the view of the camera to be heavily zoomed out. Certain lines define the camera view.

Red: Full camera view
White: Current camera view
Yellow: Length of the full camera distance
Green: ?
Pink: ?

f

Toggles visibility of the FPS display.

8

Draws hitboxes of objects not yet interacted, this excludes birds.

Elsewhere:

  • The FPS display is shown on bootup.
  • Popup messages are shown when the game creates save files.
  • The credits screen shows the SVN revision number.

To do:
You can't press it on Win8?

  • A button is visible on the main menu.

Developer Cheats#

Most cheat keys and assets are removed from the majority of releases.

The Windows 8 version however, has a small number of them.

With cheatsEnabled set to true, these are usable:

Key

Function

c

Completes the level with a 3-star score. A quadruple click on the bottom left corner also works.

4

Triggers Daily Reward.

PgDown

Advances a level.

PgUp

Goes back a level.

g

Fails the level.

Elsewhere:

  • A small cheat menu is visible on the main menu, very similar to Angry Birds Star Wars' menu.
  • All levels are unlocked with no stars.

In-Game#

Powerup Popup Dev Menu#

If the game is not a release build, the game will show a cog button in the top middle, touching it will show a menu with debugging functions:

  • Reset = Resets the cooldown timer.
  • Remove All Powerups = Removes all powerups for a save.
  • Special Offer Evertime = Always get a free powerup when having 0.
  • Restart Gap = How many restarts it takes to suggest using a powerup.
  • Default Timer = Cooldown time.

Development Leftovers#

Partial Engine Source Code#

Four source files likely from the pf (Platform Functionality) namespace of Fusion for the Android platform were left in the package root of version 1.3.2 for Android. Fusion is Rovio's private version of the KA3D engine with lots of modifications.

Download Angry Birds Space (Partial Engine Source)

File: ABSpace_PartialFusionSource.zip (3KB) (info)

Unknown JSON File#

A similar JSON file from Angry Birds Seasons made it's way in HD version 1.3.2 for Android.

{
    "appName": "Angry Birds", 
    "archs": [
        "x32", 
        "arm", 
        "armv7"
    ], 
    "buildDate": "2012-11-05", 
    "buildStartedBy": "", 
    "compileLua": true, 
    "compressLua": true, 
    "copyAssets": [
        [
            "game/data_src/levels/*.lua", 
            "data/levels"
        ], 
        [
            "game/data_src/levels/theme1/*.lua", 
            "data/levels/theme1"
        ], 
        [
            "game/data_src/levels/theme2/*.lua", 
            "data/levels/theme2"
        ], 
        [
            "game/data_src/levels/theme3/*.lua", 
            "data/levels/theme3"
        ], 
        [
            "game/data_src/levels/theme4/*.lua", 
            "data/levels/theme4"
        ], 
        [
            "game/data_src/levels/theme5/*.lua", 
            "data/levels/theme5"
        ], 
        [
            "game/data_src/levels/dangerZone/*.lua", 
            "data/levels/dangerZone"
        ], 
        [
            "game/data_src/levels/bonus/*.lua", 
            "data/levels/bonus"
        ], 
        [
            "game/data_src/levels/eggLevels/*.lua", 
            "data/levels/eggLevels"
        ], 
        [
            "game/data_src/levels/featherLevels/*.lua", 
            "data/levels/featherLevels"
        ], 
        [
            "game/data_src/localization", 
            "data"
        ], 
        [
            "game/data_src/localization_android", 
            "data"
        ], 
        [
            "game/data_src/scripts/*.lua", 
            "data/scripts"
        ], 
        [
            "game/data_src/scripts/menus_space/*.lua", 
            "data/scripts/menus_space"
        ], 
        [
            "common/scripts/game/*.lua", 
            "data/scripts_common"
        ], 
        [
            "common/scripts/game/ui_components/*.lua", 
            "data/scripts_common/ui_components"
        ], 
        [
            "external/Fusion/data/shaders/gles2", 
            "data/shaders"
        ], 
        [
            "game/data_src/audio/16000hz-16bit-mono/**", 
            "data/audio"
        ], 
        [
            "game/data_src/images/1280x800", 
            "data/images"
        ], 
        [
            "game/data_src/images/1024x600", 
            "data/images"
        ], 
        [
            "game/data_src/fonts/1024x768", 
            "data/fonts"
        ], 
        [
            "game/data_src/audio/16000hz-16bit-mono/**", 
            "data/audio"
        ]
    ], 
    "copyExcludes": [
        "game/data_src/scripts/editor"
    ], 
    "copyPatterns": [
        [
            "icons/android/res-hd/**", 
            "res"
        ]
    ], 
    "copyTo": "p:/RovioMobile/AngryBirdsSpace/Software/Android/2012-11-05_1.3.2_(7903)_androidmarket", 
    "customLuaOptions": {
        "gamelua.alwaysAllowGotoLevel": false, 
        "gamelua.applyChinaRestictions": false, 
        "gamelua.cheatsEnabled": false, 
        "gamelua.customerString": "'androidmarket'", 
        "gamelua.enableAssertions": false, 
        "gamelua.g_registrationEnabled": false, 
        "gamelua.g_showTutorials": true, 
        "gamelua.g_updateCheckEnabled": false, 
        "gamelua.gameId": "'abw'", 
        "gamelua.gameVersionNumber": "'1.3.2'", 
        "gamelua.isKorea": false, 
        "gamelua.releaseBuild": true, 
        "gamelua.showEditor": false, 
        "gamelua.svnRevisionNumber": "'7903'", 
        "gamelua.useMockAchievementLimits": "not True"
    }, 
    "customScripts": {
        "assetFilter": "update_level_filenames.py"
    }, 
    "customer": "androidmarket", 
    "debug": false, 
    "defines": [
        "USE_GOOGLE_PLAY_IN_APP_BILLING", 
        "ZIPPED_LUA_FILES", 
        "CRYPTED_LUA_FILES", 
        "USE_FLURRY", 
        "HD_VERSION"
    ], 
    "dirSuffix": "", 
    "encryptLua": true, 
    "encryptionKey": "", 
    "failOnConfigurationWarnings": true, 
    "includeDirs": [
        "../../source", 
        "../../external/Fusion/include", 
        "../../common/dependencies/box2d/Box2D", 
        "../../common/source/"
    ], 
    "jobs": 8, 
    "keyAlias": "", 
    "keyAliasPassword": "", 
    "keyStore": "", 
    "keyStorePassword": "", 
    "luaOptionsFile": "data/scripts/options.lua", 
    "minSdkVersion": "8", 
    "modules": [
        "googleiap", 
        "framework", 
        "grgles2", 
        "game", 
        "flurry", 
        "gr", 
        "hgr", 
        "img", 
        "io", 
        "lua", 
        "net", 
        "pf", 
        "util", 
        "audio", 
        "math", 
        "lang"
    ], 
    "obfuscate": true, 
    "outputName": "AngryBirdsSpace_1.3.2_HD_androidmarket_DISTRIBUTION", 
    "packageName": "angrybirdsspaceHD", 
    "platform": "android", 
    "projectName": "AngryBirdsSpace", 
    "releasePackage": true, 
    "sourceExcludes": [
        "../../common/source/*IPHONE*.cpp", 
        "../../common/source/*iOS*.cpp", 
        "../../common/source/AppUpWrapper.cpp", 
        "../../common/source/GameFlurr*.cpp", 
        "../../common/source/GamerService.cpp"
    ], 
    "sourceFiles": [
        "../../source/**.cpp", 
        "../../common/source/*.cpp"
    ], 
    "subDir": "gen", 
    "svnRevision": "7903", 
    "targetSdkVersion": "13", 
    "verbosity": 1, 
    "versionCode": "1320", 
    "versionString": "1.3.2"
}

SVN Remnants#

The BlackBerry Tablet version left a .svn subdirectory in the assets directory, with a tiny amount of information about where the app icon and splash screen's assets were from.

Since the version control expects you to be connected to Rovio's internal server, you cannot access the revision history of the repository.

10

dir
92627
https://svn/repos/Rovio_AngryBirdsSpace/branches/AngryBirdsSpace_generic_1.0.0/build/blackberry/assets
https://svn/repos



2012-04-05T10:35:13.883924Z
92626
antti.alho


svn:special svn:externals svn:needs-lock











507d547c-9613-0410-96c6-edd5cc76dab3
�
icon.png
file




2012-04-05T10:51:30.346000Z
7982086c38e2817218cc02d146621690
2012-04-05T10:35:13.883924Z
92626
antti.alho
has-props




















15273
�
splash.png
file




2012-04-02T23:17:41.884000Z
62ec4aac67f8928c1ec9ff28543ef5c8
2012-02-29T11:35:27.944954Z
89067
antti.alho
has-props




















33391
�

We can get a glimpse of the properties of these files/directories by running a Subversion command such as svn info -R --include-externals in the /assets directory.
NOTE: Since these files are in an older version of the format (format 10), the command svn upgrade has to be executed before the one above if using newer versions of Subversion.

Path: .
Working Copy Root Path: assets
URL: https://svn/repos/Rovio_AngryBirdsSpace/branches/AngryBirdsSpace_generic_1.0.0/build/blackberry/assets
Relative URL: ^/Rovio_AngryBirdsSpace/branches/AngryBirdsSpace_generic_1.0.0/build/blackberry/assets
Repository Root: https://svn/repos
Repository UUID: 507d547c-9613-0410-96c6-edd5cc76dab3
Revision: 92627
Node Kind: directory
Schedule: normal
Last Changed Author: antti.alho
Last Changed Rev: 92626
Last Changed Date: 2012-04-05 03:35:13 -0700 (Thu, 05 Apr 2012)
Path: icon.png
Name: icon.png
Working Copy Root Path: assets
URL: https://svn/repos/Rovio_AngryBirdsSpace/branches/AngryBirdsSpace_generic_1.0.0/build/blackberry/assets/icon.png
Relative URL: ^/Rovio_AngryBirdsSpace/branches/AngryBirdsSpace_generic_1.0.0/build/blackberry/assets/icon.png
Repository Root: https://svn/repos
Repository UUID: 507d547c-9613-0410-96c6-edd5cc76dab3
Revision: 92627
Node Kind: file
Schedule: normal
Last Changed Author: antti.alho
Last Changed Rev: 92626
Last Changed Date: 2012-04-05 03:35:13 -0700 (Thu, 05 Apr 2012)
Text Last Updated: 2012-04-05 03:51:30 -0700 (Thu, 05 Apr 2012)
Checksum: 86c1203c7d9d4bf9d058ff78611fd0a4255d7b2c
Path: splash.png
Name: splash.png
Working Copy Root Path: assets
URL: https://svn/repos/Rovio_AngryBirdsSpace/branches/AngryBirdsSpace_generic_1.0.0/build/blackberry/assets/splash.png
Relative URL: ^/Rovio_AngryBirdsSpace/branches/AngryBirdsSpace_generic_1.0.0/build/blackberry/assets/splash.png
Repository Root: https://svn/repos
Repository UUID: 507d547c-9613-0410-96c6-edd5cc76dab3
Revision: 92627
Node Kind: file
Schedule: normal
Last Changed Author: antti.alho
Last Changed Rev: 89067
Last Changed Date: 2012-02-29 03:35:27 -0800 (Wed, 29 Feb 2012)
Text Last Updated: 2012-04-02 16:17:41 -0700 (Mon, 02 Apr 2012)
Checksum: 01bb275b31914f18786644bbb876a4c4c47bc261

All of these files and directories were last changed by Antti Alho, credited under the "Post production" team.
The revision number for these leftovers are 92626.

The revisions of the files in the folder are byte-to-byte identical to the used versions.

Unnamed Script#

Versions 1.3.1-1.4.0 HD for iPad, have a script named *.lua in the images directory. It only has roughly just the below content:

filename = "*.lua"

Revisional Differences#

PC#

The PC version stopped receiving updates as of v2.0.0, the only other distribution source used was Steam as its own version and it ended at v2.1.0.

Anti-Hacking Strings#

The native function GameLua::unlockRequestChecksum was updated starting with this game and uses two strings instead, possibly to tell reverse engineers looking at the function to refrain from continuing with their desires. Interestingly it remained in all future builds of the game, regardless of the platform.

ThinkOfTheChildren
ThinkOfTheChildren2