iOS Book Reviews: Professional iPhone and iPad Database Application Programming

Disclaimer: I do not generally read programming books from start to finish! Instead, I read them much as I would read a blog that I’ve discovered for the first time, skimming the archives (table of contents), and then taking-in the first few sentences of parts that look interesting to me, and bookmarking posts that I want to read in greater depth (dog-earing pages that deserve a second glance). I almost never go back for those second glances, so basically I have a bunch of programming books laying about that look like they’ve been heavily read, when in fact they’ve hardly been cracked. My excuse is that programming books are so seldom relevant past their publish date that keeping them for reference seems silly. If I’m paging through a book’s contents in search of some solution, it usually means I just don’t know the right search terms. When I find some pages that seem relevant, I then turn to the web with my newfound knowledge, and feel vindicated when I find some piece of web-content that appears (at least at first glance) to be superior and more timely.

I do still tend to keep those books around, however, mostly so I can look through their code examples. I find books that consist of mostly code are almost always more interesting than those that try and teach you some general topic. You can usually find nice code examples on the web, of course, but they are seldom explained in as much detail as you would find in one of these “by example” books. In this case, I have in front of me two books that both attempt to teach some topic, but do so with heavy use of examples. They are hybrids, if you will, of books that teach a general topic, and books that consist of mostly code examples. Maybe all programming books exist on a spectrum with pure thought and abstract theory at one end, and pure code (and more easily out-of-date examples) on the other.

Professional iPhone and iPad Database Application ProgrammingThe first of these is Professional iPhone and iPad Database Application Programming, by Patrick Alessi, published by Wiley (Wrox) in 2011. With chapter titles like “Introducing Data-Driven Applications”, “The iPhone and iPad Database: SQLite”, “Displaying Your Data: The UITableView”, and “iPad Interface Elements”, you would definitely not know at first glance that this is an example-driven book. In fact, each of those sections (and all the other sections of the book) run you through the creation of a sample project, each building on knowledge gleaned in the previous chapters. The first chapter includes a very nice introduction to Xcode and shows you how to create a simple UITableView based application.

The following chapter, “The iPhone and iPad Database: SQLite”, goes a bit farther down the UITableView rabbit hole with its sample project, and introduces SQLite besides. This chapter definitely endeared me to the author when it said: “While Core Data is the recommended framework for creating data on the iPhone, you may want to forego Core Data and use the SQLite API directly for several reasons.” The author then lists several compelling reasons! This may be a heretical position to take, but avoiding Core Data has always been my preference, although I do occasionally wonder if there are ever good reasons to use Core Data of which I am simply ignorant.

The author does later dedicate five chapters (about a third of the book) to using Core Data, so he can’t think it’s entirely useless. He does not, IMHO, (at least in the cursory skimming I gave that portion of the book), provide any compelling reasons to use Core Data. The closest he comes is when he says (repeatedly) that using the graphical data modeling tool will dramatically speed up the development time of your data driven app. I fail to see how this is the case! If creating your db schema is taking up a lot of your development time, I think you’re probably doing something wrong, or possibly you just aren’t familiar with SQL in general.

(A decent db abstraction layer to handle your SELECT, INSERT, UPDATE etc. calls is also a must, and I am disappointed to report that Alessi’s book does not cover this topic. There is at least one decent open source wrapper available (called FMDB), although there are things I would change about it — namely the API for retrieving your result sets.)

Unfortunately, the portions of the book dedicated to the Core Data modeling tool fall into the “already obsolete” category of coding examples, because they do not appear to cover the Xcode 4 interface. I created a sample project using Core Data to look at the modeling tool, and like Interface Builder, it has been consumed by the “one window” paradigm prevalent in all things Xcode 4. Reading the first couple of chapters on Core Data will probably give you the base knowledge needed to use it anyway, but as I said earlier, google can probably do a better job.

The last third of the book consists of a couple of chapters about integration with web services. This topic makes a lot of sense to include in a book about data-driven applications, but it’s definitely given less attention than the previous two sections. I really think the book should have been expanded quite a bit, both to go into more detail about the stuff it does cover, and also to cover additional stuff that was notably absent. Off the top of my head, here are headings I would have liked to see: best practices for storing data retrieved from web services, how to deal with syncing issues, common tools for consuming web services, and at least one code example for parsing and consuming JSON. Unfortunately, JSON is given only a cursory mention, and its superiority to XML for the task at hand is not, as I feel it it should have been, firmly established.

In the beginning of chapter 10, “Working with XML on the iPhone”, there is a section called Synchronous Data Retrieval, in which some lip service is given to NSString‘s stringWithContentsOfURL: selector blocking your UI, but then it is not made clear that the subsequent code examples (using NSURL and NSURLRequest) are asynchronous in nature! Also, on the topic of “common tools”, the book pretty much writes everything from scratch in this section. I can understand the impulse that the author may have had to explain all the gory details of xml parsing and NSURLRequests without complicating matters by introducing open source libraries that simplify these processes, but they save far more time than I’m liable to believe you can save by using Core Data. If you are consuming web services from your app, you would be stupid not to use (or at least look at) ASIHTTPRequest. That little project has probably saved me dozens of hours in the last three months. On the subject of XML parsing, the question is not whether you should use an external parser, but rather which XML parser is right for your needs!

