Being one of the first free-to-plays from Gameloft, Ice Age Village is a city-builder starring the cast of, what else, the Ice Age series.
"Isn't there anyone who cares about Sid the Sloth?"
|
|
To do:
|
Development Text#
GS Error (Connection failed)
AndroidOrientationChanged
Lobby Error (
)
Room Error (
User Error (User Already logged In)
User Error (
Default Error (
Placeholder name
Placeholder description
[PLACEHOLDER]We will now attempt to retrieve
available save files from cloud servers.
[NOT LOCALISED]%s has left you a surprise in your inventory!
[NOT LOCALISED]%s has left you a surprise in your village!
[NOT LOCALISED]Congratulations, you got %s
[NOT LOCALISED]Placing this gift will give your friend %s and you will get %s!
[NOT LOCALISED]There isn't enough space at the moment in this village to place this gift.
[NOT LOCALISED]You collected %s gift ! You got %s
A portion of development text entries are mostly present in the executable. However, most entries were removed across many builds of the game.
Playtest Player IDs#
1700329137__________
100001228334594_____
100001205931560_____
100001209620736_____
100001258344333_____
100001273943586_____
100001473189757_____
100001500039571_____
100001525839080_____
100001484379290_____
100001473039973_____
756073720___________
Error handler strings#
Only constant texts allowed in referenced locale string arguments
ERROR VisualTiledBackground:getVisualTileAtCameraCenter : Camera is somehow outside of the map!
No type declared in getClass!!!
Pointer NULL WTFBBQ!
Can't find quest:
Debug/Cheat Menu/Console strings#
Cheat Menu
Level Up
Skip Tutorial
Unlock Full Store
Game Speed %dX
In-Game Menu
Reset Game
Please restart the AUT for the change to take effect.
Time has changed by %c hours.
Invalid input recieved:
Reset Seshat profile
REGION Device:
REGION:
Fake invite:
MainSkipTut
MainLevelUp
DEBUG CONSOLE
MainUnlockFull
Game Speed x%d
Quest Cheat
Next Loading Screen Hint: %d
Quest Cheat x%d
Get Coins
and Acorns
+ 24 hours
Snow Pile x%d
Scrat x%d
+ 1 Hour
Debug
Enable Interstitials
Disable Interstitials
No
Home Tree
Home Tree:
%i / %i
Max Level
Home Tree
Skip
Level %i
JP: Animal
JP: Acorns
JP: Coins
Jackpot Off
Set 13th Birthday
Enter DLC ZIP Folder (Ex: 40507)
Enter Max DLC Pack To Download (Ex: 5)
FOLDER
PACK
ALL
unlockDlcQA
Bad or no command argument
You are at a higher level then %i
Setting level to
Total EXP for level:
Current Level:
Current Exp:
Increased Exp by:
Debug ON
AVG_FPS: %.1f
STATUS: %s
ENVIRONMENT: %s
%s
Scenery flag = %d 0,0 = %d both = %d
COLLISION_PLAYER,
COLLISION_ANIMAL,
COLLISION_OBJECT,
COLLISION_TEMPORAL,
Current VIP Level prizecount =
%d %s
No Mystery Box Prizes for current VIP Level
Prize Index exceeded the number of prizes for current VIP Level
Need to increase VIP level to access the mystery box
Getting Mystery Box Prize at Index
invalid args
Increased holiday tokens owned by
Error: No Active Holiday
Increased STC tokens owned by
Increased tokens owned by
Increased hearts owned by
Increased acorns owned by
Increased coins owned by
ToogleCorruptCloudSave Trigger to: ON
Usage: GLC <GLCcommand> [OptionalParams]
Available commands:
ToogleCorruptCloudSave - Toogle between On or Off for sumitting a corrupted Cloud Save
Quest command executed
Found quest:
quest
activated
LiveOps
Tournament Unit Test Started
Not Enough Args
Invlaid Args
Too many people to fill leaderboard with, max is 200
Filling Leaderboard for Event Id %d
Tournament Event with ID %d Not Found
Creating Tournaments for Event Id %d
Unit Test Started
COIN
MainLiveOpsHeartIceAnimals_Title
Setting live ops path to new file:
+
days
hours
minutes
Setting Main Score to
Setting Extra Event Score to
Holiday Unit Test Started
Holiday Unit 2 Test Started
Usage: CRM <CRMcommand> [OptionalParams]
Available commands:
Refresh - force a fully refresh cicly
Reset - invalidate all configs and then force refresh
Debug - show/hide debug window
info - refresh CRM debug info
Date - get expiration Date
InternetLost - simulates an internet disconnection
hestia Expiry Date:
offItems Expiry Date:
not implemented yet
Not a cheat version
This is probably a string to separate debug and retail versions and suggest debug features are removed in them.
Debug Console?#
|
|
To do: |
The executable of the game mentions a debug console.
General#
Command |
Description |
Switch |
|---|---|---|
ADDHOUR |
Adds hours to game time? |
|
ALMOSTLEVELUP |
Almost levels up your village one level? |
None |
TOLEVEL |
Sets your village level? Duplicate of TOLEVEL? Won't let you go over your current. |
|
DISCLAIMER |
Displays a disclaimer? |
None |
SPECIALDISCLAIMER |
? |
None |
HIDEUI |
Hides the GUI? |
None |
CHEATZOOM |
? |
None |
UNCHEATZOOM |
? |
None |
DISABLERANDOMLIMIT |
? |
None |
TEXT |
Displays text from a given Text ID. |
|
SETAGE |
Sets your age for COPPA? |
|
SETREGION |
Sets your region? |
|
RESETREGION |
Resets your region? |
None |
SHOWREGION |
Draws a display for the region of the player. |
None |
MONEY |
Probably allows currency to be added to the profile. money_type values to choose are coin, acorn, heart, token, stctoken, holiday and vipacorn |
<string - money_type> <int - amount> |
help |
Sounds like it prints the list of debug commands. |
None |
REGION |
? |
None |
QUEST |
Allows you to load a given quest. |
|
Live Ops#
These all start with LiveOps.
Switch /+ Command |
Description |
|---|---|
help |
? |
[int] days |
? |
[int] hours |
? |
[int] minutes |
? |
ResetTime |
? |
UnitTest |
? |
SetSource [string - filename.xml] |
? |
ClearSave |
? |
CreateTournaments [int - UniqueId] |
? |
TournamentUnitTest |
? |
FillLeaderboard [int - UniqueId] [int - Number of people] [int - Base Score] [int - Score Interval] |
? |
HolidayUnitTest |
Only valentine, easter, worldcup, back2school, halloween, xmas, flower can be chosen. |
AwardPrize [int - prizeType] |
? |
ResetScore [int - prizeType] |
? |
SetScore [int - amount] main |
? |
SetScore [int - amount] second |
? |
Developer Text#
<!--
***** Tag model. *****
Attribute id = "device_model".
You can get this attribute value by
checking the log tag "ALPHA_CORRECTION"
in the debugger.
Also you can check it on the Gameloft DDMS Device info tab.
The values are shown like:
ro.product.manufacturer=samsung
ro.product.model=GT-I9300
Put them together separated by '_' on the 'id' attribute.
<model id="samsung_GT-I9300">
</model>
***** Tag firmware (optional) ****
Some specific firmware versions may need alpha correction.
You can get the firmware version by checking the log tag
"ALPHA_CORRECTION" in the debugger.
Also you can check it on the Gameloft DDMS Device info tab.
The values are shown like:
ro.build.version.release=4.2.2
<firmware>2.3.6</firmware>
-->
<!-- [MANDATORY]
EventType -
event_increase_collection(only one available for update 11)
event_extra_resource(available for update 12)
event_stc_bonus(available for update 12)
event_holiday(available for update 13)
event_stc_extra_resource(available for update 13)
event_quest_rewards(available for update 14)
event_pile_bonus(available for update 14)
event_community(available for update 15)
UniqueID - Must be unique for EACH event
current UniqueID in use - 70. //Please change accordingly
StartDate -
EndDate -
Format "year-MM-dd HH:mm:ss"
Target -
(For event_increase_collection)
COINS,
XP,
REDUCEPRODUCTIONTIME
(For event_extra_resource)
HEART,
ACORN,
HOLIDAY
Modifier - How much more?
2 = 2%,
3 = 3%,
4 = 4%
HolidayType -
(For event_extra_resource)
For the diferrent Holidays
NONE
XMAS
VALENTINE
HALLOWEEN
IncludeClutters -
(For event_extra_resource)
Make the extra resource appear on map piles (snow piles and leaves piles)
1 - (NOTE: On)
0 - (NOTE: Off)
ActivatePercent -
(For event_extra_resource)
% to spawn the resource.
AmountToGift -
(For event_extra_resource)
Amount to Give of the extra resource.
ElementTemplateAffected - amount of element templates to apply the event
Example:
29 (NOTE: If a number is given please list the elements that apply.)
34 (NOTE: If a number is given please list the elements that apply.)
Categories that we support:
ALL
ICE
DINO
FUN
ANIMAL
If the target is XP only suport (NOTE: Fun building give no exp)
ICE
DINO
ANIMAL
-->
<!--
movieID list:
0 - Ice Age: Continental Drift Exclusive Movie Clip!
1 - Ice Age Trailer
2 - Ice Age Policy Trailer
3 - Alpenliebe
4 - McDonalds
5 - Life of Pi: Theatrical Trailer
6 - Ice Age Village – Behind the scenes trailer
7 - EPIC Battle for Moonhaven Trailer
8 - Ice Age Adventures - Launch Trailer
-->
Changes with Text#
String ID |
Base |
Final |
Note |
|---|---|---|---|
Ad_Minigame_WatchAd |
|
|
Changed to "ad video". Same for Ad_Minigame_Timer except with the time. |
MessageIAP_Popup_GetItNow |
|
|
From an IAP beg to a typical message. |
!MessageIAP_Popup_NeedAmount_Coins |
|
|
Way more descriptive on the shop location. |
!MessageIAP_Popup_NeedAmount_Acorns |
|
|
Way more descriptive on the shop location. |
MessageFindBabyVideo |
|
|
Changed to "advertising video". |
MessageWatch_Video |
|
|
Changed to "an ad". |
Ad_Video_GetFreeAcorns |
|
|
More descriptive on watching an advert. |
Ad_Quest_DoubleRewards |
|
|
More descriptive on watching an advert. |
Ad_ADVISOR_NO_MORE_VIDEOS |
|
|
Another change to "ad videos". |
Ad_Minigame_FreeAcorn |
|
|
For whatever reason, some words were uncapitalized. |
Ad_Free_Acorns_IAP |
|
|
More descriptive on watching an advert. |
Development Leftovers#
A few leftovers are present.
Compilation Logs#
hdata:
Start of log
----
Table of Contents
----
----Calculate Size of TOC--------
--- Num of Packs: 1
--- Size = NB of packs * (Version(4 bytes) +
Type(4 bytes) +
Major(4 bytes) +
Minor(4 bytes) +
Build(4 bytes) +
Model(4 bytes) +
Availability (4 bytes) +
Description (64 bytes) +
StartAddress(8 bytes) +
EndAddress(8 bytes))
Size (4 Bytes) (size of TOC): 112
----
--- Start of TOC
----
----
TOC Listing for pack D:\IAVillage\trunk_clean\data\001
TOC Listing for pack 001
TOC Listing for pack 1
BYTES 4 - 7 :Pack 1 Version = 1
BYTES 8 - 11 :Pack 1 Type = 3
BYTES 12 - 15 :Pack 1 Major = 9
BYTES 16 - 19 :Pack 1 Minor = 9
BYTES 20 - 23 :Pack 1 Build = 9
BYTES 24 - 27 :Pack 1 Model = 2
BYTES 28 - 31 :Pack 1 Availability = 0
BYTES 32 - 95 :Pack 1 Description = InitialGameContent
--- Type 3: CORE Resource Packs
BYTEs 96 - 103: Start address of Pack: 112
--- Num CORE Packs: 4 (4 bytes)
--- 3
--- Adding info for CORE Resource Pack 3
--- 4
--- Adding info for CORE Resource Pack 4
--- 5
--- Adding info for CORE Resource Pack 5
--- 6
--- Adding info for CORE Resource Pack 6
--- 3
--- Adding data for resource pack 3
--- 4
--- Adding data for resource pack 4
--- 5
--- Adding data for resource pack 5
--- 6
--- Adding data for resource pack 6
BYTES 104 - 111: End addressssss of Pack: 7456999
----
DONE READING FILES--------------
----
APPENDING FILES--------------
ldata:
Start of log
----
Table of Contents
----
----Calculate Size of TOC--------
--- Num of Packs: 1
--- Size = NB of packs * (Version(4 bytes) +
Type(4 bytes) +
Major(4 bytes) +
Minor(4 bytes) +
Build(4 bytes) +
Model(4 bytes) +
Availability (4 bytes) +
Description (64 bytes) +
StartAddress(8 bytes) +
EndAddress(8 bytes))
Size (4 Bytes) (size of TOC): 112
----
--- Start of TOC
----
----
TOC Listing for pack D:\IAVillage\trunk_clean\data\001
TOC Listing for pack 001
TOC Listing for pack 1
BYTES 4 - 7 :Pack 1 Version = 1
BYTES 8 - 11 :Pack 1 Type = 3
BYTES 12 - 15 :Pack 1 Major = 9
BYTES 16 - 19 :Pack 1 Minor = 9
BYTES 20 - 23 :Pack 1 Build = 9
BYTES 24 - 27 :Pack 1 Model = 2
BYTES 28 - 31 :Pack 1 Availability = 0
BYTES 32 - 95 :Pack 1 Description = InitialGameContent
--- Type 3: CORE Resource Packs
BYTEs 96 - 103: Start address of Pack: 112
--- Num CORE Packs: 4 (4 bytes)
--- 3
--- Adding info for CORE Resource Pack 3
--- 4
--- Adding info for CORE Resource Pack 4
--- 5
--- Adding info for CORE Resource Pack 5
--- 6
--- Adding info for CORE Resource Pack 6
--- 3
--- Adding data for resource pack 3
--- 4
--- Adding data for resource pack 4
--- 5
--- Adding data for resource pack 5
--- 6
--- Adding data for resource pack 6
BYTES 104 - 111: End addressssss of Pack: 4195204
----
DONE READING FILES--------------
----
APPENDING FILES--------------
IADLC.zip.log is present in the Windows Phone version.
XCode Entitlement#
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>keychain-access-groups</key>
<array>
<string>A4QBZ46HAP.com.gameloft.SingleSignonGames</string>
</array>
</dict>
</plist>
Media Player Note#
Contents:
MP_wrapper.mm, MP_wrapper.h - Objective-C wrapper for MediaPlayer framework.
MP_externdecl.h - extern "C" statements, to be included wherever you need them. Only for C++.
cMediaPlayer.cpp, cMediaPlayer.h - C++ wrapper for functions in MP_wrapper. Tested only on iPhone.
cMediaPlayer_defines.h - defines used in both wrappers
----
Things to do to compile the files:
- add them to your project
- you might want to #undef WIN32 in Objective-C files.
- in MP_wrapper.mm, class cMP_Picker, method Display: the statement [[GLoftApp sharedInstance] GetWindow] must return a UIWindow. You must modify it to match the variable names in your project.
----
How to use cMediaPlayer to play all songs in iPod:
cMediaPlayer::Initialize();
cMediaPlayer mp = NEW cMediaPlayer(MP_TYPE_APP, MP_QY_SONGS);
mp->Prepare();
mp->Play();
....
mp->Stop();
delete mp;
cMediaPlayer::Shutdown();
----
How to add filters:
cMediaPlayer::Initialize();
cMediaPlayer mp = NEW cMediaPlayer(MP_TYPE_APP, MP_QY_SONGS);
HFilter f1 = mp->AddFilter(MP_FILTER_ARTIST, "Metallica", MP_FILTERCOMP_EQUALS);
HFilter f2 = mp->AddFilter(MP_FILTER_TITLE, "sO WHat", MP_FILTERCOMP_CONTAINS);
mp->Prepare();
mp->Play();
....
mp->Stop();
mp->RemoveFilter(f1);
mp->RemoveFilter(f2);
mp->Play();
....
mp->Stop();
delete mp;
cMediaPlayer::Shutdown();
You can add as many filters as you want (theoretically).
You are responsible for managing filters.
----
How to select an existing playlist:
cMediaPlayer::Initialize();
cMediaPlayer mp = NEW cMediaPlayer(MP_TYPE_APP, MP_QY_PLAYLISTS);
int nb = mp->GetNumberOfGroups();
char name[MAX_NAME_LENGTH];
for(int i = 0; i < nb; i++)
mp->GetGroupName(i, name); //will copy in name the playlist name
....
mp->Prepare(i); // 0 <= i < nb;
...
mp->Play();
....
mp->Stop();
delete mp;
cMediaPlayer::Shutdown();
mp = NEW cMediaPlayer(MP_TYPE_APP, MP_QY_PLAYLISTS); //creates a player which sorts items by playlist
If you create a player which sorts items by song title (MP_QY_SONGS), GetGroupName() will get the song name.
Use SetCustomPlaylist(int *indices, int len) to set a playlist containing the songs at indices.
----
How to display a media picker to let the user create a playlist:
cMediaPlayer mp = NEW cMediaPlayer(MP_TYPE_APP, MP_QY_SONGS);
mp->ShowPlaylistDialog();
if(media->IsPlaylistSelected()) //assuming you call this in your main loop
{
mp->SetSelectedPlaylist();
}
....
mp->Play();
...
----
Other things you might want to change:
- #define MAX_NAME_LENGTH 256
- #define MAX_MP_OBJECTS 32
- the type on music player (MP_TYPE_xxx) or query (MP_QY_xxx)
cMediaPlayer.readme for an internal media player is present in v1.0.0 on iOS due to it didn't use external assets and Gameloft forgot to fully clean them.
Internal Project Name#
The internal project name of the game is Ice Age, despite Gameloft already releasing an Ice Age title before, which is Ice Age: Scrat-Ventures. Guess they forgot about it. Go figure.
|
The Ice Age series | |
|---|---|
|
Game Boy Advance |
|
|
PlayStation 2 |
|
|
Xbox, GameCube |
|
|
Wii |
Ice Age 2: The Meltdown • Dawn of the Dinosaurs • Ice Age: Continental Drift - Arctic Games |
|
Android, iOS, Windows Phone |
|
|
Blackberry Tablet OS |
|
|
Windows |
Ice Age 2: The Meltdown • Dawn of the Dinosaurs • Continental Drift - Arctic Games • Adventures |
|
Nintendo DS |
|
|
Xbox 360, PlayStation 3 |
Dawn of the Dinosaurs (Prototypes) • Continental Drift - Arctic Games |
|
Nintendo 3DS |
|
|
J2ME |
|