Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ryepup/dnd-projector

hobby project to use a projector to ease DND bookkeepping
https://github.com/ryepup/dnd-projector

Last synced: about 1 month ago
JSON representation

hobby project to use a projector to ease DND bookkeepping

Awesome Lists containing this project

README

        

* Overview

This is a hobby project to use a mini-projector with my laptop to
ease DND bookkeepping.

* web UI

** combat tracker
*** DONE enter to begin
*** DONE list of combatants, up/down to select
*** DONE add a new opponent

Press the add/erase button

*** DONE remove an opponent

Select a player, press add/erase, press enter to confirm

*** DONE officially start the combat
CLOCK: [2010-08-28 Sat 15:17]--[2010-08-28 Sat 16:53] => 1:36

Hit power to:
1. select the first player
2. start a timer showing how long the combat has lasted

*** DONE cycle through a round
CLOCK: [2010-08-28 Sat 14:46]--[2010-08-28 Sat 15:04] => 0:18

Hit mute to say that player's turn is done, highlight the next
player
**** DONE Add round number and game time to top of page
CLOCK: [2010-08-28 Sat 15:17]--[2010-08-28 Sat 15:17] => 0:00
*** DONE record damage
CLOCK: [2010-08-28 Sat 17:48]--[2010-08-28 Sat 18:27] => 0:39

Highlight a player, hit recall, enter numeric damage, (left is
backspace, enter is done)

*** DONE move player order

Adjust left/right buttons
*** DONE tag the current player so mute proceeds as normal if you skip around and assign damage to other players
CLOCK: [2010-09-14 Tue 18:18]--[2010-09-14 Tue 18:28] => 0:10
*** DONE make the selected style more prominent, doesn't show up on projector well
*** DONE make monster display differently
CLOCK: [2010-09-14 Tue 18:04]--[2010-09-14 Tue 18:17] => 0:13
*** bloodied marker
CLOCK: [2010-09-14 Tue 18:29]--[2010-09-14 Tue 18:41] => 0:12
*** HP bar
*** initiative sorter
** post-combat stats display
** scribe UI
This is a small form factor page designed for my android phone.
*** DONE monster entry
*** DONE next turn
*** DONE start combat
*** reordering
** projector page
This is a large form factor page meant for display on a TV or
projector. Passively displays the input from the scribe UI to show
combat in progress.

* architectury stuff
** DONE use a stack for the UI commands, so we pass the input processor through contexts, and can push/pop
CLOCK: [2010-08-28 Sat 17:01]--[2010-08-28 Sat 17:32] => 0:31
** make jquery plugin for player UI so it is easy to update and extend
** separate selected from the current players turn

so you could select many people then give one damage, or have a
per-player timer
** package up the page state such that the recall button can be undo
*** keep a list of game states, have a 'render state' function?
sounds like work, maybe localStorage?
*** keep a stack of functions to run to undo stuff?
** DONE add convenience function for 'press enter' dialog
CLOCK: [2010-08-28 Sat 17:36]--[2010-08-28 Sat 17:43] => 0:07

** scribe pushes events
** projector subscribes
** event push/pull
*** Functionality desired
Projector page makes AJAX request, which blocks until there's an
event for it. Want to work out long-lived AJAX calls instead of
polling.

Support multiple projector clients.

Support 1 scribe client.
*** Implementation ideas
**** event counter
Server keeps an incrementing counter for each event the scribe
makes.

Projector pulls an event count from the server, passes that back
with AJAX requests so it gets all events in order.
**** pub sub
Projector clients block on expecting a response, scribe publish
** DONE nginx
CLOCK: [2011-01-16 Sun 20:46]--[2011-01-16 Sun 23:50] => 3:04
** DONE jquery event pull
* bugs
** multiple projector problems
1. open one scribe, two projector clients
2. projector -> nginx -> lisp -> block on redis sub
3. projector -> nginx ?> lisp ?> block on redis sub