Chip's Challenge: Differences between the MS and Lynx versions

Introduction

When I originally started compiling this document, I had hoped to make it comprehensive. Since Tile World was meant to emulate both the original Lynx game and the Windows version created by Microsoft, I would surely have to know what all the differences are. I no longer entertain such hopes, however, as I have come to realize that the differences are too numerous. At times it is hard to meaninfully compare the two.

For all that the two programs are in essence the same game, they diverge radically when you go beyond the surface details. Some of the differences were made deliberately, and reflect the tradeoffs made when porting a game written for dedicated hardware to Windows 3.x, a non-preemptive multitasking GUI layer, sometimes running on not-at-all-fast hardware. Other differences in the MS version are all too obviously the result of bugs in the code. And some differences are just inexplicable. One might wonder, at times, at the very fact that the same set of levels (or mostly the same) can all be solved in both games. Upon further reflection, though, it seems clear that the MS programmer(s) simply continued to tinker with the code until the testers were able to complete the game. And in fact, this likely explains still other differences in the MS version — i.e. they were introduced in order to make a broken level solvable.

On top of this, both games have odd and completely distinct behavior when given levels that are "illegal". Neither version of the program originally came with a level editor, and the games were not intended to be used with anything but the almost-150 levels they were sold with. So it is understandable that their behavior is sometimes surprising when running a user-created level with unforeseen juxtapositions of elements. But just trying to document this information alone would be a very large task.

Instead I have focused on what I consider to be the most important differences. I have tried to list the differences that are the most noteworthy, the differences that really catch people off-guard the first time they see them, and the differences that level designers should be aware of before creating levels in either ruleset.

Level Layout

Under MS, each tile of the map can contain up to two things, one atop the other. No distinction is made between creatures and other objects. Creatures, keys, and boots are "transparent", in that they partially expose the contents of the lower tile layer. Blocks, on the other hand, are not transparent, and are treated more as a type of tile. Opaque objects can sometimes be removed from the upper layer, making the lower layer topmost. Under Lynx, each location of the map can contain only one tile and optionally one creature. Blocks are a type of creature (i.e. not a tile), and so is Chip. Keys and boots, on the other hand, are a type of tile, and so cannot be combined with other tiles.

