Flow

I suppose I should post something about what I’m working on, since that’s allegedly the purpose of this blog.

I’ve been playing around with a concept in Flash, under the working title Flow (just a working title, and with no relation to Jenova Chen’s fine work).  This concept was partially inspired by walking through a lot of airports and watching the flow of people.  You have a lot of people, each trying to move toward some goal or to follow some other person (or group), with competing traffic.  Patterns emerge.

With what I’ve got hacked in there right now, the yellow blibbles (hey, I had to call them something in the code) are trying to move to the right, and the reds are trying to move left.  Each blibble is pushed away from the top and bottom of the screen.  Each blibble has an “ideal distance” that they’d like to be from nearby blibbles, and move away if they’re closer than this, or move toward if they’re further (but the strength of influence diminishes with distance).  The ideal distance from their own color is shorter than the ideal from other colors.  You can see it in action here.

All of the behaviors (seeking ideal distances, constantly trying to move left or right, wrapping at the edge of the screen, etc.) are modular, and can be assigned as needed to individual blibbles.  I’ve thrown together a simple Verlet integrator to handle the movement.

That gray area along the right will be a control panel.  The game concept goes something like this:

In each level, there will be some number of blibbles with some behaviors.  There will also be walls, and sometimes different colored zones.  The player will need to watch the blibbles and deduce what their behavior is.  This behavior could be anything.  For example, each blue blibble tries to move toward the nearest yellow blibble.  The yellow blibbles are trying to move toward some zone.  When a yellow reaches the zone, the yellow turns red, and starts some other behavior.  Then maybe the blue blibbles avoid the reds, etc.  The behaviors could be simple and obvious, or very subtle and complex, depending on the difficulty of the level.

In the control panel on the right, the player will have a bank of controls (various switches, buttons, etc., specific to that level).  Clicking the controls will change the behavior of the blibbles in some way, and/or the rules of how they change behaviors based on zones they reach, etc.  The idea is that the player needs to experiment with the controls, and figure out what does what.  Again, this could range from obvious to subtle and complex.

There will be an objective for the player, and at the top of the control panel will be a meter showing what percentage of this objective is met.  Maybe the objective in one level is to have at least 10 of the blibbles be green at the same time.  When one blibble turns green, the meter would go to 10%.  A couple more turn green, and it’s 30%.  One of the greens turns yellow, and meter drops back to 20%.  Once the meter reaches 100%, the player has won the level.

The only instructions given to the player is that they can win each level entirely by clicking the controls in the control panel.  For each level, it’s up to the player to determine what’s going on with the blibbles, what his controls affect, and what makes the objective meter go up and down.  The first couple levels will be extremely simple and obvious, so the player gets a handle on how the game works.

This entry was posted in My Games and tagged . Bookmark the permalink.

2 Responses to Flow

  1. Mike showed me this… and it reminded me of this that I saw on your blog… Figured I’d show you too! http://incubator.quasimondo.com/flash/galactose.php

  2. Martoon says:

    Very cool!

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>