Much as I'd love to win, Drawbridge isn't near the level of polish that Scrabb.ly and a few of the other top apps are, and I think a lack of preparation is the main culprit. We had a general idea of what we were going to build and how it was going to be designed, but we had to scramble several times to redesign and rearchitect essential components. (We did our server-side API design without accounting for the fact that we were going to be using websockets, completely overlooked the fact that we'd have to come up with an API for our DAO or anything on the client side, had to completely redo how variations and their UI worked, and had to come up with a homepage design all within the span of the competition.)
Still, it's been an incredibly fun ride. In the absolute worst case I built a tool I've been wanting for a long time but haven't been able to find the time to build. In the best case, other people find it useful too--having other people liking and using things I've built is one of my biggest motivators.
I've also learned a ton about making a successful app for one of these competitions. If I could do it again there are a lot of things I'd do differently. (Luckily, Rails Rumble is coming up, so I can!) I've been meaning to write up summary of what went right and what went wrong for us, and how we could improve. Would anyone else be interested if I turned it into a blog post?
Can anybody tell me about an appropriate data structure for computing Scrabble (or any crossword) short of full-out walking a 2d grid? I've read a bit about Tries and Directed Acyclic Word Graphs, but those seem to just be for optimizing dictionary matching, and don't seem to account at all for the actual structure of the board (especially not the possibility of colliding with other branches when adding new words).
I'm 90% certain it'll come back right back to needing a global and explicit a 2d grid when I try to build in a board with static score multipliers, but ignoring this for now and just trying to lay out letters: is there a masochistically-functional way to compute Scrabble/crosswords without working on an explicit 2d grid?
Plus, I've always had issues with multidimensional structures -- I can never quite settle on what's the most intuitive way to express them.
For server->client event triggering, PusherApp has got to be the easiest possible solution out there. Also had really nice documentation with a quick getting started example.
Most of all, it comes with a client library socket.io.js which has nice fallbacks for browsers that don't support websockets yet. I highly recommend it!
But you're right, once we change the name, url, and drop the Scrabble references, I think it should be fine going forward.
At least it's refreshing that there's not a complete sense of naïveté about it like Tris or Scrabulous had. The PR will only raise their profile and they have little to lose.
Man, who knew the Node Knockout would be this, I want to say, historic?! I've seen such great entries and am really impressed with the creativity and skills on display.
I supposed I may need to refresh to get the new app.js? (I still have the same game going).
Also, what about blanks not registering double/triple word scores?
We're primarily coders, so the design suffers a bit, but the line about "By the end of the third day, I was barely coherent enough to spell the swear words" made me smile.
If you've never been to an event like this, you should.