Overall, I didn’t expect to read as much of Professional iPhone and iPad Database Application Programming in detail as I ended up reading for this review. I don’t know how much of that was due to wanting to give it a fair read in spite of my bias against using Core Data, and how much was due to the author’s really well written prose. Database applications is about as dry a subject as they come, and yet I never felt lulled to sleep in the way that many programming books have a tendency to do to me. If you are not familiar with SQLite, or programming for UITableView, I would definitely highly recommend the first four chapters of the book. As for whether they are worth the asking price, (currently $30 on amazon), I’ll leave that up to you.

Unfortunately, I think I’m going to have to leave any in-depth review of my second learn-by-example iOS book for another day: Learning iOS Game Programming: A Hands-On Guide to Building your First iPhone Game, by Michael Daley, published by Addison Wesley in 2011. This book takes you through the author’s process of building an iOS game from start to finish. The game you build, Sir Lamorak’s Quest, is available as a free download from the app store, so you could potentially download it and see if it’s got stuff in it you’d like to know about. I haven’t actually looked at the game for more than a minute or two, but I know from personal experience that parsing through the source code of a game, even one I have no interest in ever making, is always fascinating to me, so I’m quite excited to dig into this book.

Sifteo: A new kind of board game

In the future, the ostensible purpose of this blog (the intersection of board games and computer games) will be a moot point. All board games will have some kind of computer component, and those that don’t will not have one as an aesthetic choice, rather than because it’s prohibitively expensive, or because the interface doesn’t exist, or for the myriad of other reasons today’s board games do not have a computer component. In the mean time, there will be more and more devices that bridge the gap, becoming essentially computers on which you can play board games (the iPad, for example), or board games on which you play video games. I would argue that Sifteo is the first in the latter category of devices.

A brief introduction

If you haven’t heard of sifteo yet, it’s a small company formed by a couple of guys who met at the MIT Media Lab. The term Sifteo refers to both the company and their product, small-ish square tiles (a little over 1.5 inches on a side), which may also be referred to as Sifteo cubes. The cubes (though not technically cubes they are not as tall as they are wide), have a low resolution screen on the top, and contain a bevy of sensors that can detect motion, orientation, and most importantly, their close proximity to the other cubes. Essentially, the important game mechanic here is that you can touch the sides of two cubes together, and the game will “know” that they are touching, and on which sides they are touching. (I believe magnets are used for this.)

I should say up front that Sifteo cubes haven’t even been released to the general public yet. Those of us who have them are essentially part of Sifteo’s beta program. They’re calling it “Early Access”. Essentially, they sold some cubes (probably 1,000 sets of 3) to folks during CES, which was a sort of preview launch. They sold them online, which is how I got a set, even though I didn’t go to CES this year.

My impressions: the short version

Overall, my impression that there is A LOT of potential in these little cubes. Sifteo has a great product on their hands, but unfortunately, I don’t think it’s going to be a hit product without some notable modifications. I hope (and it seems probable) that Sifteo will have the chance (and wherewithal) to fix some of these issues in subsequent versions of their product. If they do, this could easily be very big, and Sifteo has the potential to compete with other hand-held gaming systems like the DS or PSP. The cubes themselves are pretty great, but have some notable limitations (see my detailed beefs below). The overall product, unfortunately, requires a computer to be running custom software (called Siftrunner) while you play, and a wifi dongle to communicate with the cubes. The software then pushes out whatever game you’ve chosen to play to the cubes. The game choices are pretty limited right now, and unfortunately, mostly fairly mediocre. I’ll go into more of the software in detail below, but the one game they chose to include in your purchase price is called Chroma Shuffle, and is actually really great. It manages to show off many of the device capabilities really well, and had me sucked-in for hours the night I finally got my cubes up and running.

Summary of my summary: not great, but enormous potential.

My complaints

This is a new technology, so I tend to naturally get more excited about it as a result. That having been said, I found a lot to complain about with these cubes.

Viewing angle. First thing first, the viewing angle on the cube screens is not great. In fact, by not great, I mean downright bad. As with cheap cell phones and other screens of this low resolution, when the angle is off, the colors are off, and in a game like Chroma Shuffle, where you are matching colors, it can get really frustrating. This is “enhanced” by the fact that you’re constantly moving the cubes around, and while you move them around, you might end up moving one farther away than the others (thus changing your viewing angle).

Color consistency. Very closely related to my previous complaint, the color on all my cubes even under the best viewing circumstances is actually not exactly the same. One cube is slightly “dimmer” than the others, and while it wouldn’t normally matter all that much, this type of quality difference is frustrating while playing a game where you’re intensely matching colors.

