Tessellate

Tessellate is the engine behind the tetronimo games at hi-games.net. A unique feature of the Tessellate engine is that it allows users themselves to define their own games and compete on shared leaderboards for these games. Other features include user-customisable themes and the ability to watch replays of any record.

Standard modes
hi-games.net provides 3 standard modes.


 * 40 Lines
 * 2 Minute Speed Run
 * 20G Japanese

Creating user-defined modes
Any number of user-defined modes can be created using the Tessellate Wizard tool.

Simulation

 * Tessellate Simulation Settings

Scoring
Tessellate calculates points in two stages.

1) As a tetromino locks, Tessellate records into each block of that tetromino the number of frames that have elapsed since the previous tetromino was locked. However, if a tetrimino locks during a level block (where the player cannot progress until a line clear is achieved), or blocks appear in the well due to garbage rather than a locking tetromino, then a fixed frame count of 300 is stored into each of those blocks.

2) When rows are cleared, Tessellate awards points according to the following formula:

points = rows * (combo + twist) * max(1, progress * columns * blocks / blockFrames)

where:

Most factors in this formula may be switched on or off when defining a game mode:
 * rows is the number of rows cleared
 * columns is the number of columns cleared
 * blocks is the number of blocks cleared
 * blockFrames is the total number of elapsed frames stored in each of the cleared blocks
 * combo is set to 1 if no rows are cleared, otherwise combo is increased by (rows - 1)
 * twist is 1 if the locked piece cannot be moved one cell left, right or up, or otherwise is 0
 * progress is 40 + the current piece/line/level (depending on the game's unit of progress)


 * If combos are disabled, then combo is always reset to 1 before the above combo formula is applied
 * If multirow clears are disabled, then the combo formula is changed to increase combo by 1 rather than (rows - 1)
 * If twists are disabled, then twist is always set to 0
 * If progress points are disabled, then the above formula assumes a constant current piece/line/level of 80
 * If speed points are disabled, then the above formula assumes a constant blockFrames of 16*blocks