The Games

TROMINOTRIS


After stumbling across a video of the 2018 Classis Tetris World Championship I was blown away by the speed at which individuals were playing a classic video game. It seemed superhuman. Coincidentally, in the previous month I used two dimensional arrays to create a mock Pac-Man game and realized I could use a similar setup to create my own Tetris game. Juggling my time between work and school I decided to use trominos instead of tetrominos as a proof of concept. After a few days, I developed the main game mechanics. I spend the next couple of weeks adding some better animations for landing blocks and clearing lines along with a simple intro/pause screen. My family seemed to enjoy the game and thought it would be great to add additional features such as two players and various game modes. The next few weeks were spend incorporating these additions culminating in Trominotris 2.


video walk through

trominotris2.jpg

settings menu

The SPACE key will pause game play and bring up the menu screen. The ARROW keys can be used to navigate between the guide and settings screens as well as the game modes. Highlights and underlines provide user feedback as to the current location within the menu.

solo vs duel

Play in solo mode to try to get a new personal best high score or play against in a friend in duel mode. Player one will use the left game area and can control trominos using the ARROW keys. Player two will use the right game area and can control trominos using the ‘a’, ‘d’, ‘w’, and ‘s’ keys for left, right, rotate, and down respectively.

trominotris_menu_ex.gif

normal mode

Use the two true tromino shapes available to clear rows. With each level up the speed at which trominos cascade down the play area increases.

trominotris_normal_ex.gif

glitch mode

This mode uses the traditional tromino shapes along with the addition of blocks arranged vertex to vertex as opposed to edge to edge. This glitched pieces will appear at random intervals for a further challenge.

trominotris_glitch_ex.gif
trominotris_soloduel_ex.gif

freeze mode

Uses the traditional tromino shapes, but every so often a tromino in a frozen orientation will appear. These blocks can not be rotated only moved left and right.

trominotris_freeze_ex.gif

mirror vs random

When playing in duel mode, players can chose to use the same sequential trominos by selecting MIRROR. If players prefer, they can also select RANDOM to each get their own unique trominos and leave their fates to RNG.

trominotris_mirror.rand_ex.gif

delayed auto shift

After some research into how the best Tetris players can play at such insane speeds the topic of delayed auto shift or DAS came up. A very common feature used when scrolling or moving on a computer. When a button or key is pressed and held the initial movement in the given direction is slower and subsequent movements in the same direction occur faster. Tetris players have developed two main ways to avoid DAS, hyper-tapping and DAS Charge. These methods are not relevant but DAS is essential for meaningful game play so I had to develop my own delays to mimic this essential component of the game.

dynamic scoring system

To favor more rapid game play, I inserted some incentives in the scoring system to favor players that use the increased drop speed when pressing the DOWN arrow for player 1 or ‘s’ key for player 2. Setting pieces faster will give players a slight bonus when clearing lines which could be the difference between a new high score or beating a friend. The scoring system also favors clearing more rows at one time with the max being 3 rows or a Trominotris. The point value of a trominotris, or any number of rows cleared increases with each level as well.

 

Pac-Man


Working with collision detection in Processing has been interesting. I’ve been able to develop collision detection for circles, triangles, and rectangles but working with two dimensional arrays created a very simple grid system that opened possibilities for creating simple games. The first idea that came to mind was a Pac-Man style game and it served as a great way to get comfortable with 2D arrays as well as implementing my first algorithm, the A* Path-Finding Algorithm.


video walk through

a* PATH FINDING ALGORITHM

Fusce at massa nec sapien auctor gravida in in tellus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Phasellus sodales massa malesuada tellus fringilla, nec bibendum tellus blandit. Aenean eu justo sed elit dignissim aliquam. Aliquam bibendum, turpis eu mattis iaculis, ex lorem mollis sem, ut sollicitudin risus orci quis tellus.