You have to have Siftrunner running. This was probably a calculated risk on the part of the Sifteo. I have read someone elsewhere say that it takes Sifteo out of the realm of a mass consumer product (suitable for Target and Walmart) and into the realm of a “geek” product (suitable for Think Geek, or maybe Game Stop). It’s definitely something you probably wouldn’t buy unless you are already comfortable with gaming on your computer. Don’t get me wrong, that’s still a giant market, but Sifteo cubes are really aimed (in their marketing so far anyway, but also in the games they’ve produced) at the casual gamer market. I think Siftrunner was designed pretty well, and it’s dead-easy to install, but you still have to have it running to play. Ideally, we would see an iOS version of Siftrunner (and fine, yes, Android also), and we would get rid of the required USB dongle. The iOS version is likely (if I had to guess, which I do), but to get rid of the USB dongle, they’d have to release a second version of the hardware, I think. So that seems a lot less likely, at least in the near future. (It’s also possible the dongle is seen as a “security feature”, as we don’t get a chance to packet sniff their traffic to the cubes when it’s going through their custom USB thingamabob.)

Graphics are old school… really old school. The graphics for all the games I’ve played so far consist of VERY simple animations. I don’t know what we’re going to see in the future, but for now at least, I have to assume that the hardware is simply not capable of very much in the way of animation. It would have been really nice to see some 3D graphics (maybe a bouncing a 3d-looking ball around the cubes or something), just to prove that it can be done. Without a tech demo of that kind, I sort of have to assume we’re limited to simple 2D animations, and that really just seems like a missed opportunity.

The current game selection. This will no doubt change in the very near future (Sifteo has said on their Early Access forums that they intend to release a new game at least one every two weeks.), but the game selection right now seems aimed about 70% at children under 12. Even Chroma Shuffle, the game I most enjoy, is pretty simplistic. (I’ll let this segue into more about all the games below.)

The games

The games are purchasable from right inside Siftrunner. They range in price from free (what they call “lab” games,) to $8 (800 points) for what are presumably the best experiences Sifteo has to offer. You don’t spend money directly on games, you first buy points, and right now you can buy points in $5 increments. There are really only three games in the store at the $8 price range, Chroma Shuffle (although, again, this came with the purchase price for us Early Access folks), Booker the Penguin, and Mount Braniac. I haven’t purchased Mount Brainiac, but the description is as follows:

Mount Brainiac is a suite of games that will help children practice their spelling and math skills. With six different exercises for kids aged 5-8, Mount Brainiac gets more challenging as children get older. Exercise your mental muscles and climb the mountain!

I’ll probably purchase this game sooner or later just to check it out, but it doesn’t exactly sound like something I would play over and over again. I’m not the target audience. (And it’ll be another 5 years before my daughter is the recommended 6 years of age.)

I have already spoken briefly a bit about Chroma Shuffle, but I’ll go into a bit more detail now. Essentially, it’s a matching tile puzzle game similar to a match-3, but more in the vein of the Collapse! series of games. Each tile holds a 4×4 grid of circles. There might be several different colors of circle on each tile. You then have to match tile edges together in order to match colors along the edge of the tiles. When two colors match, those circles are removed, and then subsequently any additional circles matching that color adjacent to the original matching circles. The more circles in the group that is matched, the more points you get for removing them. You can match circles on more than two tiles at once by pushing them together at the same time. It seems like there is some “slop” in this matching, so it’s fairly easy to match a group on all three tiles.

The core game mechanic of looking for matching edges of the tiles is pretty fun, and the logical/thinking aspect of the game is enhanced by allowing you to tilt the tiles and shift all the circles toward the downward facing edge. When you get to the higher levels, there are circles outlined in a square that cannot be shifted in this way, and that’s when things really get interesting.

Chroma Shuffle has two basic game modes, Puzzle and Arcade. You start off only playing puzzle, and it introduces you to the game concepts by spoon feeding you them in a few tutorial puzzles. You never really feel spoon fed, however, and the game’s pace increases until the puzzles do actually get pretty decently difficult. Unfortunately, that’s probably not until around puzzle number 20, and there are only 26 puzzles in total. There is also a random puzzle mode, and that actually generates random puzzles.

Arcade mode consists of either Timer or Flips mode. In Arcade, you essentially match all the circles in a tile, and then flip it over to refill it with more colors. The longer you play, the more colors appear and the harder it is to not get “stuck” with a square piece in the middle of the tile (away from the edges where you could match it easily). Timed ends when you haven’t made a match after a certain length of time, and Flips ends when you’ve flipped each of the tiles three times (without clearing them first). I’ve only played Flips once, and my game took probably an hour to finish. I didn’t want to stop playing because I didn’t know if my game would be saved when I did. I should experiment with that to find out what happens when you “stop” Siftrunner when you have a game in progress.

