BeeNoir is a livecoding game heavily inspired by alJazari[1]
BeeNoir in action: http://www.youtube.com/watch?v=ZSPvY0cC8mk
Dependencies:
- python v2.6 or newer http://www.python.org/
- pyglet v1.4 or newer http://pyglet.org/
- pyOSC https://trac.v2.nl/wiki/pyOSC
- SuperCollider http://supercollider.sf.net/
How to use it:
1) start SuperCollider or something else listening on port 57120
2) start the game:
./run
or
./runFullscreen
or
./run80 (HTTP Server listens on port 80 & Fullscreen)
There are a lot of configuration options in common.py.
If you have trouble getting pyglet to run on Mac 10.6 you might try:
defaults write com.apple.versioner.python Prefer-32-Bit -bool yes
You can receive messages with OSC in e. g. SuperCollider:
port: 57120
There are two types of OSC messages. General messages notify the
OSC receiver about general changes in the game, game messages about
changes/actions of each player. Floats are normalized; between 0 and 1.
General messages:
- /beenoir/start (the game was started)
1) play field width (int)
2) play field height (int)
- /beenoir/stop (the game quit properly)
Player messages:
- /beenoir/newplayer
- /beenoir/move
- /beenoir/jump
- /beenoir/teleport
- /beenoir/action (musical action)
- /beenoir/playerdeleted
- /beenoir/changetempo
Message format für player messages:
1) player_id (int)
2) x-position (normalized) (float)
3) y-position (normalized) (float)
4) tile-value (normalized) (float)
5) length of the event in seconds (float)
The length of the event is actually the tick-rate per seconds
and depends on the tempo. Tempo can be infered from length of event.
To control a player go to http://127.0.0.1:8000/
For debugging purposes, you can also change the code of a player
by clicking on the code in the game - it will cycle through the
possibilities forward (left-click), backward (right-click)
or reset it to 'wait' (middle-click).
[1] http://pawfal.org/index.php?page=AlJazari