The real TGM wallkick rule.

Thread in 'Discussion' started by Zaphod77, 13 Jan 2008.

  1. Zaphod77

    Zaphod77 Resident Misinformer

    First try basic rotation.


    Basic rotation fails.


    If there is overlap to the LEFT of the center of rotation, try to kick right.


    Failing that, if there is overlap to the right of the center of rotation, try to kick left.


    Failing THAT, do not kick.


    ALso do not kick for an I.


    This is why those L rotations fail when a block is missing, but work when the block is present. the extra block causes an overlap that is nt in the same colum as the axis of rotation.



    Code:
    O
    LLL
    LO
    OOO
    
    If we try rotate left, we get
    
    OL
     L
     XL
    OOO
    
    where x = overlap.
    
    check for X left of center of rotation. FAIL. do not kick right
    check for X right of center of rotation. FAIL. do not kick left. Rotation FAILS.
    
    Now we try to rotate RIGHT
    
    XL
     L
     XL
    OOO
    
    check for x left of center of rotation. X found, attempt right kick.
    
    XLL
     L
     XL 
    OOO
    
    Right kick works.
    
    Only one test case needs to be worked out here.
    
    That is with Z/S piece.
     O |
    ZZ |
     ZZO|
    OOOO|
    ----|
    
    Does this kick right or left? I believe it should kick left.
    
    Otherwise the alternate rule below is correct.
    
    IF no overlaps outside of column of center of rotation, do not kick, otherwise, try to kick right, then try to kick left.
    
    
    Either way, the only exception in that kick rule the I piece, which is not allowed to kick.
     
  2. new kid's got some moves. maybe.
     
  3. I believe the behavior you described is already accounted for in the current revision of the article here. If you believe you have come up with something new, could you clarify it?


    Also, the behavior described applies only to L, J, and T. The Z will kick right in that final test case.
     
  4. It kicks to the right, and fits into the gap. The mirror image situation, with an S, will also kick right, and therefore out of the gap.


    The basic rule is always kick to the right first. It can be annoying at times, but at least this way, it's consistent...
     
  5. Zaphod77

    Zaphod77 Resident Misinformer

    THe wiki explains that those kicks will not happen, but does not explain WHY. it just says that there is an exception that prevents those kicks from happening. ANd i wondered...why does this direction work and the other one not?


    I have now explained WHY those kicks fail. A piece where the only overlaps are in the same colum as the axis is not eligible to wallkick. This cannot happen with a z piece because it's IMPOSSIBLE for any block to overlap in the colum of the axis after rotation. This can only happen with Ls and Ts. I would be able to wallkick, except that there's an exception preventing that. this exception is most likely because to kick away from the left wall it may have to shift two spaces. So as not to break the symmetry, they disallowed the kick completely. They changed their mind in TGM,3, and allowed the two space wallkick, and remove the earlier exception, and also allowed a single floorkick. In the right circumstance, any piece but the square is theoretically capable of floorkicking. Another test is needed. are snake pieces allowed to floorkick in tgm3?


    My other rule theory was completely consistent as well, and would probably make more sense.
     
  6. No, only T and I can floorkick in TGM3.
     
  7. tepples

    tepples Lockjaw developer

    Is that where they got the name Terror-Instinct?
     
  8. This bit of information was known, although it appears to have been omitted in the wiki article. The article demonstrates the exception without mentioning the center column rule for whatever reason. I know I have seen a diagram with the center column of each piece marked with red Xs, however. It should probably get a mention.


    And yes, only T and I can floor kick.
     
  9. Edo

    Edo a.k.a. FSY


    You're probably remembering the diagrams from jago's page. And yes, it should get a mention.


    I had yet another look at the wallkicks, and I now believe that the wiki is still incomplete. The following kicks also work:


    Code:
    x
     xL
    LLL rotating counter-clockwise, this will wallkick right.
    
     x
    Jx
    JJJ rotating clockwise, this will wallkick left.
    
    My hypothesis for what is actually going on is as follows:

    1. Wallkicks right will always be checked before wallkicks left.

    2. To determine if a rotation is eligible for wallkicks, overlaps are checked for in each of the 9 cells of the 3x3 bounding box, row by row, and starting in the top left. If the first overlap found is in one of the side columns, wallkicks are allowed. If the first overlap found is in the central column, the wallkick is denied.


    Basically, the exception where wallkicks aren't allowed is if any cell of the central column is occupied (this is nicely illustrated on jago's page). The exception to the exception is if a cell in a side column has already allowed the wallkick. To be perfectly honest, these "exception to the exception" cases serve almost no practical purpose, and they're not even worth knowing about. Of course, it should be mentioned on the wiki for the sake of completeness, but only in passing.


    Right. So who's going to update the wiki?
     
  10. tepples

    tepples Lockjaw developer

    That and for the sake of developers of simulator software designed to document the behavior of the products. When the exception and the exception to the exception were first discovered and disclosed to the English-speaking world back in July, you started a storm of discussion about what was then called the "WTF behavior".
     
  11. Zaphod77

    Zaphod77 Resident Misinformer

    So you are telling me these two will not kick,even if rotated the right direction?


    Code:
    | O 
    | LLL
    | L O  (would kick left if allowed)
    |-------
    
    | O 
    | JJJ
    | O J  (would kick right if allowed)
    |------
    
    
    Admittedly they are useless kicks, as you could simply have rotated them one space over anyway for either a kick, or to get the position it would kick to without kicking. But would they work?
     
  12. tepples

    tepples Lockjaw developer

    But if this left-to-right, top-to-bottom behavior is correct, it implies that TGM stores its tetrominoes as a 2D array of blocks in left-to-right, top-to-bottom order like Tetris Elements and Emacs, not a list of block coordinates like Carbon Engine, Tetris Worlds, and Lockjaw Engine.
     
  13. Edo

    Edo a.k.a. FSY

    zaphod77, I just tested those kicks, and neither of them worked. They would not rotate at all in either direction. If you want to play around with the wallkicks, you can set up all sorts of odd situations using the garbage codes from the MAME cheats thread. The current tetromino, and infinite lock delay cheats would also be useful.


    I have fond memories of the "WTF behavior" discussion, and of my editing a wiki for the very first time! Actually reading back over that thread, I see that I mentioned something about CUSTOM SPEED CURVES IN LOCKJAW. ahem.
     
  14. Zaphod77

    Zaphod77 Resident Misinformer

    Well, there we have it.


    So flowchart is as follows.


    1) Try basic rotation.

    2) If it fails, check for wallkick eligibility.

    If Bounding box is 3x3,and first overlapping square counting from upper left to lower right is NOT in center column, then piece is eligible for wallkick.

    3) If eligibility check passes, attempt right wallkick, otherwise don't rotate.

    4) if right wallkick fails, attempt left walkick.

    5) If that fails, don't rotate.


    In TI, we have new cases added. one is the 4x4 bounding box case, which adds in a 2 space right wallkick.


    The other is the floorkick, which is only checked if rotation is attempted during lock delay, only for I and T, and only if the piece has not floorkicked already.


    For this we have one cae not covered by the wiki.


    Code:
     T
    TT
    OT O
    ----
    
    and it's mirror
    
     T
     TT
    O TO
    ----
    
    These may or may not floorkick. All possible cases for I are covered.
     
  15. Zaphod what makes you think floorkicks are only checked during lock delay? At low G, you can kick the I into the air repeatedly by rotating quickly in and out of the vertical position just before it lands. You could have the world's longest section time this way, though you would also be bored to tears.



    This is more or less what I told tepples when he asked about these exceptions some time ago. I can't seem to find that topic though. One difference: I don't think you have to check a complete 3x3 box. The game probably just checks the 4 prospective coordinates, one column at a time. So, in the worse case of failed rotation, it would check 4 coordinates 3 times. If the first phase of coordinate checking encounters a block in the middle, the kick fails.
     
  16. Zaphod77

    Zaphod77 Resident Misinformer

    The wiki states that the piece will only kick if it's touching the ground. it will NOT kick if it's one space above it.


    Also, any piece can only floorkick ONCE in TI!


    Perhaps you were confused with some other system allowing floorkicks?
     

  17. No need for caps. [​IMG] In this case I'm a greater authority than the wiki. [​IMG] It used rather clumsy wording that in fact makes it incorrect in the rare case I previously mentioned.
     
  18. i'd listen to him, dude. he actually bought tgm3.
     
  19. Zaphod77

    Zaphod77 Resident Misinformer

    Well, then update the wiki to the true rule. [​IMG]

    I'm guessing it's either floorkicking only resets lock delay once, or that you can only floorkick once during lock delay.


    Of course, not having a TGM3 machine, i can't really test.
     
  20. Next time I hook it up (playing TAP these days) I'll make sure it's sorted.
     

Share This Page