The third game at the $8 price range is called Booker the Penguin. This is a very simple action game where you’re in control of a penguin character that is essentially running through a 2D maze made of roads. Each of the tiles that doesn’t have the penguin on it shows the shape of a road. When one of those tiles is placed next to the tile with Booker on it, Booker will run toward that tile, and it becomes the new tile to put your other tiles up against. There is an Adventure mode here that gets progressively harder, where in the first few levels you are just running around collecting eggs, and then eventually they introduce an owlbear that is trying to eat you. The hardest part about the owlbear is not so much that you have a shorter time in which to make decisions about which tile to play, but actually that you are limited in the direction in which you can move. If you accidentally go back, the owlbear is there waiting to eat you. It really limits your options, which is good, because the game definitely feels “too easy” in the beginning. I probably haven’t played it enough yet, because I haven’t played through the purported 11 levels of Adventure Mode. There is also an Endless mode, which I have yet to try, and a mode where you play as the owlbear, trying to eat all the little penguins.

As I said, I still need to give a bit more time to Booker before I make a final judgement, but my initial impressions were just that it was too simple to be that much fun. Later levels add some complexity, but I’m not feeling it yet.

The next pricing tier of games consists of a single kid’s story game for $4 called Oogor’s day. I haven’t picked it up yet, but here’s the (intriguing) description:

Oogor’s Day is a storytelling game that lets you do more than just choose the course of the adventure – it lets you control it directly. Use your Sifteo cubes to bring characters to life and have them interact with each other. Your actions will influence the flow of the story. How will Oogor’s day go? It’s all up to you.

After Oogor’s day, there are a few games/apps for a dollar. A tile shuffling game called No Evil Monkeys, (think of the picture puzzles where you have to re-arrange a puzzle by sliding tiles into the empty spot on the board), a simon-says style speed/reaction game called Do the Sift, and a word game called Word Play. No Evil Monkeys is made more difficult because you can easily get frustratingly lost with all three tiles involved. Orientation is also a factor, and some of the quadrants of the images are actually ambiguous as to which orientation is the right one.

Do the Sift runs you through ten repetitions/turns where it tells you what you need to do to advance to the next turn. It might be flipping the tile over, or just tilting it a bit, shaking it, making sure all the tiles are touching, or any number of other things. I think this is another fun game that shows off the device capabilities pretty well. I’m fairly certain it was designed to do just that. My main complaint is that it (again) doesn’t really get difficult fast enough. The first 10 levels are fairly slow, and each subsequent 10 levels speeds the game up slightly, although it doesn’t appear to get more difficult in terms of what actions you’re asked to perform or anything like that.

Finally, I haven’t purchased Word Play, so I can’t really speak to it, but the description doesn’t really inspire me:

Word Play is the definitive word game for Sifteo cubes. Arrange your cubes to spell as many words as possible in the time given. Play Explore mode to practice, or Score mode to go after the high score. Challenge your friends and expand your vocabulary!

I play a lot of word games, and yet another one where you’re just seeing what words you can make with a combination of letters doesn’t seem all that innovative or appealing. Just because it’s a new platform doesn’t mean you should re-write a game that’s been done to death already.

Conclusion

The jury is still out! I absolutely love the concept, and really want Sifteo cubes to be successful, but as you have just read, I think the current implementation has a lot of problems. None of these are overwhelming problems, but when summed together, the product doesn’t feel ready yet. A few more games of Chroma Shuffle’s caliber, and it might feel “good enough” to launch, but I’m glad this is an “Early Access”, and not the final product.

When I first heard about Sifteo, just before the CES pre-order, I read on some forum somewhere about another company with a very similar product in Europe. After trying various google searches for the last hour, I haven’t been able to find reference to that other company in the avalanche of Sifteo press. This is both a good thing (yay Sifteo!) but also a bad thing, because I’d like to see some competition in this space to liven things up. I do believe this is one of those “this is the future” moments. If Sifteo plays their cards right, they could be the next big tabletop gaming phenomena.

Game Center Match-3 Mania!

Game Center games are starting to pour in, and today I stumbled onto the (true**) first Match-3 game I’d seen, (although I don’t think it was the first one on there), called GeoBlocks. I’m going to talk about that, and then I’ll also talk about the second match-3 game I played with Game Center integration, Squaree, and I will actually go so far as to say that Squaree is my new favorite Match-3 game! As of this writing, both GeoBlocks and Squaree are FREE in the app store, so get ’em while they’re hot.

I played GeoBlocks for quite a while, trying to get the next achievement. It’s a pretty standard match-3, with level progression based on the number of matches you’ve gotten in all the colors. In fact, that’s one of the only really interesting aspects of the game… to score really big, you actually want to try NOT to progress, so you can rack up points before the timer (white line at the bottom of the screen) gets going so fast that you don’t have time to think before you match.

I made a note to myself to add GeoBlocks to my spreadsheet listing Match-3 games for the iPhone, and I actually went one step further than that, and added a column indicating whether the game has Game Center integration. I suppose now that I’ve done that, I should really add another column for OpenFeint. Maybe I’ll do that some other time and actually go through all the games listed to see which have which features.

