If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!
This article has a talk page!

Angry Birds (Android)

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

Angry Birds

Developer: Rovio
Publishers: Rovio, Talkweb Games (China)
Platform: Android
Released internationally: October 15, 2010


GraphicsIcon.png This game has unused graphics.
MusicIcon.png This game has unused music.
TextIcon.png This game has unused text.
DebugIcon.png This game has debugging material.


So very stubbly.
This page is rather stubbly and could use some expansion.
Are you a bad enough dude to rescue this article?
Hmmm...
To do:
  • Old versions of the game may have internal developer tools, search others.
  • Install Chinese version of the game and spot regional differences.
  • Add stuff listed here

Angry Birds is an award-winning strategy game for multiple platforms, but mostly known on iOS. This article pertains to the Android version, which makes more sense to use on a tablet/phone. The game was "removed" from all app stores and superseded into a Unity engine remake like Friends.

Debugging Functions

In the game's asset directories, there are Lua files for debugging the game, some debugging code is also present in pre-existing Lua scripts not titled as debugging features, these are shown by the game's build settings.

Build Settings

Hmmm...
To do:
Show the effects of these in-game.
  • releaseBuild: Retail, clean build, turning off makes the game act like debugging build, enabling debugging functions and some screens have debugging information like the credits, true is defaulted, disabling this setting allows the use of using all developer cheats on beta builds.
  • showEditor: Shows the level and particle editors at the main menu, false is defaulted.
  • cheatsEnabled: Allows use of built-in developer cheats, false is defaulted.
  • useDynamicAssets: Makes the game use assets from the dynamic script directory, true is defaulted.
  • isPremium: Makes the game acts like a "premium" version, ads are disabled, false is defaulted.
  • isKorea: Makes the game act like a Korean build, false is defaulted for non-Korean builds.
  • applyChinaRestictions: Makes the game act as a Chinese build, a timer is shown for game time left, false is defaulted for non-Chinese builds.
  • gameVersionNumber: Game version number shown in credits, changes after every update.
  • customerString: OEM based on how the game was acquired, commonly "googleplay".
  • svnRevisionNumber: Server revision number in last credits line, the number starting with RXXXXX.
  • isSeasonsAvailable: Makes the game advertise Angry Birds Seasons in menus? True is defaulted.
  • g_registrationEnabled: Toggles the game activation DRM setting, false is defaulted.
  • g_updateCheckEnabled: Toggles the game's autoupdater executable updater.exe setting, defaulted to false.
  • g_hasWebBrowser: Makes the game think you have a web browser to view ads (?), defaulted to true.
  • bingIsEnabled: Enables Bing search in the game over screen (used in old versions).
  • enableAssertions: Enables assertions?
  • disableShopButton: Hides the shop from the game, "false" is defaulted, try changing to "true"?
  • hasIaps: Allows IAPs to be made (?) off is defaulted.
  • g_is_free_version: Makes the game act like a free version, false is defaulted?
  • useScaling: Toggles scaling settings, defaulted to true.
  • timeMachineServer: What server is used (for time)? dev is defaulted.
  • gameId: Short identifier for the game when clicking ads that log it, defaulted to abc.
  • g_separate_powerup_highscore: Allows powerup based high scores separately to be kept along with plain gameplay scores in a highscores.lua, false is defaulted.
  • applyLocalisation: Applies a predetermined localisation.
  • isHDVersion: Makes the game act like an iOS HD build, maybe shows HD sprites and textures if on? False is defaulted.
  • g_use_mighty_league: Makes the game show Mighty League on the main menu, true is defaulted.
  • g_use_ingame_ads: Makes the game use in-game ads, defaulted to true.

Old Versions

  • g_challengesEnabled: Enables an unused challenges mode, currently hasn't been fully enabled yet.
  • g_hatcheryEnabled: An unused mode which can't be enabled because of missing files, by analyzing the code for it, you could see it's related to stars being a currency.

Mighty League Levels in Level Select

If the build is not a release build and has developer cheats on, an episode called MightyLeague Test Levels will appear in the level select, the framerate is really choppy while here.

