We have been working to mitigateongoing DDoS attacks. Thank you for your patience.
Please consider supporting us onPatreon.
This article has a talk page!

Angry Birds (iOS)

From The Cutting Room Floor
Jump to navigationJump to search

Title Screen

Angry Birds

Developer:Rovio
Publishers:Clickgamer,Chillingo
Platform:iOS
Released in JP: December 11, 2009
Released in US: December 11, 2009
Released in EU: December 11, 2009


AreasIcon.png This game hasunused areas.
GraphicsIcon.png This game hasunused graphics.
Sgf2-unusedicon1.png This game hasunused abilities.
MusicIcon.png This game hasunused music.
SoundIcon.png This game hasunused sounds.
DebugIcon.png This game hasdebugging material.


ProtoIcon.pngThis game has a prototype article
PrereleaseIcon.pngThis game has a prerelease article

Hmmm...
To do:
  • Discuss whether or not the Free versions and their unused content should be documented here. Free and HD Free contain leftover assets fromSeasons.
  • Make a section for thescrapped Challenges Mode found in v2.0.0.
  • Multiple unused vehicles for the Egg Defender levels in Red's Mighty Feathers (should probably have its own sub-page).
  • Everything present in versions 4.1.0 and onwards.
    • Scrapped F2P/Adventure Mode content (most likely needs its own sub-page due to how much content is left over in the files for it).
      • Unused "Hero" variants of the birds and their abilities showcasedhere.
    • Scrapped "Siege" game mode, which would've had similar mechanics toAngry Birds 2.
    • Scrapped level map layout.
    • Various unused levels found in the files.
    • Unused power-ups.
    • Unused "Flappy Bird" ability which first appeared in version 7.4.0.

Angry Birds is the once hugely popular iOS game with colorful graphics, fun game play, tons of merchandising to back it up and one of the most memorable theme songs ever.Let the birds fly, and may the pigs fallǃ The game has been taken off the App Store, but you can reinstall it if you had it before it was pulled.

Aremake of the game, built from the ground up in the Unity engine, released in 2022. It is based on the 2012 version of the game, following the #BringBack2012 campaign from the community.

Contents

Sub-Pages

Read about prototype versions of this game that have been released or dumped.
Prototype Info
Read about prerelease information and/or media for this game.
Prerelease Info
AB iOS 1.0 HUD ICON NOTE.png
Unused Audio
The unsung squawks and squeals of bird & pig warfare.
AngryBirds iOS Unused VioletFeathers.png
Unused Graphics
Birds, blocks and backgrounds, oh my!
Blank.png
Unused Levels
Seems like even the pigs had to let some structures stay on the drawing board.
Bomb White Spot.png
Revisional Differences
Let's hope you like graphical changes.

Old Level and Game Complete

The sound used for when the player completes a level in the previous versions ofAngry Birds. It was replaced with the ranking system fromAngry Birds Rio, but the sound file still remains in the files of the current version as a leftover, it is only used when the player completes an episode.

The sound used on the oldest version when the player completes the game. This was replaced by a ranking system fromAngry Birds Rio and like above, this song still remains in the files of the current version of the game. Interestingly, some parts of the track were used in a commercial for the Angry Birds Action board game.

Early Mighty Eagle

Before Mighty Eagle was added to the game in version 1.5.0, there was an early version of the Eagle that was found in versions 1.4.0-1.4.1 that was going to work a lot differently. This early version shows that the Eagle was originally going to fall straight down onto wherever the bait initially lands, whereas the finalized version has the Eagle swoop in at a horizontal angle.

Sprites

Bait

Version 1.4.0 features a much different sprite for the Eagle bait, where it was going to look like a mouse. In version 1.4.1, this was changed to early rendition of the sardine can that's slightly slanted.

1.4.0/1.4.1 HD1.4.1Final
AngryBirds iOS 1.4.0 BaitMouse.pngAngryBirds iOS 1.4.1 EarlySardines.pngAngryBirds iOS BaitSardines.png

Eagle

