Sunday, August 8, 2010

Lattice (Drop7 Clone In Ruby)

Drop7 is my current favorite game.

I used to get on the leaderboard with it every day.

It's best on the iPad, because of the bigger screen, but I recently sold my iPad to pay for my acting classes. Days later, through sheer coincidence, my iPhone died on me out of the blue. Then I made and sold a time management video, and made enough money to buy a new iPad and/or iPhone, but I decided not to, because I had already started coding a clone of Drop7, and I suspected that if I bought a machine that ran the real Drop7, I wouldn't finish my clone.

Unfortunately, I soon discovered Chain Factor, the original Flash version which Drop7 started life as. For days after I discovered Chain Factor, I didn't do any work on my Ruby clone.

I can't say I was surprised.

I got on the leaderboard immediately, and at one point, two of the top ten scores for basic mode daily were both mine. So, with my code-inspiring Drop7 starvation ended, I'm probably just going to make another video and buy a new iPad. Alternatively, I may put Chain Factor on a hosts-file ban and stick with it. Either way, I've open-sourced my Ruby clone, and any further dev I do on that will happen in public on GitHub.

I made the Ruby clone mainly to figure out how to build a JavaScript clone, but since the Ruby clone includes an actual command-line game, I'm going to show you a video of how to play it. But first check out this video of the real game, on the iPhone:

Here's my command-line clone.

As you can see the command-line version lacks the special effects of the iOS version. No shock there, I hope. I've also created a very basic Web UI:

However, this part of it is unfinished, and too unfinished to even open-source. The CSS, HTML, and colorization JavaScript are included as part of some example files in the testing directory (because some of the tests are difficult to visualize yet effortless to illustrate), but the Web version is unfinished and may remain so.

As much fun as I've had with this thing, I'm going to recommend that you just buy Drop7. However, if you want to play with this, the code is on GitHub.