Under MS, the mappings of brown buttons to beartraps and red buttons to clone machines are explicitly specified. Buttons can be unconnected by omitting them from the list. Under Lynx, a button of either type is always connected to the first beartrap/clone machine that comes after it on the map, in reading order (i.e., going from left-to-right, then top-to-bottom, and returning to the top from the bottom if necessary). [Note: this is not true in Tile World's Lynx emulation — it uses the same mechanism as the MS game.]

General Movement

Under Lynx, it takes 1/5 of a second (aka two ticks, or four frames) to make a normal move. Under MS, moves are instantaneous, but constrained to only happen 5 times a second (again, under normal circumstances).

Lynx displays movement over four frames of animation. When Chip begins a move, he is immediately treated as having vacated the tile he's moving from and is in the tile he's moving towards. In this regard, the two games are the same. However, side effects triggered by moving into a square generally take place once the move is completed (i.e., 1/5 of a second after the move began). Under MS, these side effects essentially occur simultaneously with the movement.

Under MS, Chip can normally move only once per 1/5-second interval. If he attempts a move that cannot be made, he must wait until the next interval to attempt another move. All other creatures move at the end of each interval. Under Lynx, no such restriction is in effect. If Chip (or any other creature) makes a failed attempt to move, another attempt can be made on the very next frame (i.e., 1/20 of a second later).

Under MS, walkers and blobs always move when it is their turn and it is possible for them to do so. That is to say, they will never attempt to move in a direction that is blocked. Under Lynx, walkers and blobs select their new direction from all four possibilities, and thus can wind up remaining still next to a barrier for one or more frames, until a direction is chosen which happens to be free.

Under MS, creatures move in the order dictated by the internal creature list. Because all creatures complete their moves instantaneously, there is never an issue with two creatures attempting to move into the same tile simultaneously. Under Lynx, all creatures select their moves for a frame first, and then the moves begin to be executed in the order of the internal creature list. A creature can thus find that it has chosen to move into a tile which is now in the process of being occupied by a creature that moved first. When this happens, the later creature loses its turn and does not move during that frame.

Involuntary Movement

Involuntary movement refers to all types of movement that are caused by what Chip or a creature is standing on. Ice, force floors, teleports, beartraps, and clone machines are the causes of involuntary movement.

Ice and force floors cause creatures to move at double-speed. Under Lynx, when Chip is moving along a sequence of force floors he can, after having been moved involuntarily once, substitute the next force floor's movement with a voluntary movement. After having done so, and presuming he is still on a force floor, he must allow himself to undergo another involuntary move before he can attempt a second voluntary move. (This is true whether or not the voluntary move was successful.) Under MS, when Chip is on a force floor he can attempt a voluntary move on every tick. The 5-moves-per-second restriction is not in effect during this time. A voluntary move occurs during the same tick as the involuntary move, instead of replacing it. (Notice that the two versions wind up giving Chip the same freedom of movement, but the overall movement happens twice as fast under MS.)

A side effect of how involuntary movement works under MS is that Chip can attempt an extra move immediately after leaving a force floor. Due to the temporary lifting of the 5-moves-per-second restriction, Chip will always have a move available to him afterwards. This also means that an extra move is available on tiles that do not force movement at double-speed, such as teleports. Under Lynx, it is the floor Chip is moving onto that determines whether or not he moves at double speed, not the floor he is leaving. This is because Chip's location while in mid-move is considered to be the destination tile. Furthermore, teleports, beartraps, and clone machines only cause forced movement at normal speed. (Actually, movement into and out of beartraps and clone machines happen slightly faster than normal; the details are outside the scope of this document.)

Under MS, creatures entering ice, force floors, etc. make their first involuntary move on the same tick. Thus, they pass through that first tile instantaneously. This does not happen for Chip, although his ability to make an extra move upon regaining normal ground allows him to keep pace with the monsters in the final reckoning. Under Lynx, Chip does not move differently from other creatures.

Under Lynx, the double-speed of force floors is actually a doubling of speed. In particular, blobs on ice and force floors move at 5 moves per second, which is double their normal speed. Under MS, all creatures have the same double-speed rate of 10 moves per second.

Under MS, Chip can use his voluntary move to move opposite the direction of the force floor. Under Lynx, such an attempt will fail. (Both games forbid attempts to move voluntarily in the same direction as a force floor.) In this case, it is the floor that Chip is currently on, not the floor that he is attempting to move onto, that determines which direction is forbidden.

Under MS, random force floors are truly random; there is no pattern to the direction they push in on a given tick. Under Lynx, random force floors cycle through the four directions in clockwise order, pushing east, then south, then west, then north, etcetera. The current direction is shared between all random force floors in a level, and carries over from level to level. (Thus it can be to one's advantage, before playing a level with random force floors, to go to a level like GRAIL or SCOUNDREL and "pre-set" the random force floor direction.) The first time a random force floor is ever used in a session, it will push east.

Under MS, there is the amazing "slide delay", which causes creatures blocked from making an involuntary movement to potentially alter the order and amount of involuntary moves made by the other creatures in the level. No such feature exists under Lynx.

Forbidden Moves

The rules of what creatures can enter and exit what types of tiles differ slightly between the games.

The most significant one, of course, is fire. Under Lynx, no creatures except fireballs (and blocks) will ever enter a tile containing fire. Under MS, tanks, balls, blobs, paramecia, teeth, and gliders will also enter fire tiles, and are destroyed when they do so.

Under Lynx, creatures (including blocks) cannot enter a hint button tile, and blocks cannot cross an exit tile or a tile containing footgear. Under MS, all these are permitted.

Under MS, no creatures except blocks can enter random force floor tiles. Under Lynx, all creatures can enter random force floor tiles.

Under MS, creatures (including blocks) can all cross tiles containing keys. Under Lynx, creatures cannot cross over yellow keys or green keys. Red keys can be crossed. Blue keys can also be crossed, but the key is destroyed in the process.

Under MS, when Chip is wearing the skates, he can walk through ice corners. Blocks can also be pushed through ice corners, when Chip is given the opportunity to do so. (Basically, ice corners are pretty much ignored except when creatures are actually sliding on the ice.) Under Lynx, two sides of an ice corner act like walls at all times.

Beartraps and Clone Machines

Under Lynx, creatures always exit beartraps and clone machines in the direction they are facing. Chip is the only creature besides tanks that can turn around while held in a beartrap. Under MS, blobs, bugs, paramecia and teeth can exit beartraps and clone machines in a new direction. Blobs always exit in a random direction. Bugs, paramecia, and teeth choose their direction via a complex set of rules that I won't go into here.

Under Lynx, a creature (including Chip) will leave a beartrap the moment a brown button is pressed. The movement is involuntary. Under MS, pressing a brown button simply permits the creature to begin moving normally again. For example, Chip may continue standing on a beartrap, and then leave at a later point, even if the brown button has since been released. The sole exception to this is when a block enters a beartrap via involuntary movement. In that one case, the block will leave the beartrap, also via involuntary movement, when the brown button is pressed. (In all other cases, blocks do not move out of beartraps by themselves.)

Under Lynx, a creature leaves a clone machine the moment a red button is pressed. If the clone's direction is blocked, the clone is not created. Under MS, only blocks leave a clone machine immediately upon a red button being pressed. Other creatures wait one tick before exiting. If the exit becomes blocked during that one-tick pause, the clone still exists, and can exit at a later time if the direction becomes clear. Note that in the case of blobs, bugs, paramecia, and teeth, the direction that needs to be clear can change with every tick. Their original direction only matters when determining if the clone is created in the first place.

Miscellaneous

Under Lynx, exploding bombs and blocks pushed into water have a period of 6 ticks (12 frames) in which Chip cannot enter the tile while the appropriate animation is displaying. (Other creatures can still enter the tile, which stops the animation.) Under MS, these actions complete instantaneously.

Under MS, if a creature enters a teleport and no teleport, including the original one, permits exit in the given direction, the creature will remain trapped on the original teleport until a direction becomes free. If Chip enters such a teleport, however, he will "bounce back", returning to the tile he was on before he entered the teleport. Under Lynx, creatures treat blocked teleports as if they were empty tiles, and they have no effect on them. When Chip enters a blocked teleport, however, he becomes permanently stuck. Even if a direction becomes free later, Chip will be unable to move off the teleport.

Under Lynx, pressing a blue button only turns around tanks that are not in mid-move at the time. Under MS, tanks are never "in mid-move", so this does not apply.

Under Lynx, walkers use a separate random-number generator that is always seeded with the same value at the start of each level. Thus the walkers always use the same random pattern. Under MS, the walkers use the same random-number generator as the blobs, and thus their movements are unpredictable.

The Original Level Set

There are a surprising number of differences in the actual data for the original set of levels.

Of course, level 145 (Thanks to...) only exists in the MS version.

Level 88 (SPIRALS) has a wall removed on some but not all copies of MS's version, as is well-documented elsewhere. It has been theorized, and I find it highly plausible, that MS intentionally removed the wall to alleviate the unintended difficulty of this level caused by the variant behavior of their walkers.

Level 99 (CATACOMBS) has a different wiring of seven or eight bear trap buttons. The changes to the MS version appear to have been introduced completely arbitrarily, without rhyme or reason.

Level 111 (TIME LAPSE) contains two bear traps; again, both of their buttons are miswired.

Level 121 (PERFECT MATCH) has an extra patch of ice near the bottom right corner of the inner area. Presumably it was added to correct for the different timings of sliding creatures on ice and force floors. (It is interesting to note that if this extra ice patch is duplicated in the Lynx levels, it introduces only a slight difference in the two rings, small enough for the beartraps' timing to smooth out.)

Level 127 (SKELZIE) has a taller central section. (In the Lynx map, the central section is a perfect square.) Again, this change was probably added to fix a problem introduced by the different timings of sliding creatures on teleports.

Four of the passwords are different between Lynx and MS. These are as follows:

      6 (LESSON 6)  10 (BRUSHFIRE)  28 (PING PONG)  96 (PARANOIA)
MS        WNLD           UVWS            UJDO            BIFQ
Lynx      WNLP           VUWS            UJDD            WVHY

The first three are clearly transcription errors. Level 96 is likewise a simple error; it is a repeat of the password to level 95.

What is interesting about this is that in the first three cases, MS's password matches the code given in Jaime Villacorte's notes, even though Jaime Villacorte was describing the Lynx version of the game. This seems to indicate that the MS passwords were keyed in by someone who was, directly or indirectly, working from Villacorte's notes, and thus faithfully duplicated his typos.

Finally, I note that in the Lynx version of the game, there are messages of encouragement after every ten levels. The MS version follows the same pattern and uses the same messages, except that they omit the first four messages. Surprise, surprise: Jaime Villacorte's notes on the Lynx game neglect to mention the first four messages, but do contain the full text of the remaining ones.

(One begins to wonder, after all of this, whether the programmer(s) at MS ever played the original Lynx game at all, or if they just worked off of other people's descriptions of the game.)


Tile World
Software
Brian Raiter
Muppetlabs