Studio of Taulant Sulko
2023

KeySmash

What is KeySmash?

KeySmash is a series of arcade video games that uses a virtual musical keyboard as the control interface. Each game is played with one or more virtual musical keyboards, all sharing one screen.

Video of two players playing KeySmash Battle at Dirty Rectangles event in Toronto 15 February 2024.

Sound is an important part of the game series. I want the players to feel as if they have a joined a chaotic piano jam session, where the music is an output of the gameplay.

KeySmash Setup Photo of an earlier iteration of KeySmash Battle that uses two computer keyboards are set up facing each other, with the game screen placed in the middle.

So far, I have created two games for this series: KeySmash Battle and KeySmash Blocks.

KeySmash Battle

KeySmash Battle is a two player game inspired by Pong. The goal is to be the first player to hit the other player’s field 10 times.

A ball bounces back and forth from one player’s field to the other. Each player controls a paddle that protects their field. The players move their paddles horizontally by playing musical notes on their virtual musical keyboard.

Musical notes sound as the players play their keyboards to move their paddles—almost as if a free form jam session is happening as both players try to protect their field.

KeySmash Blocks

KeySmash Blocks is a one player game inspired by Breakout. The goal is to break all the visible blocks before losing all your lives.

Similar to KeySmash Battle, KeySmash Blocks uses a horizontally-moving paddle that is controlled by the virtual musical keyboard. The player moves the paddle to bounce the ball back towards the blocks.

Sounds is an important element here as well. Notes are emitted as the player plays their keyboard to move the paddle, as if they are sitting down to compose whacky music bound by the rules of the game.

Tech Stack

Role Name
Programming Language TypeScript
Game Development Framework Phaser 3
Music Synthesizer Library Tone.js

Software Architecture

The architecture of the software is based on OOP (Object Oriented Programming). A core Game class was created that then was extended to create each game. For example KeySmash Battle and KeySmash Blocks are games extended from the same Game class. This reduces the re-write and boilerplate code, and has made the project easier to expand and manage.

Want to see more?

Here are some similar projects to KeySmash relating to Programming.

Want to chat about a project
or just want to say hi?

Send me a note