Unlike the Bait, Mighty Eagle himself didn't change all that much, design-wise. In version 1.4.0, his sprite is completely unobscured. In version 1.4.1, a blur effect similar to that of Chuck's ability sprite was applied to the Eagle's sprite. The finalized version seems to use a darkened version of 1.4.1's sprite.

1.4.0/1.4.1 HD1.4.1Final
AngryBirds iOS 1.4.0 EarlyMightyEagle.pngAngryBirds iOS 1.4.1 EarlyMightyEagle.pngAngryBirds iOS BirdMightyEagle.png

UI

AngryBirds iOS 1.4.0 - 1.4.1 UI IngameButtonEagle.pngAngryBirds iOS 1.4.0 - 1.4.1 UI ButtonEagle.pngAngryBirds iOS 1.4.0 - 1.4.1 UI ButtonEagleLost.png

Early buttons for the Mighty Eagle.

AngryBirds iOS 1.4.0 - 1.4.1 UI EagleBadge.png

A badge of some kind, presumably intended for the Level Complete screen after using the Eagle.

Audio

ListenSound Summary
Sounds used for the bait back when it was originally a mouse. Weirdly, while these sounds were removed in mobile versions after the Eagle was finalized, they remained in PC versions.
Two early sounds for the Mighty Eagle himself.


(Source:Original TCRF research)

Magic Places

Hmmm...
To do:
  • There's more assets for this in the files. Document them here.

Magic Places was a Geo-locational game mode which was only playable in China, but was planned to be added internationally. In it, you can collect free power-ups from places that are nearby your location in real life, of which are represented as golden feathers in-game.

Additionally, as part of a sponsership between Rovio and McDonald's in China at the time (of which also spawned acertain webgame that coincided with this game mode), you could also check where the nearest McDonald's is in this. Cause who'd want to check anactual map app for something like that, eh?

Since the international release of this game mode never came to be, multiple assets and scripts for Magic Places were leftover in the files of versions 2.3.0 - 3.0.0.

Sprites

AB HD 3.0.0 MagicPlaces EpisodeSelectionButton.png

The card for Magic Places that would be seen on the episode selection menu, found in the "MAGIC_PLACES_SHEET_1" sprite sheet. Note the "BETA" tag in the top left.

AB HD 3.0.0 MagicPlaces MainMenuButton.png

A button for Magic Places that would've appeared on the main menu.

AB HD 3.0.0 MagicPlaces FAQSprite1.pngAB HD 3.0.0 MagicPlaces FAQSprite2.pngAB HD 3.0.0 MagicPlaces FAQSprite3.png

Sprites used for an popup informing the player that Magic Places uses location data, as well as a link to FAQ page for Magic Places on Rovio's website.

Audio

ListenSound Summary
An ambience track that'd most likely play while viewing the world map.
Sounds used for Red, who serves as a indicator for where the player is on the map. Two of these sounds are also present in the In-game Trailer and in the files ofAngry Birds Arcade.
A notification sound. Weirdly, this is the only sound related to Magic Places that's located in thedata folder, while the rest are placed in the main directory for the game.
A couple sounds presumably used for pop-up messages, according to the filenames.
A sound that'd play when earning a reward.
Another pop-up sound, presumably used for some kind of tutorial message according to the filename.

Development Leftovers

Seasons Leftovers

Due toClassic andSeasons using the same engine base, there is a large portion of leftover code and native functions fromAngry Birds Seasons. Some notable leftovers include several effects used in the level backgrounds of the Haunted Hogs and Winter Wonderham episodes, as well as code for the firework blocks in Year of the Dragon and the portals seen in Abra-Ca-Bacon.

Bird Particle Trails

Leftover code for feather particle trails that the birds would emit while flying remains in multiple files, specificallyblocks.lua andparticles.lua. Version 1.6.3's gamelogic file contains some commented out code in the "trajectory" section infunction updateGame(dt, time) that would spawn these particles while the bird is flying.

-- if getObjectDefinition(flyingBird.name).particlesTrail ~= nil then    -- addParticles(flyingBird.name, getObjectDefinition(flyingBird.name).particlesTrail, 1)-- end