So then I went looking to see if there were other Match-3 games with Game Center, and I found Jewel Craft in the featured list. I wasn’t about to shell out $3 for another Match-3 game though, (especially when I just played a perfectly decent one for free). That got me thinking about what other free Game Center games there might be out there, so I searched App Shopper for “game center”, and sorted by price. That was when I found Squaree.

Squaree doesn’t really look like much, and (as is common when I go app shopping) at first I didn’t even play it, just downloaded it to check out later. But I soon grew tired of scanning through all the crap in that AppShopper search, and Squaree was either the first or second app I opened up to check out.

It’s match-3, definitely, but the way you get your squares is pretty unique. There is a board with a whole bunch of grayed out pieces. Tapping a piece causes un-gray, and for it to fall all the way to the bottom of the board (or until it hits another solid piece). Get three of the same color to match, and two of them disappear, but the third turns into a “locked” piece. Match four pieces and you get a X2 piece remaining, and if you match 5, you get a piece that, when matched, removes all solid pieces of that color from the gameboard.

This is pretty much all you need to know to get started playing Squaree. It’s simple, yes, but I had a lot of fun with it, and I’ll definitely be playing more of it in the next few days. There are two game modes, but only the “Challenge” mode has a high score list. That list is extremely short right now, and I’m hoping to make it to the top with some practice in the next few days. My only disappointment was finding out that there aren’t any Achievements. I wish I could add yet to the end of that statement. :)

**Note that both Azkend and Dice Match had Game Center the day after its launch. They are both solidly in the Match-3 category, but neither has the swap-to-remove mechanic. Both are the kind where the matches already exist and you have to choose which one to remove. (Think Same Game rather than Bejeweled, but you have to touch all the pieces you want to remove.) It would be interesting to write another post comparing and contrasting those two games, but I’m pretty much done for the evening.

New header and Chesstris.com tagline

Today marks the re-launch of Chesstris.com. I had a bit of a revelation in the car the other day, and realized that both the video games I’ve designed and actually completed are hybrid video games mashed-up with board games. This is a mixture that I wholeheartedly endorse and enjoy, and it’s one that I realized that the name “Chesstris” could also be imagined to embody. Anyway, it’s what I will now endeavor to spend more time examining here.

Chesstris, where board games and video games collide.

To kick off this new era for the site, I thought I’d start with a review of one of the most worthy board games I’ve seen converted to a video game for the iPhone, Carcassonne.

Sure, the Carcassonne app, for iOS has only been around since the beginning of June, but we’ve actually been playing Carcassonne the board game for years in my house. Literally, I’ve been playing Carcassonne longer than I’ve known my wife Florence, which, while it hasn’t actually been that long, feels like pretty much forever. (Not in a bad way, I swear!) I have a bunch of the expansions, and I keep them all together in the special edition wooden box that came with Carcassonne, The City. (The City is actually a stand-alone game, with pieces that are incompatible with the original game. This is the number one reason it is relegated to the closet while we keep the standard game and all its compatible expansions in the living room with the “often played” games.) Anyway, I bought Carcassonne for the iPhone as soon as I heard it was out, and straight away convinced Florence and our friend Angela to play a game with me on the iPad.

Right away I was pretty impressed about how the game didn’t look pixel doubled on the iPad in 2X mode. I was also impressed by what I didn’t experience — frustration with the UI. The User Experience on Carcassonne is pretty darn close to perfect. When you sit down to start listing out the features of this great app, you actually start to get a little overwhelmed with how great it is. It’s no wonder it took a year to make, really. (Incidentally, if you’re a fan of the game, that podcast is well worth a listen, especially if you’re an iOS developer.)
1) They implemented pretty much every kind of multiplayer possible. Pass-and-play on the same device, multi-device on Wifi or bluetooth local networks, internet play with no time limit, and internet play with 60 seconds per turn. There is an invitation system for playing against friends who also have the app, or you can play against random opponents.
2) They built in 6 or 8 different kinds of AI (I forget which), for playing local games on the device.
3) You have a persistent ELO stored, both on your device for local/solo games, and another two — one on the server against friends, and another for playing against those random opponents. Keep in mind, AFAIK, there was no concept of ELO for Carcassonne before this app. (Not to say it didn’t exist, but I didn’t know about it.)
4) Push notifications let you know when it’s your turn to play. This has since become a feature requirement if I make a turn-based iPhone app in the future.
5) This feature, while it may not sound like much, is one of those little details that makes a game feel incredibly highly polished. They could easily have left this out, but I feel certain this was one of those features that someone really felt they had to get in there, and it really adds a lot, in my opinion: On the screen that lists your in-progress games, there is a thumbnail representing the shape of the tiles for that game. This basically “personalizes” each game, and makes the list of games you’re playing feel that much more unique.
6) Can’t forget, there is an entirely new game mode invented for the iPhone app that allows you to play solo against the game, while simultaneously giving you a score at the end that you can compare to everyone else’s score for that particular solo game. (There is one unique set of tiles released each week, or you can play a random set.)

