Thursday 24 January 2013

Pianola game concepts (part 1)

Over the last couple of weeks I've been working on ideas for a game inspired by the pianola (also known as a player piano or self-playing piano).

Brainstorming

The normal process of brainstorming involves throwing everything (including the kitchen sink) at the wall and seeing what sticks.  However, in this case, I've found that some concepts have really caught my attention at an early stage -- as a result, this mind map represents a summary of the brainstorming process: 


If you enlarge the picture you'll see that most concepts have been split between "piano keys" and the other on the notion of "programmable machines".

So which concepts jumped out at me?  Let's examine the first couple:

Graphical sequencing

Firstly, there's the connection between the graphical sequencing found on punched cards and that found in singing & dance games.  I've already mentioned this in a previous post, but it's worth re-iterating it here.


Most of these games require players to follow an on-screen sequence as it is revealed -- usually, this sequence scrolls (just like the paper in a pianola): vertically for dance games, horizontally for music games (usually mimicking the notes on a musical score).

Programming-based games

Secondly, there's the programming element: creating a sequence of instructions which will be executed, in order.  There are two approaches to this within existing video games.

The first method uses pre-programmed trial-and-error puzzle games.  The player creates a 'program' and then executes it, watching the results.  If the program fails to work, the player amends their program and tries again.  Examples of this include:

Cow Maze -- a popular online Flash game, written in German and never really translated for a mass market. (Not sure why, because it's a lot of fun).  Place arrows on the map and set the cow walking.  However, there are a limited number of arrows, and they only point in certain directions.


Light-Bot -- this online Flash game requires players to create a sequence of instructions (using the commands forward, left, right, jump, etc.) which is then executed to move the robot around objects to a final goal.  This also, cleverly, allows players to create re-usable subroutines, where new commands can be created, based on a small sequence of existing commands.  It's so good I actually use it when teaching programming to students -- it does a fantastic job of preparing them to think like machines, breaking tasks into steps, and also shows that it can be fun.


Professor Layton train mini-games -- the Professor Layton series of games for the Nintendo DS are extremely popular (13 million sold), and this mini-game requires players to click points on a grid map to lay a train track.  The train must pass through waypoints to reach a final goal, but must do it within a maximum number of steps.  Once the track is laid (in 2D, from above), the game shows a cute isometric projection of the train's progress as it follows the track.  An added challenge is that the length of the train increases in later levels, bringing the problem of it crashing into its own carriages.


The second method uses live, interactive programming.  In these games, the player must lay out a sequence of instructions under time pressure, often after the execution has started.

Pipe Mania -- this game was published 23 years ago by LucasArts.  In it, the player must drop sections of shaped pipe into a grid, providing a path for slow-flowing 'ooze'.  Players must also navigate the pipe around obstacles and through waypoints, but are hampered by the selection of shapes on offer.  A number of clones of this game have been produced over the years, for a variety of platforms including modern 7th generation consoles and set-top boxes.


You can see that programming, as a concept, has great potential within games.

We'll continue looking at the concepts which "jumped out" in the next blog.  See you soon!