It's really interesting to see what went into this before the competition. I'm on one of the other teams that'd doing pretty well in the voting (we built Drawbridge: <a href="http://team-hyphen.no.de/" rel="nofollow">http://team-hyphen.no.de/</a>), so it's especially interesting for me to see what other teams did.<p>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.)<p>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.<p>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?
Semi offtopic:<p>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).<p>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?
Really interesting and (should the authors read this) thanks a ton for sharing it. I am curious about one thing. I sort-of already know the answer, but will ask anyway: I saw in the post that you used Pusher for handling your realtime updates across clients (looks like a very cool service, btw). Isn't part of the strength of node.js and socket.io that things like push-based client/server apps are/should be trivial to implement without resorting to a third party service? If so, did you try? And do you know if other node knockout apps use pusher? (I assume that a: it saved a little time and b: was an easy way to get around Heroku's current connection limits, but want to know if there was more to it than that).
So far the only thing that I don't like about it is that I can't find the "edge" of the damn board to place a tile. I'd recommend adding a button that takes you to a spot with some available space on the edge of the board.
(Caveat: IANAL) He says in the article they're expecting a C&D from Hasbro, but I think the chances of that are less than they think. Games like "Words with Friends" and "Lexulous" haven't had many problems, and they are blatant rip offs with minor variations.
Insane use of tons of reusable parts. I was hoping he would go more into if he went comet or websocketd and the kind of latency people were seeing when hundreds of users were connected to node.js
No disrespect intended. The app looks fabulous, but the 48 hours limitation is not so bad if you have lots of time to prepare. For me the tough part about programming has been the architectural design and the research put into the tools and apis. Everything else is just typing. Having said all that the developers are still super talented to have pulled that off.
Aw, no 50 point bonus for using all 7? (<a href="http://skitch.com/dasil003/dw9q4/scrabb.ly-a-massively-multiplayer-online-crossword-puzzle" rel="nofollow">http://skitch.com/dasil003/dw9q4/scrabb.ly-a-massively-multi...</a>)
These kinds of events are insanely fun. We had a student-run 24 hour game programming competition at my school for the past three years. This year my grad school friends are finally making it a bit more legit, with a website and support from the school: <a href="http://osgcc.org/" rel="nofollow">http://osgcc.org/</a><p>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.<p>If you've never been to an event like this, you should.