I’m sure there are more features I’m forgetting, but it’s worth mentioning that the game play screen itself is just an amazing piece of touch-based software engineering. It’s got all the standard pinch-and-zoom stuff, and for all the information it’s cramming onto the screen, doesn’t feel cluttered or busy at all.

With no limit that I’ve seen on the number of games you can play, we’ve got about six friends and every permutation of games going. I have a game with Florence and Angela, along with a game with just Angela, and one with just Florence. Then there’s a game with Florence and Angela and Mike, along with a game with just Mike, and of course a game with Mike, Angela, and me, and Mike, Florence and me. You get the idea. I’ll spare you my spelling-out how this scales to include Nate, Roo and Sebastian.

Overall, I have gotten so much more than $5 worth of pleasure out of this app that it’s not even funny. I play Carcassonne on my iPhone as much as, and sometimes more than, I use the Mail app (which I do daily, btw). Carcassonne is not really a hybrid board game / video game, but it’s such a great conversion of one to the other that it’s definitely worth reviewing here. We really enjoy it a lot, and hope you do too!

Master of Tetris

Here is a screenshot of an intriguing new tetris-variant in the app store, Master of Blocks, by Tuomas Pelkonen. I’ve had a chance to try it out, and you don’t get complete cart blanch to drop any old blocks willy-nilly, you basically have to pick from the blocks available, and once you’ve chosen one, you can’t pick that one again until all the others have been chosen. There is also a button to delete a single square that has already been placed.

Probably the most interesting feature of this game is that it supports bluetooth multiplayer, so you can play a head-to-head mode where you choose the blocks for your opponent while they play Tetris, and then they choose the blocks for you. I was confused at first because I didn’t know it was going to switch, and we both had the same score. It might have been hard to balance, but I could have imagined you both getting points for different things while you play that mode, so you didn’t have to play two rounds to figure out who won. My wife and I actually played cooperatively for a while, which was more fun than it probably sounds like it would be. Again, because you can’t give them just whatever pieces you feel like, there is some strategy involved, and furthermore, using the delete-a-square button for good rather than evil was almost as satisfying.

I imagine the game to have been inspired by the College Humor video The Tetris God (which if you haven’t seen it is well worth the watch), in which a merciless god controls the falling of Tetris blocks.

Random tetris linkdump:

  • There was a 4-story tall Tetris game set up at burning man back in 2008. I wish I’d been there to see it, and wonder where it ended up after the event.
  • This screenshot someone took of a tiny tetris called Tetoris (via offworld) is pretty enough that if it were larger I would consider making it my desktop. The game itself reminds me a bit of the slow pace of Sequoia Touch, which has given me renewed pleasure in 2x mode on my iPad.
  • It’s over a year old, but this Tetris bento box looks quite tasty.

HateTRIS

Hatetris is a Tetris variant that chooses the worst piece possible and makes you play it. (Via jttiki, but ultimately via BoingBoing.)

I have a lot of respect for the author, Sam Hughes, as he claims he wrote Hatetris in JavaScript because he feared and/or despised it. I also despise JavaScript, but not so much that I want to write Tetris in it. (And anyways, I already wrote Tetris in ActionScript, which sucks as bad or worse than JavaScript. Hughes’ code is much prettier than mine, I looked.)

Philosophical statements aside, Hateris actually succeeds as a game for several reasons. One is that, because the game is not random, getting even one more line than on a previous attempt requires you to try a different tactic, or approach the game with a different strategy. It’s clear that Hughes knows he’s onto something there, because he’s implemented the ability to replay previous games. It’s quite fascinating to watch the current record (22 lines), and analyze the tactics used.

Following various comment threads on Hatetris, I also discovered that there was previously a similar variant called Bastet (bastard tetris–desktop only), and also that there is not just one, but two playable versions of Randall Munroe’s vision of hell.

Update: One of the playable versions of hell links was broken, so it was removed on May 5th, 2017. Thanks to a reader for pointing that out!

More Juggling iPhone apps

Just downloaded a few juggling related iPhone apps.

Kevin Bertman pointed out his recently released iJuggling application in the comments on my last juggling related post. It’s available in the app store now, and I checked it out. My first complaint is that there are no instructions whatsoever. I started playing the game by selecting the “challenge” menu item (the menu was also confusing, but cool once I played with it a bit–all the menu items are placed on one face of a ball with four faces, so you have to rotate it to see all the menu items). Once in the game, 3 balls fell from the top of the screen into two hands awaiting below. Underneath the hands are a couple of circles that I intuitively (and correctly) assumed were to control the hands.

Then I played around for a while, and accidentally threw a ball or two, but I really had no idea what I was doing. The act of throwing a ball seemed so simple, just flick the hand upwards, right? But that’s not how you do it. I went back to the menu thinking maybe if I rotated the ball enough there would be an “instructions” menu item (but there’s not). The closest is a “Setup” that took me to a confusing screen with the same hands as before, but also with some bars above them and Xes that I could move around. I’ll spare you another description of my frustration here, but eventually I figured out that the Xes are a “target area” where you drag the hands in order to throw a ball. The throwing motion is automatic. You just have to take your finger (or thumb) off the target area and the hand will automatically throw. I spent a good ten minutes figuring this out. (Note that the target area isn’t indicated at all on the playing screen, just the setup screen.)

