34 comments

[ 3.3 ms ] story [ 81.2 ms ] thread
Myself and 2 friends built BreakBase with the goal of making the seemingly simple process of playing a board game on the Internet with friends as easy as it should be. Existing sites on the web are shockingly complex to find a way to play against people you already have means of contacting.

At the time of this writing, we’ve got 5 games: Checkers, Chess, Four-in-a-Row, Reversi and WordBase.

Features:

- Each ‘room’ has a unique url - share it via email, Facebook, Twitter, Google chat, or text message, it makes no difference to us. There’s no need to coordinate navigation to the same server, just to play a game. Just share the url.

- Play anonymously- you can play on our site without registering. If you want to, you can register to keep track of your records, get alerts when it’s your turn or something else interesting happens in your games.

- Real time updates. When your opponent makes a move / chats, you’ll see it right away without refreshing.

- Come back to your game later. If you register for an account, you can resume your game from a different device. Play from your phone, desktop, tablet, whatever. If you don't register, this doesn't work - we can't keep track of your games if we don't know who you are.

- No plugins required. BreakBase works on HTML5 / Javascript. No Flash / Java needed.

- WordBase supports up to 4 players.

- Get smart notifications via email or Twitter, and via the browser. Registered accounts only.

The stack:

- Main web app built on Pylons.

- Our Comet/push layer is built using Node.js, as the glue between ZeroMQ and Socket.io.

- We use MongoDB because it’s web scale.

The future: These are being actively worked on, and will be released in the near future:

- Planning more games. Currently considering Backgammon, War strategy games, or card games. Open (and eager) to suggestions

- Challenges. Challenge someone to a game directly from their profile.

- Mobile support. As of right now, you can make moves on Android / iOS devices by just going to breakbase.com in the browser, but we’d obviously like to provide a tailored experience for smaller screens.

What would it take to get you to use this on a regular basis?

IMO you should add an option to play a game with a random user. While I like playing every couple hours a la words with friends, it would be nice to be able to play with whomever is online right now...

and if you don't mind me asking, are you planning on monetizing it? there doesn't seem to be ads anywhere I've been

Ideally we'll build something to play random users. It just wasn't something we build out at first.

To answer about monetization, we have loose ideas. I'm really against pop up ads and awkward experiences that most sites tend to have around this. I've toyed with ideas such as premium accounts, or something like old Pandora that used to show one, integrated ad for the entire page.

Mostly though, we're waiting to see how people use the site. It's impossible to monetize something when you don't understand how people use it.

A chess website that I subscribe to is gameknot.com. The model that they use are some simple text and picture ads for free members. Optionally, you can pay about 40 a year for no ads and some additional features. They focus on chess exclusively and have some really nice features and a clean interface. Your real time updating sound like an improvement, though.
This looks very cool. I play a lot on http://iggamecenter.com, which has a zillion games, but is kinda clunky and does have the extra friction of requiring players to create an account first. What you've made is definitely better for the use-case of IMing someone a link to play.

However, if you add the ability to find other players on the site/play a random person, as has been suggested here, I think you may find that accounts being optional is a downside. Some people will make one move then leave, or just play very slowly and poorly. An account system where you can see stats on someone's past games helps avoid that un-fun situation.

The game I would most like to see you add is Hex. https://en.wikipedia.org/wiki/Hex_%28board_game%29 Maybe Dots and Boxes would be nice too as a casual game that can be played quickly, but has a bit of depth.

Ha, Hex was top on my list for games to create. I was leaving it open for other people to suggest. Glad I've got some support :)

Yes, anonymous accounts poses many challenges to things like that. Chances are, if/when we implement random opponents, you'll have to be registered (and your opponent would have to be registered as well).

If you register for an account, you can resume your game from a different device... we can't keep track of your games if we don't know who you are.

Why couldn't I just email myself a URL in the same way I was invited to a particular game in the first place? It might have to be a different URL (if you wanted to use the same invite for multiple players).

Maybe accounts are better overall, I don't know, the above just made them sound more required than they seem to me to be.

I think I should have made this more clear.

We track anonymous accounts through the browser session. You can play many games all with the same account, and you'll have a dashboard where you can flip between games just like registered accounts. We don't track your record, though.

However, if you close your browser (eliminating your session), your account becomes a dead end.