facebookBoomerangMode

An unused variable that makes the boomerang ability act like how it does in Angry Birds webgames such asChrome andthe Flash version ofFriends (hence the name). While undefined in Hal's code inblocks.lua by default, simply adding the variable to his code and setting it totrue will toggle this behavior.

animations.lua

Hmmm...
To do:
  • Find a way to import this into the game.

Present in versions 1.0 - 1.6.3 is a completely unused file called "animations.lua", which seems to contain an early intro cutscene. Judging by the code in the introAnimation table, it seems it would've involved the birds getting angry at a pig who sneezed on one of them.

introAnimation = {    {time = 0.33, sprites = { "BEGINNING_BG_1", "PIGLETTE_SLEEP_1"}},    {time = 0.33, sprites = { "BEGINNING_BG_1", "PIGLETTE_SLEEP_2"}},    {time = 0.33, sprites = { "BEGINNING_BG_1", "PIGLETTE_SLEEP_1"}},    {time = 0.33, sprites = { "BEGINNING_BG_1", "PIGLETTE_SLEEP_2"}},    {time = 0.33, sprites = { "BEGINNING_BG_1", "PIGLETTE_SLEEP_1"}},    {time = 0.33, sprites = { "BEGINNING_BG_1", "PIGLETTE_SLEEP_2"}},    {time = 0.33, sprites = { "BEGINNING_BG_1", "PIGLETTE_SLEEP_1", "BIRD_FLYING_1"}},    {time = 0.33, sprites = { "BEGINNING_BG_1", "PIGLETTE_SLEEP_2", "BIRD_FLYING_2"}},    {time = 0.33, sprites = { "BEGINNING_BG_1", "PIGLETTE_SLEEP_1", "BIRD_FLYING_3"}},    {time = 0.33, sprites = { "BEGINNING_BG_1", "PIGLETTE_SLEEP_2", "BIRD_FLYING_4"}},    {time = 0.33, sprites = { "BEGINNING_BG_1", "PIGLETTE_SLEEP_1", "BIRD_FLYING_5"}},    {time = 0.33, sprites = { "BEGINNING_BG_1", "PIGLETTE_SLEEP_2", "BIRD_FLYING_6"}},    {time = 0.33, sprites = { "BEGINNING_BG_1", "PIGLETTE_OK", "BIRD_NORMAL_1"}},    {time = 0.33, sprites = { "BEGINNING_BG_1", "PIGLETTE_SNEEZE_1", "BIRD_NORMAL_1"}},    {time = 0.33, sprites = { "BEGINNING_BG_1", "PIGLETTE_SNEEZE_2", "BIRD_FLIP_1"}},    {time = 0.33, sprites = { "BEGINNING_BG_1", "PIGLETTE_SNEEZE_2", "BIRD_FLIP_2"}},    {time = 0.33, sprites = { "BEGINNING_BG_1", "PIGLETTE_SNEEZED_1", "BIRD_FLIP_3"}},    {time = 0.33, sprites = { "BEGINNING_BG_1", "PIGLETTE_SNEEZED_1", "BIRD_FLIP_4"}},    {time = 0.33, sprites = { "BEGINNING_BG_1", "PIGLETTE_SNEEZED_1", "BIRD_FLIP_5"}},    {time = 0.33, sprites = { "BEGINNING_BG_1", "PIGLETTE_SNEEZED_1", "BIRD_GROUND"}},    {time = 0.33, sprites = { "BEGINNING_BG_1", "PIGLETTE_SNEEZED_1", "BIRD_GROUND", "SWEARING"}},    {time = 0.33, sprites = { "BEGINNING_BG_1", "PIGLETTE_SNEEZED_1", "BIRD_NORMAL_2"}},    {time = 0.33, sprites = { "BEGINNING_BG_2", "PIGLETTE_SNEEZED_2", "BIRD_NORMAL_3"}},    {time = 0.33, sprites = { "BEGINNING_BG_3", "BIRD_NORMAL_4", "CUTSCENE_YELLOW_BIRD_2"}},    {time = 0.33, sprites = { "BEGINNING_BG_4", "BIRD_NORMAL_5", "CUTSCENE_YELLOW_BIRD_1", "CUTSCENE_BLACK_BIRD_1", "CUTSCENE_RED_BIRD_1", "CUTSCENE_GREEN_BIRD_1"}},    {time = 0.33, sprites = { "BEGINNING_BG_4", "BIRD_GROUND_TALK", "CUTSCENE_YELLOW_BIRD_1", "CUTSCENE_BLACK_BIRD_1", "CUTSCENE_RED_BIRD_1", "CUTSCENE_GREEN_BIRD_1", "SWEARING"}},    {time = 0.33, sprites = { "BEGINNING_BG_4", "BIRD_NORMAL_5", "CUTSCENE_YELLOW_BIRD_1", "CUTSCENE_BLACK_BIRD_1", "CUTSCENE_RED_BIRD_1", "CUTSCENE_GREEN_BIRD_1"}, "SWEARING"},    {time = 0.33, sprites = { "BEGINNING_BG_4", "BIRD_GROUND_TALK", "CUTSCENE_YELLOW_BIRD_1", "CUTSCENE_BLACK_BIRD_1", "CUTSCENE_RED_BIRD_1", "CUTSCENE_GREEN_BIRD_1", "SWEARING"}},    {time = 0.33, sprites = { "BEGINNING_BG_4", "BIRD_NORMAL_5", "CUTSCENE_YELLOW_BIRD_1", "CUTSCENE_BLACK_BIRD_1", "CUTSCENE_RED_BIRD_1", "CUTSCENE_GREEN_BIRD_1", "SWEARING"}},    {time = 0.33, sprites = { "BEGINNING_BG_4", "BIRD_NORMAL_5", "CUTSCENE_YELLOW_BIRD_TALK", "CUTSCENE_BLACK_BIRD_1", "CUTSCENE_RED_BIRD_1", "CUTSCENE_GREEN_BIRD_1", "SWEARING"}},    {time = 0.33, sprites = { "BEGINNING_BG_4", "BIRD_NORMAL_5", "CUTSCENE_YELLOW_BIRD_1", "CUTSCENE_BLACK_BIRD_1", "CUTSCENE_RED_BIRD_TALK", "CUTSCENE_GREEN_BIRD_1", "SWEARING"}},    {time = 0.33, sprites = { "BEGINNING_BG_4", "BIRD_NORMAL_5", "CUTSCENE_YELLOW_BIRD_1", "CUTSCENE_BLACK_BIRD_TALK", "CUTSCENE_RED_BIRD_1", "CUTSCENE_GREEN_BIRD_1", "SWEARING"}},    {time = 0.33, sprites = { "BEGINNING_BG_4", "BIRD_NORMAL_5", "CUTSCENE_YELLOW_BIRD_1", "CUTSCENE_BLACK_BIRD_1", "CUTSCENE_RED_BIRD_1", "CUTSCENE_GREEN_BIRD_TALK", "SWEARING"}},    {time = 0.33, sprites = { "BEGINNING_BG_4", "BIRD_NORMAL_5", "CUTSCENE_YELLOW_BIRD_TALK", "CUTSCENE_BLACK_BIRD_1", "CUTSCENE_RED_BIRD_TALK", "CUTSCENE_GREEN_BIRD_1", "SWEARING"}},    {time = 0.33, sprites = { "BEGINNING_BG_4", "BIRD_NORMAL_5", "CUTSCENE_YELLOW_BIRD_1", "CUTSCENE_BLACK_BIRD_TALK", "CUTSCENE_RED_BIRD_1", "CUTSCENE_GREEN_BIRD_TALK", "SWEARING"}},    {time = 0.33, sprites = { "BEGINNING_BG_4", "BIRD_NORMAL_5", "CUTSCENE_YELLOW_BIRD_TALK", "CUTSCENE_BLACK_BIRD_1", "CUTSCENE_RED_BIRD_TALK", "CUTSCENE_GREEN_BIRD_1", "SWEARING"}},    {time = 0.33, sprites = { "BEGINNING_BG_4", "BIRD_NORMAL_5", "CUTSCENE_YELLOW_BIRD_1", "CUTSCENE_BLACK_BIRD_TALK", "CUTSCENE_RED_BIRD_1", "CUTSCENE_GREEN_BIRD_TALK", "SWEARING"}},    {time = 0.33, sprites = { "BEGINNING_BG_4", "BIRD_NORMAL_5", "CUTSCENE_YELLOW_BIRD_TALK", "CUTSCENE_BLACK_BIRD_1", "CUTSCENE_RED_BIRD_TALK", "CUTSCENE_GREEN_BIRD_1", "SWEARING"}},    {time = 0.33, sprites = { "BEGINNING_BG_4", "BIRD_NORMAL_5", "CUTSCENE_YELLOW_BIRD_1", "CUTSCENE_BLACK_BIRD_TALK", "CUTSCENE_RED_BIRD_1", "CUTSCENE_GREEN_BIRD_TALK", "SWEARING"}},    {time = 0.33, sprites = { "BEGINNING_BG_4", "BIRD_NORMAL_5", "CUTSCENE_YELLOW_BIRD_TALK", "CUTSCENE_BLACK_BIRD_1", "CUTSCENE_RED_BIRD_TALK", "CUTSCENE_GREEN_BIRD_1", "SWEARING"}},    {time = 0.33, sprites = { "BEGINNING_BG_4", "BIRD_NORMAL_5", "CUTSCENE_YELLOW_BIRD_1", "CUTSCENE_BLACK_BIRD_TALK", "CUTSCENE_RED_BIRD_1", "CUTSCENE_GREEN_BIRD_TALK", "SWEARING"}},}birdAnimations = {    blueBird = {        time = 0.5,        delayToNextAnimation = 4,        frames = {},    },}filename="animations.lua"