Once I’d established more or less how to throw a ball, getting three of them in the air at once was fairly easy. Catching them and keeping them aloft was a bit more difficult, but I still got the hang of it pretty quick. When I made enough throws, an arrow indicating I could move on to the next level became available. I had A LOT more difficulty with the second level, and now I think I know why. Remember those bars above the hands on the setup screen? They indicate how high the balls will get thrown. On the second level, the bars are much lower, making the throws faster with less time between them. How do I know this? Only because I finally navigated to the “Stats” menu item, which shows you your high scores for each level you’ve played. The level itself is indicated by a small graphic representing the setup screen for that level. The bars are lower on the second level than the first. The third level was 5 balls. Definitely a lot harder than the first or second, but I’ll admit that I only played with it for a few minutes before putting it down to write this review.

iJuggling looks very slick. The graphics aren’t amazing, but they’re good, and there are some nice touches that indicate to me that there was a lot of thought put into them. The hand grab points fade out once you touch them, for example, and the arrow pointing to the next level fills up as you get close to achieving the next level. There is some sound, indicating when a throw and/or catch has been made. It’s simple, but again, doesn’t detract from the experience. The most frustrating thing was in figuring out how to play, and after that the difficulty. I like a good challenge though, and I will definitely play with this again.

One additional note/downer: In iTunes, and on its website iJuggling is billed as the first realistic juggling simulator on the iPhone. While it’s fun, and definitely a juggling game, (a unique one, at that, I think), it definitely wasn’t the first. I thought about also debating whether it’s a simulator, but that’s… well, debatable.

After playing with iJuggling, I searched the app store for juggle, as I indicated in that last post I was going to eventually do. I’ll mention the highlights of what I found here:

JuggleFit Tracker is a free utility that allows you to track your progress (a number and a date) associated with a juggling pattern. You can then allow it to tweet your progress if you like. There are quite a few arbitrary limitations (it only stores 5 progress rows for each pattern–it would have been much cooler to store them all, and maybe graph them over time, for example). But if you’re interested in tracking your juggling, this might be a good place to start. Another nice feature are the “tips” for beginning jugglers. I imagine those are quite useful. And hell, it’s free, so this is probably worth checking out if you’re a regular juggler.

Cat Juggling, while the name and idea are enticing, is not so much a juggling game at all. It’s more one of those games where you have to bounce things in the air. You have two hands to bounce with. So it’s juggling themed. The graphics are really “cute” (I’m sure that’s what they were going for), and I was surprisingly “into” the silly (and repetitive) music track. Also, you get 9 lives, which is funny. There’s not a lot of depth, though it does save some high scores. Probably worth getting for the idea alone, but if you’re not into that, don’t bother.

iCircus – the Juggler actually uses a control scheme the closest (of all these apps) to the juggling game I originally intended to create. The unfortunate thing is that it’s way too hard to control. Like iJuggling, the “catch point” is represented by a hand and offset from the “touch point”, or point your finger touches to control the hand. Unlike iJuggling, the touch point is not shown, and this is a much smaller hand, (the graphic also includes an arm, but it’s not clear how much of the arm can be used to catch, so that’s a hindrance rather than useful).

iCircus – the Juggler also adds breakout-style “stars” that you are trying to throw your balls into while “juggling”. This is actually its saving grace, and the only thing that (probably) makes it worth your $.99. As your ball (you start with only one) passes through the stars, they are collected, and when you get them all, the level is complete. The second level adds a second ball of a second color, and stars are only collected by balls of the same color.

All in all, this makes for some very interesting possibilities, but I found the game almost unplayable with the existing control scheme. I only got to the third level, and only then because the game appeared to take pity on me and allow me to progress without collecting all the stars for the second level.

Polyball also comes up in the app store when you search for juggling. It’s a space themed game similar in gameplay to Cat Juggling, but it has a bit more depth to it (including Open Feint achievements and particle effects). I actually already had this game on my phone because it went down to free back in December, and I had yet to play it. It’s okay if you like that sort of game. A lot like Uggles, which has similar gameplay and depth. (Note that Uggles also comes up when you search for juggling, and it’s about as much juggling as this is. That is to say… kinda sorta maybe to someone who has never juggled before. It’s been widely reviewed, and is probably way more successful than any of these other games, so I’m not giving it its own section.)

There were some other apps in the app store that had juggling in their titles, Cannonball Juggling, Juggle Gears, Juggle Pong, GolfBall Juggle, Picsaw Juggle, but none of them were really juggling. (Or they were that other soccer meaning of the word juggle.) This concludes my informal survey of the state of juggling apps in the app store. Enjoy!

Awesome and new-to-me Internet Tetris variants

