Please create an account or Login! Have fun!

Release desynchronization: Difference between revisions

Jump to navigation Jump to search
m
links, broken link, formatting, wording
imported>MichaelW2012
mNo edit summary
 
m (links, broken link, formatting, wording)
Line 1: Line 1:
'''Release desynchronization''', also known as '''clone desynchronization''', is a mechanic in the [[Lynx|Lynx ruleset]].  It applies to both the original game on the Atari Lynx as well as [[Tile World]]'s emluation of the ruleset.
'''Release desynchronization''', also known as '''clone desynchronization''', is a mechanic in the [[Lynx ruleset]]. It applies to both the original game on the Atari Lynx as well as [[Tile World]]'s emluation of the ruleset. Despite the original name given to it, it applies to [[trap]]s just as well as [[clone machine]]s.


If two [[Monster|monsters]] are supposed to clone at the same time, over and over again, over the course of multiple clonings, one monster will clone a few frames before the other.  If the level runs long enough, there may be a delay of a few tiles between the clonings.  It is well demonstrated in [https://www.youtube.com/watch?v=iHUQJhdTrSY this video].
If two [[monster]] cloners are supposed to activate at the same time, over and over again, one stream will be a few ticks ahead of the other. If the level runs long enough, there may be a delay of a few [[tile]]s between them.  It is well demonstrated in [https://www.youtube.com/watch?v=iHUQJhdTrSY this video].


The mechanic was originally discovered by [[Andrew Menzies]] while testing one of his levels.
The mechanic was originally discovered by [[Andrew Menzies]] while testing one of his levels.
==Explanation==
==Explanation==
Note: the following information was copied and pasted from [http://cczone.invisionzone.com/index.php?/topic/167-possible-new-glitch-in-tile-world-lynx-clone-desynchronization/#entry28460 a CCZone post] by [[Eric Schmidt]].
Note: the following information was copied and pasted from [https://forum.bitbusters.club/thread-2425-post-28364.html#pid28364 a CCZone post] by [[Eric Schmidt]].


1. When a level is (re)started, the game builds a list of all creatures in reading order. Creatures include monsters, blocks, and Chip himself. The list includes monsters and blocks on top of clone machines. After this, if Chip is not in the first position in the list, he trades places with whatever creature is there. So, Chip is always at the beginning of the list.
1. When a level is (re)started, the game builds a [[Monster_list|list of all creatures]] in [[reading order]]. Creatures include [[Movable_object|monsters, blocks, and Chip himself]]. The list includes monsters and [[block]]s on top of clone machines. After this, if [[Chip]] is not in the first position in the list, he trades places with whatever creature is there. So, Chip is always at the beginning of the list.


2. Each game tick, the creature list is traversed in reverse order. Monsters move 1/4 of a tile when not slipping. Creatures on clone machines or traps don't move. (Things are actually more complicated. There are three traversals per tick. In the first, the creatures decide which direction they move when not in midmove. In the second, the move is executed. The third traversal handles teleporters. All this may be ignored for this discussion.)
2. Each game tick, the creature list is traversed in reverse order. Monsters move 1/4 of a tile when not slipping. Creatures on clone machines or traps don't move. (Things are actually more complicated. There are three traversals per tick. In the first, the creatures decide which direction they move when not in midmove. In the second, the move is executed. The third traversal handles [[teleport]]ers. All this may be ignored for this discussion.)


3. When a creature dies, the creature's entry in the creature list is not removed. Instead, the entry is marked "hidden", which just means there is no longer any creature occupying that location in the list. Hidden entries in the list are ignored during the traversal.
3. When a creature dies, the creature's entry in the creature list is not removed. Instead, the entry is marked "hidden", which just means there is no longer any creature occupying that location in the list. Hidden entries in the list are ignored during the traversal.


4. When a clone button is pressed, the corresponding creature moves 1/4 of a tile off the clone machine, and a new creature is created on top of the clone machine. If there is a "hidden" slot available in the creature list, the new creature will be inserted into the earliest such slot. If there aren't any hidden slots, the creature is appended to the end of the list.
4. When a [[clone button]] is pressed, the corresponding creature moves 1/4 of a tile off the clone machine, and a new creature is created on top of the clone machine. If there is a "hidden" slot available in the creature list, the new creature will be inserted into the earliest such slot. If there aren't any hidden slots, the creature is appended to the end of the list.


So, when a creature is cloned, if the creature appears later in the list than the creature that pushed the clone button, it initially moves 1/4th of a tile. However, if it appears earlier in the list, it moves 1/4 tile again on the same tick for a total of 1/2 tile.
So, when a creature is cloned, if the creature appears later in the list than the creature that pushed the clone button, it initially moves 1/4th of a tile. However, if it appears earlier in the list, it moves 1/4 tile again on the same tick for a total of 1/2 tile.


Here is an example. It's pedantic Lynx compatible, so if you want you can try it on the Lynx ROM (using [[Brian Raiter]]'s "[[c4]]" utility to patch the level in).
Here is an example. It's [[pedantic Lynx]] compatible, so if you want you can try it on the Lynx ROM (using [[Brian Raiter]]'s "[[c4]]" utility to patch the level in).


[[File:Fireballasynch.png|right]]If you run the level in Lynx mode, every so often the fireball cloned on the second row will be slightly ahead of that on the first row. Here's how it works in detail:
[[File:Fireballasynch.png]]
 
If you run the level in Lynx mode, every so often the [[fireball]] cloned on the second row will be slightly ahead of that on the first row. Here's how it works in detail:


The creature list initially looks like this:
The creature list initially looks like this:
Line 25: Line 28:
C B1 F1 B2 F2
C B1 F1 B2 F2


Here, C is Chip, B1 and F1 are the ball and fireball on the first row, and likewise for B2 and F2. At first, the fireballs don't move because they're on clone machines. Then the balls press the clone buttons. B2 acts first, causing F2 to leave the clone machine and another fireball to appear in its place. Likewise, F1 also leaves its clone machine on the same tick. Now there are more creatures on the list. We denote the extra creatures by an ellipsis since they're irrelevant to the example.
Here, C is Chip, B1 and F1 are the [[ball]] and fireball on the first row, and likewise for B2 and F2. At first, the fireballs don't move because they're on clone machines. Then the balls press the clone buttons. B2 acts first, causing F2 to leave the clone machine and another fireball to appear in its place. Likewise, F1 also leaves its clone machine on the same tick. Now there are more creatures on the list. We denote the extra creatures by an ellipsis since they're irrelevant to the example.


C B1 F1 B2 F2 ...
C B1 F1 B2 F2 ...
Line 49: Line 52:
The extra 1/4 move can occur even if there is only one clone machine in the level. It all depends on the relative order of the creature that presses the button and the creature on the clone machine in the creature list. For instance, it never happens when Chip presses a clone button since he is at the beginning of the list.
The extra 1/4 move can occur even if there is only one clone machine in the level. It all depends on the relative order of the creature that presses the button and the creature on the clone machine in the creature list. For instance, it never happens when Chip presses a clone button since he is at the beginning of the list.


random 8 above mentioned that something similar happens with traps. The explanation is more or less the same. If the creature on the trap appears earlier in the list than the creature that pushed the button, it gets another move.
[[random 8]] above mentioned that something similar happens with traps. The explanation is more or less the same. If the creature on the trap appears earlier in the list than the creature that pushed the button, it gets another move.
 
[[Category:Mechanics]]
[[Category:Mechanics]]
trusted-editors
994

edits

Navigation menu