Icy Tower

Icy Tower is a popular freeware computer game that is a combination of an action game and a platform game. The goal of the game character is to climb a frozen tower by jumping onto successive steps of a staircase inside it. The goal of the player is to reach a high number of steps (floors) and points (awarded for making visually attractive sequences of jumps). As the character climbs the tower, the game becomes progressively more difficult. The player controls the character using a keyboard or other input devices.

When playing, Icy Tower players usually try to achieve good results in one of several existing styles of playing, known as categories. Players' achievements in any of the categories may later be published in any of the online communities established for that purpose. One of the methods that allow players to compare their results are online high score lists. Another are online tournaments in which they compete directly.

Icy Tower was created in 2001 by a Swedish game developer Free Lunch Design. New features are being added to the game both by its developers, who regularly release its newer versions, and by its players, who refine its gameplay by making custom skins and characters that refurbish the game and create separate applications and modifications that allow changing its default behaviour. Mobile and online versions of the program have also been made.

Gameplay


The game screen is fully occupied by a vertical cross section of a cylindrical tower, only a fraction of total height of which is visible at a time. The player starts the game on the ground floor of the tower. The character controlled by the player may move inside the tower and jump from one floor to another, but its movement is limited by the two walls of the tower and the semipermeable structure of the floors, which it can only penetrate from below. If the character ventures beyond the upper edge of the screen, the screen will follow its current position, so that it always remains within its scope.

After the character reaches the 5th floor the game screen begins to gradually move down. Since that moment the player's objective is to maintain the required pace of the character's ascent in the tower and not to fall below the bottom edge of the screen, which ends the game. The rate of the downward movement of the screen increases sharply every 30 seconds, which is equivalent to a rotation of the clock in the upper left corner of the screen. The clock breaks down after its fifth revolution, however, and the rate of the falling increases no further.

The goal of the player is to reach the highest possible floor and accumulate the highest possible number of points (score). Points are awarded for every single reached floor and for making special sequences of jumps. The physics of the game can be expressed in two principal rules:


 * 1) The higher the speed of the character is before it jumps, the higher the jump will be;
 * 2) The speed of the character (and, consequently, the direction of its movement) can be changed during the jump itself.

It is also possible for the player to increase the speed of the character by hitting a wall of the tower (wall bouncing). To wall bounce a character it is required to direct it towards a wall and reverse the direction of the movement immediately after the collision. This technique makes it possible for the player to continue playing even if there is no space (or time) to accelerate the character on the floors themselves. The tower is of infinite height and it is impossible to reach the top. After the game ends, a recording of the character's progress in the tower can be saved in a separate file (replay) and viewed at will.

Floors
The length of the floors depends on their individual number, the version of the game, and a random factor. Their arrangement is entirely random. Their appearance changes visibly every 100 floors. Since the version 1.2 Icy Tower allows the player to choose the visual type of the floors on which each of his games. In order to do that, however, he is required to unlock the desired floor type beforehand, which is done by reaching a floor that bears that floor type by default. For example, if the player wishes to start the game from the fourth floor type, that by default belongs to the floors 300–399, he must reach at least the 300th floor first.

Floor lengths (in the so-called segments )

Points
It is possible for the player to perform a sequence of jumps in the game, each jump spanning either zero, two or more floors. As long as the player reaches each floor within three seconds since reaching the previous one, such a sequence is called a combination (combo). A combo is the primary method of earning points in Icy Tower. For a combo to be rewarded with points, however, it must span at least four floors in at least two jumps, and subsequently one of the following conditions must be met:


 * 1) the character makes a jump that is one floor high;
 * 2) the character descends onto one of the floors below;
 * 3) the character does not reach another floor within the next three seconds (and it has not yet fallen below the bottom edge of the screen).

Every completed combo is awarded a number of extra points, which is equal to the number of floors in the combo squared. A special notice (reward) displays on the screen after a combo is finished, contents of which depend on its length and the version of the game. Regardless of combos, the player is awarded a ten points bonus for every floor he has reached (which is revoked, however, if the player later descends from the given floor).

High scores
Icy Tower records players' best results in built-in high score tables. Every table contains data about zero to five Icy Tower games; a single table row represents a single game. Every game contained in a table is being defined by its results in a certain number of Icy Tower categories. Finally, all games in a table are sorted according to their results in a certain category, which is relevant and specific to the given table. Whether a given Icy Tower category partially defines a given game or not, as well as whether a given category has a separate table it is relevant to, depends on the type of the category and the version of the program.