First Person Tetris has clearly been making the rounds. (I’ve had three separate people tell me about it in the last week.) Basically, the whole screen rotates and moves while the current piece remains stationary in the center of the screen. I was actually surprised at how easy this was to play, intuitive even. Ultimately though, it’s still Tetris, with nothing terribly different about it, so it’s probably got a fairly limited replay value.

Tuper Tario Tros is tetris meets mario bros. You can also find it on Kongregate. From the developer’s description:

We were playing some Xbox Live games during lunchtime. Guillaume was really excited about “Lucidity” and the idea of playing a “Tetris platform” game… but he finally felt disapointed by the concept.

So, Guillaume decided to create a little Tetris plateformer for fun. William came with the idea to mix up Tetris with another well know game: Super Mario Bros.

This is interesting to me, because I also tried out (and was a tad bit disappointed with) the much hyped Lucidity. It’s definitely very pretty, but the gameplay just felt a bit lacking. Anyway, Tuper Tario Tros is a novel idea. You are basically just playing standard Mario Bros, but then a popup tells you you can switch into tetris mode by hitting the space bar. Then it’s up to you to build the 2d platforms for Mario to traverse using Tetris pieces. Eventually you reach the end of the level, and the gameplay switches to another mode entirely. Those folks at SwingSwing Submarine did a great job of creating not one but two new and interesting gameplay types out of it. The first part is relatively short, so I’d recommend sticking with it until you finish it so you see the second one. Good stuff.

3D Stereogram Tetris has probably been around the longest of these three. When I sent it out at work, one of my coworkers said she’d been playing it for years. It’s exactly like a Stereogram image, where you have to cross your eyes correctly to see the game, and I found out that gives me a headache after a very short amount of time. I only recently discovered this painful Tetris variant a few months back, and it deserves a place on any list of Tetris variants, for novelty alone.

It bears mentioning that Wikipedia has a nice page listing many official Tetris Variants, (I may have linked to this before) but the page doesn’t seem to have any flash games on it, and is most useful when trying to remember which version of tetris existed for which console system. I briefly toyed with adding these, and possibly Go-Tetris to the page, but I think adding my game would be against Wikipedia’s TOS.

iPhone Developer’s Library App reviewed

The iPhone Developer’s Library App (appstore link) contains an great set of e-books that any cocoa developer would be proud to have on their phone: Programming in Objective-C 2.0, by Stephen Kochan, Cocoa Programming for Mac OS X, by Aaron Hillegass, and The iPhone Developer’s Cookbook: Building Applications with the iPhone SDK, by Erica Sadun. There can be no question that this is a great selection of books, so I focused my review on the e-book reader itself, which contains some bonus features for developers that make it really shine.

Unfortunately, some of those features can be a bit difficult to figure out at first. When I launched the app, I expected to see a menu or a help button. I think this reader in particular could even have given me a brief tutorial when I first launched the app. Regardless, there is a help screen, but you have to get all the way into reading a book before you can get to it. Click into the book you want to read, then click past the table of contents, and only then you can tap the center of the screen to bring up the menu. From here the Q&A style help screen is accessible by touching the question mark icon in the upper right. I know I wanted to read this first.

Once I got started actually reading one of the books, things were pretty much as I’d expect from any e-book reader. The main exception to this is that clicking on an image, a link or a bit of code requires a touch-and-hold method. This is indicated nicely with a sort of shrinking border around the item you are selecting. I think this was probably implemented to avoid accidentally opening something when you meant to page forward through the book, but I found myself avoiding those types of things instinctively when touching to turn a page, so I think it would be nice if that was configurable someday. I also found the length you have to hold before one of these opens (two, maybe three seconds) seems a bit on the long side.

Speaking of configuration, the settings screen has three different tabs full of configurable items, but still somehow felt bare to me. Most of the settings were on the “Appearance” tab, which consisted entirely of color options, but I missed the ability (common in e-book readers) to simply reverse all the colors to view white text on black instead of the default black on white.

I was pleasantly surprised to note that clicking a link opens a browser page without leaving the app, but still gives you the ability to open the link in safari. Clicking an image opens the image in what might also be Safari for all intents and purposes, allowing you to scroll and zoom in a recognizable fashion. Clicking on a bit of code opens the much-touted “code view”, which I found to be a very nice addition. Essentially this allows you to scroll and zoom (via a text-size slider) a given piece of code. You can copy and paste the text here, but more practical is the ability to email it to yourself for use on your mac.

Now I’ve got a lot of reading to do.

Juggling Games, including Wii Fit Plus!

As anyone who knows me well can tell you, I’ve been a prolific juggler at various stages in my life. I was president of the Juggling Club at the University of MN for about 2 and 1/2 years, and I’ve juggled on and off for at least 17 years now. That’s the main reason that I tend to pick up any new juggling and/or circus related games that appear on the market. They’re usually terrible, but I have a small collection, for various ancient consoles mostly, and now, increasingly, for the iPhone.

Read on for some mii juggling in Wii Fit Plus, and some iPhone mini-reviews. Continue reading