The New Tetris - Collision Detection on Rotation

Thread in 'Research & Development' started by MDLeide, 10 Jul 2012.

  1. I've searched, and searched, and searched for any guidance on how The New Tetris handles collisions, and I'm coming up very empty. It clearly has some funny logic going on, and I'm having a hard time nailing down exactly how it decides if a rotation is valid or not.

    This is a separate, although related, system from its wall kicks.

    Reference building a square from L or J pieces in the most efficient manner:
    http://tetrisconcept.net/wiki/Square_Platforming

    000
    **0
    *
    *

    When you have the first two pieces in place, as shown above, the fastest method to place the third is by hard dropping on top of the structure such that one block is over hanging:

    xxx
    000x
    **0
    *
    *

    Then rotate clockwise twice. This results, however, in the majority of the piece intersecting with the structure, but causing no collision.

    Anyone have any guidance??
     
  2. Edo

    Edo a.k.a. FSY

    I'd previously played the square mode of Tetris Worlds, and if I recall, I didn't find it that great. But, wow, the N64 New Tetris is so addictive! The sound track and production and everything are amazing! I just downloaded the rom thinking I'd have a quick go at helping you out, and I ended up playing it all evening! I'll have to pick up an actual N64 and the cart at some stage, this is definitely a game I'd like to own.

    I was too busy getting carried away by how awesome the game was to do much testing, but I'm going to carry on and see if I can make sense of the rotation behaviour, in particular the collision detection you asked about. Rotation systems actually interest me, (I'm the guy who did a lot of work on documenting SRS and DRS on the wiki), so I'll definitely have a good go at working this all out. However, I may not get much free time for a little while, so don't expect anything immediate.

    In the meantime, you could try getting in touch with a guy named Chris Gilmore ("Gilly"); he was one of the best players of this game back in the day, and he'd likely be able to help you. His youtube account is http://www.youtube.com/user/amagilly. He's got his Sprint and Ultra records up there too; if you've not seen them, they're well worth a look.
     
  3. Unfortunately, Chris has been off the grid for the better part of the last decade, as far as I can tell. He used to have a wonderful little website (where the Youtube videos originated from) that demonstrated the strategies he used, and the mechanics that backed them. Unfortunately, that site has been offline for some years now.

    The game itself... incredible. My friends and I picked it up around 2000, at the tail end of highschool. We spent countless hours playing, screaming 'RESERVE,' and telling one another what kind of morons the player was for stacking that I piece on top of two O's.

    We all developed quite an affinity, but it was myself and one other buddy that really became obsessed. We're neck and neck for best score out of our little group, myself weighing in at 786 on a sprint.

    The carts go for anywhere from 20-50 bucks nowadays, depending on what the current demand is like. I've got three... who the hell knows why.

    It seems to be such a little known and even less documented version of Tetris, but I believe it be far and away the best, requiring more strategy and tactics than any other.

    Concerning the collisions: It's pretty whacky. It seems like the success of a particular wall kick with very specific criteria will simply negate any collision checking. Additionally, if you really want to get frustrated, observe the way the fourth L or J in a spiral block will instantly lock in to the square, compared to the same rotation when there are only 2 L/Js locked (which you wouldn't often notice, since you are invariably executing a second rotation immediately afterwards). It seems that the rotation that completes the square actually moves the piece down an extra cell.

    I'm continuing my research, and my desk-side cork board is rapidly filling with graph paper and simple algebra. I appreciate your help, and no rush, it's only been ten years :)

    -Michael

    PS - If you haven't noticed, different levels play at different speeds in The New Tetris, but the clock ticks truly no matter what. I suspect the clock was executed in a separate thread, or perhaps it simply references a timer in the hardware. Regardless of the cause, the Factory (available when the cart has cleared 500k lines) is by far the fastest and smoothest playing of the levels, followed by Egypt. The others are simply not worth playing if you are going for any sort of competitive score. Although, this may not be the case while playing on an emulator.

    Additionally, you can influence the level that is chosen next by dropping a certain number of blocks on the level you are on. I once had the indexing committed to memory, but that was a long time ago. For instance, on Level A, drop 2 blocks, and you will play Level C next. Drop two blocks on Level B, and you will get level D. I'm sure the table is out there somewhere.

    Here's something you might be able to respond quickly to, and would help me in understanding the collision/rotation logic.

    While a piece is in transit between rows, my current belief is that it actually occupies a total of 8 cells as far as collisions are concerned. For rotating purposes and all other purposes, however, it would seem that it occupies the 4 cells that it is in transit to. Can you confirm?

    My real motivation for all of this: I've built a replication of The New Tetris in C#, with the ultimate goal of writing an algorithm to play as perfectly as possible with only the information that would be available to a player. :)
     
  4. I actually just bought this game a couple weeks back, partially in an effort to make myself look into the rotation rules again, hehe. I'll try to get on that soon.
     
  5. Zaphod77

    Zaphod77 Resident Misinformer

    The smooth fall system prevents many slides that ought to work from working in this game, hence the 'tactical rotation" section of the wiki. That, and the lack of all the SRS kicks is probably what's confusing.

    The rule is simple. WHen moving the piece will not overlap another one. this prevents sliding of more than one square.

    BUT, when rotating, a block from the active piece is allowed to occupy both a cell and the cell above/below it, even if one of them is occupied. This, combined with the limited wallkicks, allows these strange placements.
     
  6. Edo

    Edo a.k.a. FSY


    That theory isn't correct:

    The second move doesn't work, due to the red block, despite the fact that there is free space below it for the entire tetromino to fall into.



    While I cannot confirm it with 100% certainty, it does seem a very reasonable assumption, however, I would ammend it to state something like this: "If the visual location of the tetromino exactly coincides with cells in the playfield, then it rotates as if it occupies those cells; if the tetromino is part-way between cells, then it rotates as if it occupies the cells that it is in transit to."

    I was looking at the Tactical Rotation page on the wiki, in particular the part about the S/Z pop. In the first image, I was interested to understand why the indicated cell must be free. After puzzling over it for a bit, it seems quite simple: if that cell is occupied by a block, then in order to get the Z into the correct position for the pop, it must first be tucked under that block, by which time it is already in transit to the cells below where it needs to be. But the wiki doesn't tell the full story: if you make a platform for the Z to land on, so that it cannot fall while it is being tucked and therefore cannot be part-way between cells, then the move can be performed even with the indicated cell occupied.




    It doesn't actually need to be completing a square, there are other similar moves where the tetromino "pops" into position, moving down an extra cell. For example:

    I'll try and explain this in just a little bit, but basically it seems like it could be just a simple kick.
    Now, time for a couple theories of my own.

    Firstly, I believe the test order for kicks is as follows:
    1. check 1 cell down
    2. check 1 cell in the direction the tetromino was rotated, i.e. 1 cell to the right if the tetromino was rotated right/clockwise, or 1 cell to the left if the tetromino was rotated left/counter-clockwise
    3. check 1 space in the other direction
    4. check 1 space up.

    Secondly, it seems that if the checks for up, left, or right were successful, then the kick is performed instantly. However, if the down check is successful and the tetromino would end in a landed position if the kick is performed, then the kick is performed instantly (resulting in the "pop"). Otherwise, if there is space beneath, no kick is performed, (at least not visually), but the rotation (which would result in collision) is allowed anyway.

    So, my theory is that collision results from a successful down kick test when there is still space available beneath. For example:



    I'm discovering lots of interesting behaviour to do with what happens after the collisions, which I'll hopefully investigate in due course, but I'm currently trying to come up with cases that could disprove my theory about their cause. Can anyone think of any situations where there is collision, where basic rotation is blocked, but a down kick test would be unsuccessful?



    One other thing, for people that are interested, whatever was archived of Gilly's site is available here: http://web.archive.org/web/20040807080602/http://gilly.homeip.net/tetris
     
  7. Zaphod77

    Zaphod77 Resident Misinformer

    L/J shuffle is a clear example of fall through when rotated from a space that's not between cells.

    First rotation peforms downward kick and snaps into place. second rotation doesn't kick at all, but DOES fall through!

    When passing between cells, kicks can be combined with fallthrough.

    When exactly on a cell, it seems fallthrough and kicks are mutually exclusive.

    if there is extra space below it will fallthrough instead of kick down, to give you time to slide. if there's no space below it will snap, and if that snap also completes a square it will lock as well.
     
    Last edited: 16 Jul 2012
  8. Edo

    Edo a.k.a. FSY


    The first rotation does not perform a downward kick, nor does it snap into position. What I said in my post above is that the down test is successful, but there is space beneath, so no kick is performed visually, and collision is allowed instead. And this is exactly what happens in the case of the L/J shuffle.



    Not true. It locks for the same reason that any other tetromino in any other situation locks: lock delay has simply expired. The fact that it completes a square or that it has snapped into position has nothing to do with it. Indeed, the tetromino can still be shifted after it has snapped into a position where it would complete a square.
     
  9. The resident misinformer strikes again!
     
  10. So does this mean that TOD M4 rotation is actually a reasonable approximation of TNT64?
     

Share This Page