
You probably want to skip all this narrative crap, so just click on that image or on this link to get to the demo room. Also, just before you leave, I want to shamelessly beg for feedback. Seriously, I really want your feedback. Feedback is awesome and magical and there's a good chance that I'll actually implement your suggestions. Also, if I break things, don't assume I'm aware of that.
---------------------------------------------
So for the past few weeks, I've been working with my friend Ben Vest on a little app (actually, he did much of the back-end work and I did the front-end work). His copy isn't quite up and running yet, but I have my little miniature server running.
I don't have a big list of features, mostly because I don't quite remember everything. It's real time, NodeJS, Bootstrap, MongoDB, Coffeescript, Express, Modernizr, jQuery and SocketIO powered (big technical stack, but I figure it might as well be modern now because it's going to be old eventually). But it's in the name that it's meant to be more of a prototype (for instance, most things don't actually have persistence so whenever the server crashes or I push an update, all the rooms, scores and usernames get lost because it uses an in-memory data store, which also inherently makes it less scalable).
One of the cooler features of it is that not only does multiplayer work, but it also works offline (multiplayer doesn't work offline for obvious reasons). It uses HTML5's appcache to save a list of a random sample of 1000 questions locally so you can just bookmark the page and visit it without a connection. The layout's fully responsive which means it should work as well on mobile devices and tablets. The reader uses a syllable-counting algorithm so each word read takes an amount of time proportional to the number of syllables (which is a little bit of over-engineering, but whatever). There's purty animations everywhere. There are a few keyboard shortcuts, space is buzz, S, N and J all map to skip/next (I like J because it's on the home row and next/down for google reader), P and R are pause/resume, "/" (forward slash) and c map to chat. It also gives extra points for buzzes before asterisks, penalizes interrupts and standard stuff.
Questions are always randomized (usernames and room names are randomized by default too). No teams and no persistent (across rooms) scores, statistics or usernames. It's got a weird algorithm for checking answers (like really weird, it's counting levenshtein-damerau matches and I started working on one which did word stemming and excluding words already in the question as well, but quickly gave up) so it might be at times too pedantic and other times too lenient. And again, the server might crash at any moment sending everyone offline and losing track of everything. No search, no queries or command system. But for all its faults, it has a chat bot powered by data extracted from omegle (of all places) that you can access when you're offline by sending the chat message "I'm lonely".
I probably won't do many (if any) more updates to this project for a while, but Ben might launch his version to replace mine eventually (and I'll tell him to watch this thread or something). I haven't covered too much here, so if you notice anything useful that I've forgotten, feel free to post here or anywhere else tips and what not. It's using NodeJitsu, whatever free quota there is, so be kind to the server.
http://protobowl.com/hsquizbowl
Oh it turns out I actually did have a really big writeup laying around on github, feel free to read it if you have nothing else to do https://github.com/antimatter15/protobowl