Angry Birds (iOS)
Angry Birds |
---|
Developer: Rovio This game has unused areas. This game has a prototype article This game has a prerelease article |
To do:
|
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.
A remake 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
Prototype Info |
Prerelease Info |
Unused Audio The unsung squawks and squeals of bird & pig warfare. |
Unused Graphics Birds, blocks and backgrounds, oh my! |
Unused Levels Seems like even the pigs had to let some structures stay on the drawing board. |
Revisional Differences Let's hope you like graphical changes. |
Title theme changes
In version 3.3.0, the game's main theme was replaced with Angry Birds Trilogy's main theme to celebrate the release of the episode "Red's Mighty Feathers". Version 4.0.0 would later revert the main theme back to the original track.
Versions 3.3.0 (Angry Birds Trilogy theme) |
All other versions (Angry Birds theme) |
---|---|
Old Level and Game Complete
The sound used for when the player completes a level in the previous versions of Angry Birds. It was replaced with the ranking system from Angry 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 from Angry 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.
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 HD | 1.4.1 | Final |
---|---|---|
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 HD | 1.4.1 | Final |
---|---|---|
UI
Early buttons for the Mighty Eagle.
A badge of some kind, presumably intended for the Level Complete screen after using the Eagle.
Audio
Listen | Sound 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. | |
Magic Places
To do:
|
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 a certain 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 an actual 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
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.
A button for Magic Places that would've appeared on the main menu.
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
Listen | Sound 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 of Angry Birds Arcade. | |
A notification sound. Weirdly, this is the only sound related to Magic Places that's located in the data 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
animations.lua
To do:
|
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 as Seasons, Rio, and Space.
Leftover "kingOfTheHill" and "train" Text
The init function for OverlayPage in 1.6.3's gamelogic contains some leftover text for "kingOfTheHill" and "train", which were two unused minigames that were found in Angry Birds Rio's code.
function OverlayPage:init() self:insertItem("shade", RectItem:new({alpha = 0.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) + (50 / 320) * screenHeight, visible = false, action = {[function(x) sm:changeScene(x) end] = "kingOfTheHill"}})) self:insertItem("quit", TextItem:new({text = "Quit", x = screenWidth / 2, y = (screenHeight / 2) + (80 / 320) * screenHeight, visible = false, action = {[function(x) sm:changeScene(x) end] = "mainMenu"}})) end
"prototyping" Scripts
To do:
|
Since version 4.1.0, a folder called "prototyping" has been present in the scripts/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 called raycastUpdate. When this function is triggered, the cursor becomes an amber or ruby particle. It's unknown what this would've been intended for.
StellaRescue
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 function startWind(). It's possible that this could've been intended as a harder difficulty to PigFeeder.
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.
The Angry Birds series
| |
---|---|
iOS | Angry 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 |
Android | Angry 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 |
Windows | Angry Birds • Seasons • Space • Rio • Star Wars • Bad Piggies • Friends |
HTML5 | Chrome • Pistachios • Friends |
Mac OS X | Angry Birds • Seasons • Space • Star Wars • Reloaded |
Adobe Flash | Breakfast • Ultrabook Adventure • Friends • Vuela Tazos • Heikki • Lotus F1 Team • McDonald's • Social (Earlier Prototype) |
Xbox 360, PlayStation 3 | Trilogy • Star Wars (Prototypes) |
Arcade | Arcade |
tvOS, visionOS | Reloaded |
- Pages missing developer references
- Games developed by Rovio
- Pages missing publisher references
- Games published by Clickgamer
- Games published by Chillingo
- IOS games
- Pages missing date references
- Games released in 2009
- Games released in December
- Games released on December 11
- Games with unused areas
- Games with unused graphics
- Games with unused abilities
- Games with unused music
- Games with unused sounds
- Games with debugging functions
- To do
- Angry Birds series
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