Ideal Tetris Keyboard Layout

[LEFT |LEFT |RIGHT|RIGHT]   [ CCW | CCW |  CW |  CW ]


         [soft drop | hard drop | swap hold]

In the ever consuming endeavour of efficiency, tetris and keyboard layouts, I’ve come up with a design for a keyboard layout that’s optimally designed for playing tetris, and playing it fast!

In tetris, there is a concept call finesse, which is a strategy to place pieces in any column and rotation, with at most 2 steps (keys pressed at the same time).

Note that 2-step finesse only applies to the SRS rotation standard, whereas my preferred standard of ARS does have some situations that require 3 steps due to differences in rotations and piece spawn positions.

For an introduction and explanation of finesse check out these very good sites:

This keyboard layout is designed to be able to support all finesse movements as a single stage, with no need to move fingers off of the home row, and no need to double tap any key!

steps

When using finesse there are 3 main steps to position the piece: - move the piece to the correct column - rotate as required - lock the piece in

For this keyboard layout these 3 activities are placed in different areas of the keyboard, with different hands activating them.

movement

When moving pieces the most you will need to press a single direction key at once is 2 times, all positions can be reached with either:

As double taps are slow and cumbersome at high speeds, the keyboard layout should have 2 movement keys for each direction.

Having 2 movement keys for each direction allows you to “roll” tap each one of the keys (or press them both at the same time) in 1 action to move the piece 2 places, no need to double tap.

Due to the fact that: - there are 2 directions - we need 2 copies of each - thus 4 buttons - the joystick on the left moves pieces position

The 4 homerow keys for the left hand are the movement keys: |L|L|R|R|

rotation

similar to steps, you will at most need to rotate a piece twice to fully invert it, as to get to the 4 rotations you can:

  1. default
  2. CW
  3. CW CW
  4. CCW

There is the added complication of some tetris games having a “180” keybind, that in a single press will fully rotate the piece. However for this keyboard layout this bind is not used for a few reasons:

All systems I know of only include 1x 180 key bind, which means it will either:

None of these are optimal, as in some situations to get over another piece you will need to either rotate twice clockwise or twice counter clockwise, or the rotation matrix for the 180 bind may not allow traversal over an obstacle, where 2x rotation binds would!

To get around this, there is a need to have 2x rotation binds for each direction, thus allowing full traversal over obstacles as required. Similar to the movement keys, these can be rolled together or pressed at the same time.

Thus to get to all the rotations of a piece in 1 movement you can do:

  1. default
  2. CW
  3. CW+CW / CCW+CCW (depending how you need to rotate)
  4. CCW

Due to the fact that: - there are 2 rotation directions - with 2 copies of each - 4 keys total - rotation is normally done with the arcade buttons on the right - on arcade buttons CCW rotation is the first button, with CW being next

The 4 homerow keys for the right hand are: |CCW|CCW|CW|CW|

locking

After moving the piece into position and rotation, it’s time to lock it in place. There are 2 locking strategies:

Plus an additional function required:

This gives 3 additional buttons that need to be placed.

Hard dropping should be preferred, as under SRS rules when a piece is harddropped it will instantly lock in place and the next piece will spawn. However soft drops are still used from time to time when doing more advanced manoeuvres, such as t-spins and the like.

My own preference for the frequency of these keys is: Hard drop > swap hold > soft drop

As such:

flow

With this system there is a nice flow to each piece placed:

It goes round in a nice cyclic system, that’s easy to get into a good rhythm for!

[.] -> [.]
  ^    /
   \ L
   [.]

keyboard

┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬─────┬──────┐
│    │    │    │    │    │    │    │    │    │    │    │    │    │    │    │     │      │
├────┴┬───┴─┬──┴──┬─┴───┬┴────┼────┴┬───┴─┬──┴──┬─┴───┬┴────┼────┴┬───┴─┬──┴──┬──┴──────┤
│     │     │     │     │     │     │     │     │     │     │     │     │     │         │
│     │     │     │     │     │     │     │     │     │     │     │     │     │         │
├─────┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──────┤
│        │     │     │     │     │     │     │     │     │     │     │     │     │      │
│        │     │     │     │     │     │     │     │     │     │     │     │     │      │
├────────┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┐    │
│          │  L  │  L  │  R  │  R  │     │     │     │ CCW │ CCW │ CW  │ CW  │     │    │
│          │     │     │     │     │     │     │     │     │     │     │     │     │    │
├──────┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─────┴────┤
│      │     │     │     │     │     │     │     │     │     │     │     │              │
│      │     │     │     │     │     │     │     │     │     │     │     │              │
├──────┼─────┼─────┼─────┼─────┴─────┴─────┴─────┴─────┼─────┼─────┼─────┼────┬────┬────┤
│      │     │     │ SD  │              HD             │ SH  │     │     │    │    │    │
│      │     │     │     │                             │     │     │     ├────┼────┼────┤
└──────┴─────┴─────┴─────┴─────────────────────────────┴─────┴─────┴─────┤    │    │    │
                                                                         └────┴────┴────┘
L   = left
R   = right
CCW = counter clockwise rotation
CW  = clockwise rotation
SD  = soft drop
HD  = hard drop
SH  = swap hold