Players may also publish their accomplishments in online high score lists. Entries in such lists can usually be sorted by their results in the three aforementioned main Icy Tower categories – Score, Floor and Combo (the primary categories), as well as in a number of categories that are semiofficial or unofficial (the secondary categories). High score lists usually require players to provide replays from their games as evidence for their results. The official Icy Tower list resides on the web server of Free Lunch Design.

It is also possible to compare performance of two players using the so-called K+ method. The K+ formula is a product of a sum of quotients, where the operands of the divisions represent records of both players in a specific Icy Tower category. For example, the K+ value from Score, Floor and Combo is represented by the expression


 * $$\frac{100{\left[ \sqrt{\frac{Score_a}{Score_b}} + 2{\left( \frac{Floor_a}{Floor_b} \right)} + \frac{Combo_a}{Combo_b}\right]}}{4}$$,

where $$Score$$, $$Floor$$ and $$Combo$$ stand for the highest score, highest floor, and longest combo, respectively ($$a$$ and $$b$$ standing for the players being compared). In the above formula the ratio of Floor high scores has been doubled (to minimise the initial predominance of the Score-related categories over the Floor-related ones in it) and the ratio of Score high scores has been reduced to its square root (to express the fact that the amount of score earned in an Icy Tower game is usually close to its highest Combo value squared). The K+ mechanism is often being implemented in online high score lists so that every participant to the list could compare his results to the best results of the ranking.

Since the version 1.4 Icy Tower also evaluates the ability of a player by assigning him to one of the eleven levels of proficiency in the game, the so-called ranks. The ranks are based on the grade system used in the United States schooling. Therefore the rank equivalent to a beginner's degree of ability is represented by the letter "F", while a somewhat larger amount of it – by the letter "A". The fact of assigning the player to a certain rank depends on his records in four game categories: Floor, Combo, CC 1 and NML.

Objectives
The following tables enumerate all potential objectives available for the player in Icy Tower. Listed are available floor types, along with Icy Tower versions they were introduced in, combo rewards, along with their respective combo length requirements in all versions of the game, and attainable player ranks (only relevant in Icy Tower 1.4).

Playing objectives in Icy Tower

Categories
Ever since the possibility of creating replays from games and submitting them to high score lists was introduced players have been inventing various styles of playing that diversify the gameplay of Icy Tower. Among the most popular styles are:


 * NML (N00b Masters League ) : To reach a high floor completing no combos on the way (it is allowed, though, to begin a combo and finish the game without ending it). This style also has a more limiting variant named UNML (Ultimate N00b Masters League), which requires making 1 floor high jumps only during the entire game.
 * RRML (Radical Rejump Masters League) : To reach a high floor with a game setting that allows the character to perform uninterrupted series of jumps (the so-called rejump) enabled without ever releasing the keyboard key responsible for jumping – it may be pressed only once during the entire game.
 * JC 2 (Jump Combo 2) : To complete a high combo making 2 floor high jumps only during the entire combo sequence. Icy Tower 1.4 also stores players' records in a related yet simpler category named JS 2 (Jump Sequence 2), where the goal is to make a high number of consecutive 2 floor high jumps. Styles named JC 3 and JS 3 require making 3 floor high jumps, respectively, etc. As the character can take 5 floors in one jump at most, only four JC (JS) categories exist.
 * CC 1 (Clock Challenge 1 ) : To reach a high floor during the first revolution of the timing clock. CC 2 represents the highest floor reached before the third revolution of the clock, etc. There also exists a composite style named TF (The Fastest), objective of which is to accumulate the highest possible sum of CC 1, CC 2, CC 3, CC 4 and CC 5.

It is possible to combine styles – for example, there is a category named "RRUNML", which is a combination of RRML and UNML.

Other features
Most versions of Icy Tower feature special hidden modes of gameplay that allow players to alter the default appearance and behaviour of the game. When a hidden mode is enabled, it is impossible for the player to save replays. Additionally a number of trainers has been made that let players change the nominal number of reached points and floors (such a change is irrelevant to the game, however, as it does not help a player in competing against others).

Hidden Icy Tower gameplay modes

