Skip to content

The role-playing scene

tilttek/game-engine

Scene\RoleplayingScene is a ready game for the phases of a role-playing scene, with no rules of any system: it tracks who acts, not what the actions do.

PhaseTurn orderTransitions out
exploration, the firstFreestart-encounter
encounterInitiativeend-encounter to aftermath, explore
aftermathFreestart-encounter, explore
MovePayloadWhen
scene.act{summary}, optionalAn action, in the seat's turn during an encounter, at any time otherwise
scene.note{text}, requiredA note, at any time
scene.end—Ends the scene, without winners

A table seats 1 to 32. The first seat leads the scene: it alone changes the phase, sets the initiative and ends the scene, unless the table's option leader is turned off. Every action may be taken back, since none draws at random. The data counts the actions of each seat, the notes and the encounters; every seat sees it all. When the scene ends, its outcome reports them as statistics: encounters and notes of the table, actions of each seat.

$tables->open('roleplaying-scene', 'scene:12', ['seat:gm', 'seat:ann', 'seat:bob']);
$tables->play('scene:12', Move::initiative(['seat:ann' => 17, 'seat:bob' => 11, 'seat:gm' => 8], 'seat:gm'));
$tables->play('scene:12', Move::transition('start-encounter', 'seat:gm'));
$tables->play('scene:12', new Move('scene.act', 'seat:ann', ['summary' => 'Charges the gate.']));
$tables->play('scene:12', Move::endTurn('seat:ann'));
$tables->play('scene:12', Move::delay('seat:bob', 'seat:gm'));

The rolls of a scene are tilttek/dice's, kept by its own journal: the scene records who acts and in which phase, and a system's rules live with the tools that read tilttek/rpg-systems.