Angry Birds Mighty League Test Levels Episode.png

Debugging info in Credits

If the game is not a release build, the player account ID, game environment and customerString is shown in the credits.

Developer Cheats

If developer cheats are on, these can be used and are shown during gameplay (there are also key-based commands as well like computer versions but mobile devices lack that...):

Main Menu

QA button

Freezes the game if the settings.lua file is incorrectly created, like data made from a beta build but not release, otherwise shows a menu with a few options,

  • Display Force Update Popup: Displays the force update popup (big on small devices, use back or wait to escape).
  • Reset All Settings: Resets all status ASIDES from currency + power up amounts and Mighty League customizations + account ID.
  • Open All Levels: Unlocks all levels with no stars for a save.
  • Add 100 Gems: Adds 100 Gems to a save.

Debugging information like the device ID, AD watcher ID and Install Date are also shown.

Mighty League

QA button

Shows a menu with many developer cheats to trigger, including: Reset Tutorial (Resets tutorial progress), Skip Tutorial (Skips Tutorial), Fake Day End (Make the game act like the day ended for a tournament), I Cheat :) (Adds a lot of Shockwaves to your save), Add Stars (Adds 100 stars to your current balance.), Edit Avatar (Allows you to edit your player avatar, always fails to save if still in tutorial), Select Emblem (Select player emblem icons/customizations), Switch Server (Switch between: the Development and QA servers, you cannot go back to the Production server by using this.) Free Stuff! (Gives you 25x Power Potions, Birdquakes and Shockwaves) Clear Friend Cache (Clears friend cache), Post Score (Post your current scores for levels 1-6 in a tournament.), Migrate (Upgrade league or downgrade, cannot be done on the Production server.) and 100 Eggs! (???), a display for the tutorial step and the server type is also present on the lower right corner after access.

  • Debug log for connection error: Errors are in much more detail.

Daily Rewards

  • Mock video watching: Watch ADS offline and take the reward while making the game treat the player like it did watch the advertisement.

Sling Scope Timer

  • Mock video watching: Watch ADS offline and take the reward while making the game treat the player like it did watch the advertisement.

In-Game

  • Mock video watching: Watch ADS offline and take the reward while making the game treat the player like it did watch the advertisement.
  • Instant win: Touching near the bottom left corner will make the game act like the level was completed and rigs approximately the amount for a 3-star score.

Anywhere

  • Call debug console: If the game is responding, it's possible to call the debug console. Touching near the bottom right corner two times will call it, the log scrolling bug crashing the game is also fixed unlike the PC version, but = symbols aren't visible when typed but entered. Using @ in your entry will close the debug console after it is entered.
  • Save file corruption alert: If a save file is corrupted on bootup, a popup by the name of QA Popup will show saying The file XXX.lua was corrupted.

Aside from manual usage, the Mighty Eagle randomly unlocks for the settings section of the save for a session if the save file is created via a beta build, due to corruption after reboot, the save gets recreated without it but retail settings sections support full save writing without corruption.

Level Editor

If the game value to show the Level Editor, is true, an "Editor" button will appear on the main menu, giving a menu with many options, the MuseumMode button freezes the game when tapped. Beating or attempting to exit a level will also freeze the game due to write access is not enabled by platform nature, also due to lack of touch screen support aside from testing levels (2-finger click) moving the camera (finger drag) and exiting the level (4-finger click), it's only useful for previewing levels, the camera is much more free, it's also very slow to load on low-end devices and only present in 7.1.0+ public releases...

Missing Level Parts

Every level file has a section called "counts" which contains the amount of each object present in the level. This value is likely unused, and it also contains information about parts that have been removed from that level.

Poached Eggs 1-1