Strangely, while this script was eventually removed in version 2.0.0, it would someone manage to make its way into the files of later entries to the franchise, such asSeasons,Rio, andSpace.

Leftover "kingOfTheHill" and "train" Text

The init function for OverlayPage, a script used by the level editor when applying a joint to two selected blocks, contains some leftover text for "kingOfTheHill" and "train", which were two unused minigames that were found inAngry Birds Rio's code.

function OverlayPage:init()  self:insertItem("shade", RectItem:new({alpha = 0}))  self:insertItem("kingText", TextItem:new({    default = "Pigs popped: ",    text = "Pigs popped: ",    x = screenWidth / 2,    y = screenHeight / 2,    visible = false  }))  self:insertItem("trainText", TextItem:new({    default = "Carts wrecked: ",    text = "Carts Wrecked: ",    x = screenWidth / 2,    y = screenHeight / 2,    visible = false  }))  self:insertItem("again", TextItem:new({    text = "Try again",    x = screenWidth / 2,    y = screenHeight / 2 + 0.15625 * screenHeight,    visible = false,    action = {      [function(x)        sm:changeScene(x)      end] = "kingOfTheHill"    }  }))  self:insertItem("quit", TextItem:new({    text = "Quit",    x = screenWidth / 2,    y = screenHeight / 2 + 0.25 * screenHeight,    visible = false,    action = {      [function(x)        sm:changeScene(x)      end] = "mainMenu"    }  }))end

