Minicade

Created by Chloe Varelidi / @varelidi
and Atul Varma / @toolness

Before we begin…

We like to encourage learning and diversity.

So Minicade’s design reflects these values.

What Is A Game Jam?

First, get a bunch of game-makers together.

Then pick a theme.

At the 2013 Mozilla Festival, Chloe and Syed of Babycastles inaugurated a mini game jam by whispering “dancing bears” into one person's ear.

Then Make Games.

This broken telephone process resulted in a series of ridiculous mini games all made in 60 minutes or less.

(For more details about the event, see Chloe's Twine game!)

The Opportunity

Experiencing the output of a game jam is hard.

Just Finding It Can Be An Adventure.

Where was that etherpad again?

Lists of Links Suck.

Transitioning from one game to another is difficult.

The Time Commitment Is Unknown.

Humans are busy and are easily distracted on the Web.

What if we turn the output into a game?

A meta-game, if you will.

Inspiration

Chloe introduced Atul to Dumb Ways To Die.

Yay Microgames!

This genre seems to have its beginnings in WarioWare, Inc: Mega Microgame$! (2003).

Constraint One

All games must be playable on the Web.

Game jam participants have varied skillsets.

So let them choose the tools they’re comfortable with.

Scratch Logo Waterbear Logo Twine Logo PuzzleScript Logo Thimble Logo
JS Bin Logo ImpactJS Logo Elm Logo Unity Logo Haxe Logo
Emscripten Logo

Constraint Two

All games must take seconds to play.

This Keeps Source Code Simple.

A game that takes seconds to play will probably have an implementation that’s easy for others to understand and remix.

It's A Known Time Commitment.

Prospective players can experience the entirety of a game jam’s output in a few minutes.

Built-In Fault Tolerance.

If a microgame crashes, we simply move on to the next game after the maximum number of seconds have passed.

Try It

http://minica.de/

How Does It Work?

The underlying framework, Fancy Friday, contains a metagame primitive that manages the execution of microgames.

Microgames Are Iframes.

This allows them to have full control over their own runtime environment.

No Dependencies.

A microgame communicates with its metagame through querystring arguments and postMessage events.

Well, optional dependencies.

tinygame.js can be used to make things easy.


<script src="http://minica.de/tinygame.js"></script>
					

Some snippets…


Tinygame.onoutoftime = function() {
  // Stop accepting user input, show ending animation, etc...
  console.log("Player ran out of time!");
};
					

// The player won! Show an ending animation and move to the next game.
Tinygame.win();
					

// The player lost but still got 50% of the maximum possible score.
Tinygame.end(0.5);
					

console.log("I am on", Tinygame.difficulty, "mode.");
console.log("Player has", Tinygame.playTime, "seconds to play me.");
console.log("I have", Tinygame.endingTime, "seconds to show an end animation.");
					

Learn more at minica.de/docs.

This presentation was created using reveal.js.

You can fork it.