You couldn't just use the same URL because it will be a new session, and thus create a new account, which won't be the same account as the existing one (and thus, won't be able to make moves as the original account).

So, you'll be able to play games, but we won't be able to keep track of your games over different devices (specifically, different sessions).

How about you provide a way to generate an additional URL which would be associated with your own anonymous account rather than with an individual game? When this other URL is opened in a different browser (perhaps on a different device) you could associate that new session to the same anonymous account.

This way, if I know I'm about to terminate my browser session, or if I just want to move to a different device, I could do so without making an account.

The only problem is how to present this in the interface without confusing users and generating unnecessary clutter. I would probably put it near account creation options as an alternative.

> The only problem is how to present this in the interface without confusing users and generating unnecessary clutter.

Since what you want is literally no different than creating an account (except perhaps the existence of a password), why not just make an account? Rather than remember or store an "anonymous user URL," just choose a username and remember or store that. Allowing username creation without requiring a password is a great idea for something like this.

Very nice project, I would really love Go, been dying to play friendly games once in a while with friends but IGS and the other online corners are so unfriendly
I've been helping Brian play test this on and off. I love how low-friction and low-commitment it is. Especially in the age when everything requires a Facebook login. Really easy to just send a link to a friend over IM and play.
Hasbro is a little crazy about defending their copyrighted board and rules (including point values, board layout, letter distribution), etc., so if WordBase gets any serious traction expect to get a letter.
http://www.copyright.gov/fls/fl108.html

Copyright does not protect the idea for a game, its name or title, or the method or methods for playing it. Nor does copyright protect any idea, system, method, device, or trademark material involved in developing, merchandising, or playing a game. Once a game has been made public, nothing in the copyright law prevents others from developing another game based on similar principles. Copyright protects only the particular manner of an author’s expression in literary, artistic, or musical form.

That's nice and all, but didn't stop Hasbro from taking down Scrabulous: http://latimesblogs.latimes.com/technology/2008/07/scrabulou...

And didn't stop the Tetris Company from taking down Mino: http://www.wired.com/gamelife/2012/06/wireduk-tetris-clone/

IMO this is why Zynga's Words With Friends has a different board, different point values and different bonus squares...

"Scrabulous" the name is a pretty obvious ripoff of "Scrabble," so that's not really a great example. However, the Mino case is certainly very interesting.
The Scrabulous case alleged both trademark infringement (the obvious name ripoff) AND copyright infringement (the board and tile design).
Really enjoyable, thanks! My opponent had some bugs where he could place chess pieces on top of each other. And he was unable to move pieces that were in certain positions. He was on Chrome, Mac. Unsure if the game or the browser failed, I had no problems
Thanks for the feedback. Not sure about being able to drop pieces on top of each other.

Also, in chess, you can only move pieces that have available moves. For instance, if your knight is pinned, you'll be unable to move it.

If this continues, please let me know!

It looked like this http://i.imgur.com/8hPFB.png Pretty sure it was a Chrome bug, all is fine now in a new game using Opera
Thanks for the screenshot. I think this is a pretty rare bug that has something to do with the push layer stuff. We're looking into it to see if we can detect this a little smarter, especially as we move towards mobile experiences.

In the interim, if you see this, you should just be able to refresh and all will be good again.

Yes we played for a couple of hours and ran into a few similar situations where my opponent got his view out of sync. Refresh fixed it so no worries. Didn't know we could just F5 mid game ;)
This is cool, though it should be possible to create a cross-device URL for people who don't want to register. For example in chess, you'd generate two URLs, one for you and one for your opponent.

    http://breakbase.com/<game_id>/<opponent_1_id>/
    http://breakbase.com/<game_id>/<opponent_2_id>/
Also, are you using any pre-existing game engines, or did you write them from scratch?

Would love to see diplomacy on there.

You don't even need that, just a player2, 3, 4, or just use a session object.
They'd need to be kept secret, so other opponents couldn't easily see each others' game screens. It doesn't make much difference in chess, but in the word game, seeing other people's letters is cheating.

It would complicate the sharing a little, because as the initiator of the game, you shouldn't know what the other players' unique URL is. You'd need a workflow like this:

You create new game:

   Game URL: http://breakbase.com/<game_id>
   Your URL: http://breakbase.com/<game_id>/<your_unique_id>
You send the game URL to your friend. If there are available spaces, it creates a unique URL for them the first time they access the game:

   You send them: http://breakbase.com/<game_id>
   They're redirected to their unique URL: http://breakbase.com/<game_id>/<their_unique_id>
That way you haven't shared the unique ids with each other.
Thanks for the feedback.

We actually have something like that semi-implemented. They're called 'recall links', and they allow people to generate unique urls per game (secret) that allow a new session to take over an existing anonymous session.

If there's enough call for it, I'll finish out the implementation and launch it asap.

Also - I wrote all the engines from scratch.

I really like the execution of this. Similar to how join.me allows you to share your desktop session in a friction-less manner; this makes it easy to share multiuser game sessions.
In Checkers if you need to 'double-jump' I find in Chrome I have to refresh my browser to do this
Hmm, that hasn't been my experience. For a double jump, you should just be able to drop the first jump, and it should be your turn still, and you can (and are forced to) do the second jump.

Are there any more details you can provide so that I can start to debug this?

Edit: we've confirmed the bug. We're looking into a fix now. Thanks for the report.

Thanks for this! Was an interesting bug that would manifest itself when the push-layer reaches the client before the XHR request finishes.

All fixed now and will be deployed soon.

I sent a url to a friend with whom I usually play scrabble, and we started to play immediately. Great!

I would like to be able to play Spanish words without the game disallowing them (I think letter frequencies and scores in Spanish Scrabble are not very different from the English version). I'd love a "don't check words against a dictionary" option :)

Actually I've been thinking that multiplayer online games (e.g. card games) could allow players to enforce rules themselves. For Scrabble there could be a "object word" button, for instance. It would even allow players to cheat, when not getting caught. It would also be easier to implement .