"prototyping" Scripts

Hmmm...
To do:
  • The following scripts still either need footage or proper documentation, if possible:
    • ChuckSpeed
    • Demolisher
    • KnockBox
    • Mud
    • Raycast
    • TNTBird
    • WheelOfFortune
    • Wind

Since version 4.1.0, a folder called "prototyping" has been present in thescripts/subsystems directory in the files. This folder contains multiple scripts for what appear to be different minigames and test mechanics, each with its own unique functionality.

BubblesAndBalloons

A short minigame where you control a deflating Bubbles in the air, while Pigs and blocks attached to balloons descend from the top of the screen. Due to being unfinished, the game crashes once Bubbles has fully deflated.

ChuckSpeed

A variant of Chuck's ability which would make him move in a straight line while leaving a long particle trail behind, instead of simply increasing his velocity.

Demolisher

A minigame set in the levels of the episode "Mine and Dine", where you place 5 TNT blocks in a level. After the player finishes placing the TNT blocks, they explode.

LevelTransition

A strange-looking transition between Mine and Dine levels which has the blocks flying offscreen and back. This script was most likely intended for testing purposes.

PigFeeder

Another minigame where you control a Minion Pig trying to collect food and avoid TNT blocks. The game crashes if the pig touches either one of the objects.

Raycast