The frame rate of Icy Tower can be mechanically decreased, for example by running the game in the windowed mode instead of the fullscreen mode or by using a separate application. Players who employ such strategies benefit from a larger amount of time to figure out and perform the most efficient movements and jumps of the character they are controlling, relatively to other players. In January 2006 several known players revealed they were using this tactic, the so-called slowdown, to increase their results. This announcement caused a decline in popularity of the official high score list, which at the time contained results of players who both "slowed down" the game and played it at the default speed. In May 2007, the moment the official Icy Tower website was opened, the high score list has been reset. The new version of the list, however, still lacks a feature that prevents "slowed down" replays from being uploaded to it.

Icy Tower 1.4 is able to measure the difference between the default frame rate of the game, according to which a single rotation of the timing clock should last exactly 30 seconds, and the rate under which the given replay was actually recorded. This data is subsequently stored in replay files. This feature of the game allows managers of high score lists to automatically accept or reject any replay being uploaded to them, according to how much does its speed deviate from the norm.

Plot
The goal of the game character is to "do some mighty cool jumps and moves" in the tower in order to "get ... awe from his friends in the hood". The game is set in a typical modern settlement in the Western world. The main character named Harold the Homeboy is a young and carefree member of the skate subculture who communicates with the player using American slang. The eponymous tower is usually depicted as a mediaeval round tower, sometimes equipped with battlements.

Harold the Homeboy is also the protagonist of two other Free Lunch Design games, Harold's Hills and Harold's Tower Blast.

History
Icy Tower was created by a Swedish game developer Free Lunch Design using the C programming language and the Allegro game library. Its designers were inspired by Xjump, a game for the Linux operating system.

The game follows a sequence-based software versioning scheme. Its current version is 1.4. The major number of the program never changes, as its authors do not intend to make Icy Tower 2. Changes in the minor number denote the entire package of the game being changed, together with its sound and graphic resources. Changes in the release number denote a release of a patch, i.e. a modified executable file purpose of which is to fix software bugs present in previous releases of the game. Patches for Icy Tower are being circulated both inside and outside official game packages.

The makers of Icy Tower maintain contact with its players, and their opinions were being taken into consideration in the course of developing new versions of the game. The list of the most significant changes made to it to date includes:


 * Records file (1.1) : An automatically generated and updated binary file that contained data about the player's records at a given time. It could be subsequently submitted to the then official online high score list.
 * Replay files (1.2) : Small binary files that contain the recording of a given Icy Tower game and the nickname of its maker. Replays are less prone to cheating by manually modifying them than were files used to store players' records in Icy Tower 1.1. Replay saving and viewing features were being improved concurrently with the entire program. For example, replays have since been made easier to sign (1.2.1) and rewind (1.3), as well as possible to sort by various criteria (1.3). It has also become possible to view a progress bar of their duration, their maker's nickname and the arrangement of keys pressed during their making when watching them (1.3) and to save them automatically whenever a player beats his personal record (1.4).
 * Configurable keyboard settings (1.2) : The possibility to personalise keyboard keys responsible for the character's movements in the tower. Since Icy Tower 1.3 it is also possible to customise the key pausing the game.
 * Shortened floors (1.3) : This change was introduced in order to make gameplay over the 1000th floor barrier more difficult. In Icy Tower versions prior to 1.3 a sufficiently skilled player was able to casually climb as much as several thousand floors, even at the fastest rate of the downward movement of the screen. This was undesirable, as replays from such games often lasted several minutes or more.
 * Removal of the immaterial floors bug (1.3) : This bug, known as the "ghost floor" bug, was a collision detection glitch that occasionally caused random floors in the tower not to stop the character falling onto them, usually ending the game as a result. It had only been occurring at the highest game speed and caused several players to quit playing altogether. It was the primary reason behind the making of Icy Tower 1.3. Its creators originally only intended to fix the bug in question in it, release the new version as Icy Tower 1.2.2 and distribute it as a patch.
 * Player profiles (1.4) : A concept of user accounts (profiles) was introduced in order to help several players play a single instance of the game. A profile contains certain publicly accessible data about the achievements of its owner (his average and best scores in the game, for example), as well as his personal game settings and preferences. The default profile is the so-called guest profile.
 * Support for secondary categories (1.4) : A possibility to manually change default game gravity and speed and default floors length was introduced (this change emulated – to a limited degree – features and options that were previously available for players only by the means of special trainers). Results achieved in the environment modified in such manner do not, however, affect the state of the built-in high score lists, which only register results recorded in default conditions. The categorial scope of the built-in lists was nevertheless expanded; since Icy Tower 1.4 they also register scores in categories formerly considered secondary (such as JS or CC).
 * Measures against slowdown (1.4) : Icy Tower 1.4 estimates the possibility that the player's computer was artificially slowed down and records results of this estimation in replay files. A standalone program named SDbuster (Slowdown Buster) was also created in 2007 to help detect slowed down replays, which calculates the possibility of a given replay being slowed down based on previously remembered differences between replays recorded in normal and reduced speed.