Object Early Amount Final Amount
Red 4 3
Small Pig 7 1
Medium Pig 2 0
Large Pig 1 0
1x2 Glass Block 4 0
1x4 Glass Block 5 2
2x4 Glass Block 1 0
1x8 Glass Block 2 0
1x1 Wood Block 2 0
1x2 Wood Block 8 4
1x4 Wood Block 5 3
1x8 Wood Block 5 4
2x4 Wood Block 1 0
2x2 Wood Block 1 0
2x4 Stone Block 5 0
4x4 Stone Ball 1 0
2x2 Stone Ball 5 0
Treasure Chest 1 0
Dice 3 0
Yellow Pole 1 0
Red Pole 1 0
Wood Support 2 3 2
Wood Support 3 1 0

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 lays there 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 was still in the current version files. Interestingly, some parts of the track were used in a commercial for the Angry Birds Action board game.

Unused Episodes

Trick Or Treat

In version 1.3.5 there was text for an unused 5th episode called "Trick Or Treat". It's likely this turned into the episode under the same name in Angry Birds Seasons, and was meant to appear in the original Angry Birds. There also exists a level select graphic for this episode. The text and the image were later removed in the next update (1.4.0), though the text made a return in version 1.4.3, likely as a placeholder for Ham 'Em High's text in 1.5.0.

5. Trick Or Treat

Angry Birds Trick or Treat Level Select Image.png

Year of the Goat

Angry Birds Year of the Goat Episode Text.png

Angry Birds Year of the Goat Episode Icon.png

An icon for an unused Year of the Goat episode. This episode is used in the chinese version of the game.

Angry Birds Year of the Goat Theme.png

Angry Birds Year of the Goat Theme Foreground.png

There also exist theme sprites for this episode.

Developer Scripts

Pepperfish Lua Profiler

Hmmm...
To do:
Which specifically?

In one of the recent updates, a file called pepperfish.lua is present in the data/scripts/tools directory. There's also a README.txt, dating from likely March 17, 2011. Oddly ever since updates happen these files are still present and unchanged.

Original source http://lua-users.org/wiki/PepperfishProfiler (last update: 17 March 2011).

Modified to dump data in excel-compatible format (tabs instead of spaces).
Modified to log percentage of root call.

Integration:
1.	load the profiler code (1st line in gamelogic.lua)
	loadLuaFile(commonScriptPath .. "/../tools/pepperfish.lua", "")
2.	add the lua debug library (uncomment luaopen_debug around LuaState.cpp:41)
3.	start/stop the profiler using a key (update() function around gamelogic.lua:2279)
	if(keyHold["CONTROL"] and keyPressed["G"]) then
		if not g_profiler then
			g_profiler = newProfiler()
			g_profiler:start()
		else
			g_profiler:stop()
			local outfile = _G.io.open( "pepperfish.txt", "w+" )
			g_profiler:report( outfile )
			outfile:close()
			g_profiler = nil
		end
	end

Press Ctrl-G once to start the profiling session. Press Ctrl-G a second time to dump results to a pepperfish.txt.
The dump file will be in current working directory (game). It will be overwritten by subsequent dumps.
Hmmm...
To do:
Is it uncommented in any versions?

Unfortunately, a debug library in the one of the game's source code files has to be uncommented on line 41.

Encrypter Scripts

Versions 4.2.0-4.2.1 in both Free and HD releases have batch files in the data directory, unfortunately the tool isn't present...

Hmmm...
To do:
What is encrypter.exe?

enc.bat

..\..\..\external\Fusion\tools\bin\encrypter.exe "USCaPQpA4TSNVxMI1v9SK9UC0yZuAnb2" %1 %2

Appears to encrypt a dropped Lua file.

dec.bat

..\..\..\external\Fusion\tools\bin\encrypter.exe -d "USCaPQpA4TSNVxMI1v9SK9UC0yZuAnb2" %1 %2

Almost the same as enc.bat but decrypts a dropped Lua file.

Regional Differences

The Chinese Talkweb version added a few exclusive episodes. Oddly enough, the player needs to 3-star a level in order to proceed. To accomodate this, a double score power-up was added to make 3-staring easier. Every time a 3-star was achieved, the player can choose a card to get power-ups.

It's possible that the Chinese version was based on an older revision of the game, because the level select resembles one found in earlier revision, and both Piggy Farm and the Tutorial Episode are absent from this version.