An strange script which only contains a call to add an update function calledraycastUpdate. When this function is triggered, the cursor becomes an amber or ruby particle. It's unknown what this would've been intended for.

StellaRescue

Hmmm...
To do:
Add footage for this, if possible.

Yet another short minigame, this time centered around Stella. According to the code, this minigame would've had you trying to save birds that fly across the screen by trapping them in bubbles, while also trying to avoid pigs that fly across the screen as well. If you tap a pig, you'll lose a life (lives are represented by one of Shockwave Bomb's sprites, which is most likely a placeholder).

Wind

A duplicate of the PigFeeder script with the only notable difference being a call for a native function named_G.native.UniformBSplineManager.drawWind in the functionstartWind(). It's possible that this could've been intended as a harder difficulty to PigFeeder.


(Source:Original TCRF research)

Oddities

Blues and Matilda's Swapped Ability Sounds

For some reason, the ability sounds for The Blues and Matilda are swapped in-game. "special egg.wav" is used for The Blues' ability, while "special group.wav" is used for Matilda's ability.

Red's Blinking and Flying Sprites

Curiously, Red used the same sprite for his blinking and flying sprites, despite the other birds using two separate sprites for their blinking and flying state.

Debugging Utilities

Just like past Angry Birds games built with Lua, debugging functions are mentioned in some Lua scripts.

v · t · e
TheAngry Birds series
iOSAngry Birds (Prototypes) •Seasons •Rio •Friends •Island •Space (Prototypes) •Bad Piggies (Prototypes) •Star Wars (Prototypes) •Star Wars II •Go! •Epic (Prototype) •Stella •Transformers •POP! •Fight! •Angry Birds 2 •Reloaded •Rovio Classics: Angry Birds
AndroidAngry Birds •Epic •Seasons •Space •Rio •Star Wars •Star Wars II •Stella •Transformers •Fight! •Angry Birds 2 •Go! • Friends (Android,WebGL) •Football! •Bad Piggies •Rovio Classics: Angry Birds •POP! •Block Quest
WindowsAngry Birds •Seasons •Space •Rio •Star Wars •Star Wars II  •Angry Birds 2 •Bad Piggies •Friends
HTML5Chrome •Pistachios •Friends
Mac OS XAngry Birds •Seasons •Space •Star Wars •Reloaded
Adobe FlashBreakfast •Ultrabook Adventure •Friends •Vuela Tazos •Heikki •Lotus F1 Team •McDonald's •Social (Earlier Prototype)
Xbox 360, PlayStation 3Trilogy •Star Wars (Prototypes)
ArcadeArcade
tvOS, visionOSReloaded
Retrieved from "https://tcrf.net/index.php?title=Angry_Birds_(iOS)&oldid=1796920"
Categories:


Cleanup >Pages missing date references
Cleanup >Pages missing developer references
Cleanup >Pages missing publisher references
Cleanup >To do
Games >Games by content >Games with debugging functions
Games >Games by content >Games with unused abilities
Games >Games by content >Games with unused areas
Games >Games by content >Games with unused graphics
Games >Games by content >Games with unused music
Games >Games by content >Games with unused sounds
Games >Games by developer >Games developed by Sega >Games developed by Rovio
Games >Games by platform >IOS games
Games >Games by publisher >Games published by Electronic Arts >Games published by Chillingo
Games >Games by publisher >Games published by Electronic Arts >Games published by Chillingo >Games published by Clickgamer
Games >Games by release date >Games released in 2009
Games >Games by release date >Games released in December
Games >Games by release date >Games released in December >Games released on December 11
Games >Games by series >Angry Birds series