Lesser changes include a visual overhaul of the game (1.4), the possibility to choose the default floor type of the game (1.2) and the possibility to create custom game characters (1.2). Additionally, four new combo rewards were introduced, namely Super!, Fantastic!, Splendid! and No way!, and thresholds of combo length for certain rewards were increased (1.2).

Ports
On March 14, 2007, a press release has been published on the Free Lunch Design website announcing the establishment of a partnership between FLD and mobile game developer Xendex Entertainment regarding the porting of Icy Tower to the mobile environment. The ensuant game named Icy Tower Mobile (ITM) was released on October 6, 2008. Due to limitations of mobile platforms the game lacks several features present in its PC counterpart, such as publishing replays from games outside the mobile phone or changing default game characters.

On September 24, 2009, a beta version of a Free Lunch Design game named Icy Tower Facebook (ITFB), developed on the Adobe Flash platform within the development framework of the Facebook social networking website, has been publicly released. Icy Tower Facebook allows players to compare their results with results of their friends within the Facebook system. It is also possible for players to personalise their in-game avatars and unlock additional game levels (so-called towers), which correspond to various game styles in the PC version of Icy Tower, by exchanging them for the virtual currency of the game (so-called coins). ITFB lacks the possibility of recording replays.

Unofficial Icy Tower ports for the Nintendo DS and PlayStation Portable video game consoles also exist, made by players.

Reception
Icy Tower ranks high in the "Most Popular" ranking of the "PC games" section in the Download.com software directory website; its average monthly number of downloads was "more than 20,000" in 2006, amounting to over five millions. The total number of Icy Tower downloads was estimated at over 11 millions in 2008. In terms of the number of websites devoted to the game, it is most popular in Czech Republic, Germany and Poland. Central European countries are also home to a major portion of top Icy Tower players. According to Johan Peitz, the author of the game, the reason behind the popularity of Icy Tower is that it allows players to compete in several different categories, for example in striving for both high floors and high scores.

Online Icy Tower communities allow their members to exchange high scores, replays and comments about the game and its gameplay. Additionally, players frequently compete against themselves in online competitions, so-called tournaments. Icy Tower tournaments usually consist of a number of rounds, each lasting one or more days. In every round, contestants are required to record one or more replays with a result in a specific category of the game. Players did also organise live meetings, which took place in Cracow and Warsaw, Poland and Prague, Czech Republic.

On May 30, 2007, an official Icy Tower website operated by Free Lunch Design has been launched, available at icytower.&shy;freelunchdesign.&shy;com. On June 3, 2009, the day of Icy Tower 1.4 release, an additional, complementary site has been opened at icytower.com.

Add-ons
Internal structure of Icy Tower allows changing its appearance through downloading and installing repackaged resource files of the game (mods). Mods serve both aesthetical and practical functions, as they are sometimes used to improve players' performance in the game. The latter effect occurs if the mod conceals those elements of Icy Tower appearance that usually distract a player while he plays (such as the clock, combo rewards or differences between floor types). An example of a mod that simplifies the gameplay is Retro Tower, a recognised mod that reduces the palette of the tower to black and white. Mods were created for all Icy Tower versions, although those made for a given major version of the game are incompatible with the executable files of another.

Since the version 1.2 Icy Tower allows players to create additional custom characters which may replace the two default characters provided in the game package, Harold the Homeboy and Disco Dave. Making a new character only requires the player to create an image file of a certain structure. It is possible, however, to also create more complex ones, using which will cause the game to modify its soundtrack and colour palette.

There also exists an array of tools that assist players in training, changing the game physics or analysing their results.

Modifications and utilities for Icy Tower