tinglo2233

LD 42

The making of Pianobots

Hi everyone, I'm one of the makers of Pianobots!

A couple of weeks ago, some people asked about the puzzle design in Pianobots, so...sorry for taking so long, finally I have some time now to do some sharing!

First of all, thank you all who played our game and made Pianobots the 3rd 🥉 in INNOVATION of LD42 JAM! It really made our day :D

There's two of us, @fonserbc dealing with the programming and visuals, and me in charge of the level design and sound effects. 17994.png

Before the jam, we knew we wanted to make a music-related game. After brainstorming we came up with the concept of limited space you have in a piano keyboard, where you can't have unlimited hands trying to play the piano at the same time, because you would eventually clash with each other. Maybe we could make a game out of trying to fit hands and music lines into a limited size keyboard!

Refining the concept

Once we had the idea, we first thought of the easiest way to present and develop this idea within three days. We first decided to go with one-finger robots instead of multi-fingered hands for simplification, each robot could only be playing a single note at a time, creating their own melody. The second decision was to give up on time differences between robots: let me explain. When playing on the keyboard, there are 2 different dimensions where the robots could be moving their melodies: - Space/Pitch: robots can move up and down on the keyboard, shifting their melody in pitch. - Time: robots could delay or get ahead when playing their melodies, changing the rhythm and the synchrony with the other robots.

We decided to not allow time shifting for the melodies, and try to make puzzles playing only with the pitch. Looking back this was a good idea, but we still had many questions we had to answer:

How many robots on a keyboard? How many octaves should the keyboard have? How long is a loop or song? What's the smallest unit of musical time?

There are way too many directions and potential to make the puzzles more and more difficult to make and play. In the end, we decided to go with these rules: - Robots can only play a note at a time - Robots are always in rhythmic sync - All pieces happen in a one octave keyboard - 2-3 robots playing at a time at most - 8 or 16 time units in one loop/piece

The reason for only a one octave is straight-forward: to shrink down the possible combinations of robots. However, to compose a loop within one octave played by 3 robots is quite difficult.

Composing the levels

At first I tried to come up with a three-voice line, and then just cross the notes. By that I mean that the three voices shouldn't always be parallel to each other, otherwise it'd be either too difficult to find the right intervals between them because there is too much space between them, or too easy because they would either clash totally or not at all.

After crossing them though, the voices didn't sound so musical, so I realized that all lines needed to be a mixture of notes that are 1 and 2 time-units long. Musically speaking, I went from a three-voice harmony to a counterpoint approach.

After some struggles, @fonserbc made a tool for me in Unity that, after inputing all the voices (robots) of a piece, it showed me how many possible positions are there for each of the robots, and how many non-clash combinations are there of all the robots (and how many of them are repeating).

Let me explain: A combination of robot positions represents a possible solution to the piece/level. If it is a not clashing one then that means it is a possible solution, but there might be more than one combination with the same sound output, meaning that all the robots are shifted up or down, on a different key, but they all are the same answer.

In conclusion, here are some guidelines I came up for myself for puzzle making on Pianobots: 1. There should be less than 15 non-clashing possibilities. 2. Among all the non-clashing possibilities, there should be ONLY 1 that sounds right. (Not counting the repeating ones) 3. Voices shouldn't be parallel with each other all the time. Otherwise it become either too easy (never clash) or too difficult (too many possibilities). 4. Each line should be rhythmically different, to make it as musical as it can be.
5. To make it easier, try to make one of the robots limited with only 1-2 positions. E.g. in level 2 Etude in C, the first robot has only one position possible because it plays across the whole octave. That's why it's actually easier than level 4 Sonata in C even though that one has only 2 robots.
6. Try to make one of the robots a well-known melody line, so players have something to lean on. (Even though most of them turned out to be very hidden ..oops)

That's more or less it!

Comments, questions and advice welcomed. If you haven't played the game please try it out!