Objective
The objective of the game is to manipulate the falling ice cream blocks in a way to serve all the customers.
This game takes the familiar Tetris, Puyo Puyo and Cleopatra Fortune design and puts a fun spin on it.
Elements
Board
The playing board is a 6x7 tiled rectangle, with a small 2x1 "bottleneck" on center top, where the playing pieces spawn.
For the purpose of this design document, each cell in this rectangle is called an UNIT.
Playing Pieces
There are two types of playing pieces: Scoops and Popsicle. They always fill a 2x1 space and will spawn in the "bottleneck" area and fall with constant speed. If it cannot move down any further, it will turn into a locked piece.
More details in the Rules section.
Cones
Every new game, the bottom of the Board will have six Cones. The player must place the same Scoops displayed in the Order window to remove it from the Board.
The game is won when all Cones are removed from the board.
Next Window
Displays the next playing piece that will be played. The playing piece is picked at random. More details in the Rules section.
Order Window
Displays the Scoops that need to be placed over a Cone to remove it. Only Scoops can generate here. More details in the Rules section.
Customer
Flavor art that does not have any impact in the rules of the game. Picked at random.
Rules
Controls
(Game Boy controls in mind)
⬅ Move playing piece LEFT.
➡ Move playing piece RIGHT.
⬆ (Unused during gameplay)
⬇ Increase playing piece's Falling Speed while it is held down.
🅰 Rotate playing piece CLOCKWISE.
🅱 Rotate playing piece COUNTERCLOCKWISE.
Playing Pieces
Moving and placing the playing pieces have specific quirks.
For the purpose of this design document, assume the game runs at 60 frames per second.
General Movement
The playing piece will attempt to spawn in the Board's bottleneck, always horizontally (2x1).
The playing pieces move along the grid, and cannot phase through nor occupy the same space as the Board walls or locked pieces.
Tapping LEFT or RIGHT moves the playing piece ONE UNIT in that direction.
(Input buffering for side movement) Holding LEFT or RIGHT moves the playing piece ONE UNIT in that direction in the first 20 frames, then an additional UNIT in the same direction every 6 frames until the button is released.
Holding DOWN increases the playing piece's Falling Speed to the maximum value. Releasing the button restores the Falling Speed to normal.
A playing piece will attempt to lock into place if it cannot fall down any further. After successfully locking in place, the Next playing piece will be called.
(Grace period for piece locking) Once a playing piece touches the bottom surface of the Board, the player will have an extra 20 frames to adjust it (Movement and Rotation) before it is locked. This timer is reset if the playing piece's pivot moves more than ONE UNIT downwards.
General Rotation
For the purpose of this game, piece rotation is not a physical movement: the playing piece "teleports" to the valid empty space upon rotation, and does not collide with occupied spaces during the animation (Tetris's T-Spin logic).
The rotation pivot is always the leftmost side of the playing piece when it spawns in the bottleneck.
The playing piece's pivot is used to calculate the Grace period for piece locking.
If the rotation's final configuration would cause the playing piece to occupy an invalid space (Board walls or locked pieces), the playing piece must be nudged ONE UNIT away from the obstacle.
Scoops
Scoops always come in random attached pairs.
If the Scoops lock in a way that one of them hangs in the air, the hanging Scoop will detach from the supported Scoop.
The detached Scoop will continue falling, and can be controlled normally (Hatris style).
Rotating has no effect on the detached Scoop.
The Next playing piece will only be called when both Scoops become locked in their places.
If the Scoops are inside an ONE UNIT wide vertical shaft, pressing either Rotate button will swap the Scoops' position (Puyo Puyo style).
Popsicle
A Popsicle of a random color will generate after every four pair of Scoops (4 Scoop pairs, 1 Popsicle; 4 Scoop pairs, 1 Popsicle and so on).
Popsicles always come in a single color.
Popsicles can be placed hanging in the air if it is partially supported.
Popsicles can never appear in the Order window, therefore it cannot remove Cones from the Board.
Clearing Pieces
The player can clear locked pieces by connecting four or more identically colored pieces orthogonally (Puyo Puyo style). Diagonally connected pieces do not count.
Popsicles, despite occupying a 2x1 space, count as a single piece, and thus require three or more identically colored pieces to be cleared. A cleared Popsicle will completely vanish from the Board and will leave no leftover pieces.
Any locked piece that ends up floating in the air after the pieces are cleared will automatically fall towards the bottom and occupy any valid empty tiles. No tiles must be left unsupported. Locked pieces that fall in this manner cannot be controlled by the player in any way.
If the piece configuration after the fall happens to create even more valid connections, they will be cleared as well, in a chain reaction (Puyo Puyo style).
The Next piece will only be called into play once no more clears are possible, and the remaining pieces are properly supported and not floating in the air.
Serving Cones
If the player manages to place the required Scoops directly over an empty Cone, that Cone is permanently removed from the Board.
The Scoops must be placed vertically over the Cone to count. Placing the correct Scoops over two different Cones do not count.
The vertical order of the Scoops do not matter (for the purpose of Serving Cones, A on top and B on bottom is identical to B on top and A on bottom).
If the ordered Cone is successfully created, any remaining piece in that Cone's entire column is fully cleared. The same logic in Clearing pieces apply.
Serving Cones have higher priority than Clearing Pieces. If a locked piece fulfills both a Cone order and Piece Clearing at the same time, then the Piece Clearing is ignored while the Cone order is fulfilled.
After a Cone is removed and the Next piece is successfully called into play, the Customer changes and another Order is generated in the Order window.
Win Condition
The game is won if all six Cones are served.
There are no "Points" in this game, but it will keep track of the following stats:
Amount of Cones served (The more Cones served, the better).
Number of pieces played (The less pieces played, the better).
Time spent, in mm:ss format (The less time spent, the better).
Lose Condition
The game is lost if any of the spaces in the bottleneck are occupied by a locked piece, preventing new playing pieces to be added into the board.
Other considerations
The game can be balanced to be Easier or Harder by manipulating several aspects. Here are some possibilities:
Increasing Fall Speed gradually as the number of played pieces increase.
Increasing frequency of Popsicles.
Decreasing amount of Cones at the start of the game.
Increasing or decreasing Grace period for piece locking.
Purposely program the Order window to suggest difficult combinations (check the current Board state and generate an Order that is not yet fulfilled).
Adding more colors.
Having an "Endless Mode" where the Cones respawn when all six are removed from the Board.
Having a "Time Attack Mode" where the player has a limited amount of time, in minutes, to serve all six Cones.
Credits
Design, Art: Gors
Design Help: Sengir