Snake Jazz

Year: 2021 Role: concept, design, development

Play Snake Jazz (pre-alpha)

Snake Jazz gameplay

Snake Jazz is a musical game based off the classic Snake game. It is both a game, and an instrument. The moment-to-moment gameplay triggers sound effects that, combined with a steady musical strucuture, sound as if the player is improvising in a jazz band.

I try to capture the playfulness that exists in two forms of play - playing music, and playing games. This work hopes to explore the common qualities between them. To seek the sparks of ingenuity as the player enters the flow state. To give them the thrill both of a gamer and a musician.


The current game is played as a two-player local multiplayer game. Player 1 controls with WASD and Player 2, arrow keys.

Each snake contains two measures of music that they play on a loop. The food pieces scattered around the map each contain a musical phrase. When the player eats the food, this musical phrase gets added to the looping measures.

Different types of musical phrases are marked with colors. For example, blue food are bluesy licks, and pink are arpeggios.

By combining varied types of musical phrases, players compose their solo in real time, just like a jazz musician would.


Since the musical unit here is notes and rhythms, I used Tone.js to drive the procedural audio, and represented each phrases as sequence of notes.

Phrase data

Musical lines as javascript arrays

When the backing harmonies change, the player’s notes have to match the change accordingly. To make this easy, I chose the Modal jazz song So What for backing track, and shifted the key up/down one step along with the music.

Notes mentioning this note