New site and new blog RSS

I’ve made over the Opetopic website, and although it is still a work in progress, one thing that has permanently changed is the location of this blog. The new blog is located at

http://www.opetopic.com/news

and the new rss feed is at

http://opetopic.com/news/feed/

I will continue to leave this blog here since there are links and search results pointing to it, but I will only post new things on the above blog.

Things are getting exciting at Opetopic, including new games and new collaborations. I will be posting about this stuff very soon…

Posted in Uncategorized | Leave a comment

Announcing GeoAlert for the iPhone

I have just submitted my newest application to Apple, and it is the first utility app (i.e. non-game) from Opetopic. It is called GeoAlert, and it will be available exclusively for the iPhone 3Gs and iPhone 4 running iOS 4.

GeoAlert

GeoAlert for the iPhone

GeoAlert is a location aware alarm clock that allows you to be notified when you are in the vicinity of a placemark. Simply set up a time range for the alert to be active, a location, and then the next time you are near that spot your phone will alert you.

There are many uses for this app, but I will highlight the two ways I plan on using it. I commute a lot between home and school, and I like to travel a lot. This means I spend a ton of hours on buses and trains. Fortunately I have been able to teach myself to get work/study done or just sleep while in transit. But if you get to absorbed in your work you run the risk of losing track of time and missing your stop. Now I can just set up a GeoAlert for the last stop of my train/bus with a time range centered around when I should be arriving, and I will be notified once I get near my destination.

Another use is to aid in tourism. As I said, I love to travel. In my next trip I will set up a bunch of GeoAlerts for all the things that interest me around the city (I can do this from my hotel’s internet connection or before I leave). Then I can just forget about the things I should be doing and instead concentrate on exploring the city and culture (I hate traveling with my nose buried in a travel book). Once I get close to a museum, monument or landmark that interests me GeoAlert will notify me, all without an internet connection!

I hope others will find interesting uses for the app. I will post back to this blog once it is approved. In the meantime, here are some screenshots. Click for enlarged version:

Posted in Uncategorized | Tagged | Leave a comment

Milestone for IsoWords

I just noticed that IsoWords passed a huge milestone: over 100,000 scores have been submitted to the leaderboards. Approximately 500 games are submitted to the leaderboards everyday. Below are some screenshots of the leaderboards to highlight the amazing scores/words people have found.

English IsoWords: Highest scoring words and top free play scores

Spanish IsoWords: Highest scoring words and top free play scores

French IsoWords: Highest scoring words and top free play scores

Posted in Uncategorized | Tagged | Leave a comment

Double check targeted device family before submitting universal apps

Someone from the App review team contacted me to ask me a question about the app description for the IsoCards update. In the description I let potential users know that IsoCards on the iPhone/iPod is only functional if it is used in conjunction with the iPad (via bluetooth/wifi). The reviewer said that there was no IsoCards app for the iPhone, and so he or she wanted me to clarify. I responded to let them know that IsoCards is a universal app, and they quickly wrote back to tell me that IsoCards was in fact not submitted as a universal app and so was being rejected.

I immediately went into Xcode project to check my targeted device. Everything looked ok at first, but then lo and behold I realize that I am looking at the build settings for the Debug configuration only. Somehow the Debug and Release configuration got out of sync, and so the Release configuration was set to an iPad only app. In the end, this is what the settings should look like:

You want Base SDK set to the highest version available, you want deployment target set to the lowest version you are willing to support, and you want targeted device family to be iPhone/iPad (for universal apps at least).

I’ve resubmitted IsoCards and asked the reviewers if it can be slightly pushed through the review process since it was already “in review” for 10 days.

Posted in Uncategorized | Tagged | Leave a comment

Implementing “drag and throw” behavior with touches

There have been a number of recent posts on blogs concerning the number of touches the iPad can handle (e.g. see Matt Gremmel), and it seems that 11 is the max. There is another aspect of the touch screen that needs to be explored, and the is the “granularity” of the touchesMoved method. In order to explore the ups and downs with this method I will make a simple “drag and throw” demo.

For my app IsoCards I wanted to allow users to drag and throw cards around the table. This is seemingly a trivial thing with the iPhone SDK by using the touchesMoved and touchesEnded methods. Say we have a subclass of UIView that we want to make draggable and throwable. Then we could do the following:

  1. Add an instance variable velocity to our class.
  2. In the update loop for the class we simple add the velocity to the current position of the view.
  3. In the touchesMoved method we snap the view to the current position of the touch.
  4. In touchesEnded use the -locationInView: and -previousLocationInView: methods on UITouch to compute how far the dragging touch moved, and use that as the new velocity for the view.

With this simple, perhaps even naive, implementation of the throwing behavior I ran into a problem right away. In IsoCards, people’s first reaction was to do a quick, flicking motion with their finger in hopes of sending the card flying to another player’s hand. Unfortunately, the touchesMoved and/or touchesEnded method is not refreshed fast enough for this. If a touch moves too fast and is released quickly, the -locationInView: and -previousLocationInView: methods return points that are only a few pixels apart. The user is left with a frustrating experience by putting the energy into flicking the card with force, yet it will only float a few pixels away.

The solution is easy enough. Add another instance variable, call it “previousPosition”, which is updated to the previous location of a touch in the touchesMoved, and then use this value to compute the throwing velocity of the card.

I have made a video showing the difference between these two methods:

I have also added the Xcode project being shown in the above video to my github account. You can download it here.

Posted in Uncategorized | Tagged | Leave a comment

AppStar Awards Winner

I am pleased to belatedly announce that IsoCards has won the AppStar awards contest!

For the 2nd time AppsFire has held the AppStar awards contest that seeks new and innovative iPhone apps from small developers, and for the 2nd time I entered this contest. The first time my entry IsoWords made it to the finalist round, but ultimately lost the create-your-own scrolling shooter SketchNation Shooter.

I decided to enter IsoCards into the next installment of AppStar at the last minute. I was already rushing to meet Apple’s deadline, and then I decided to go to my “dark place” and whip together an entry for the contest. In fact, I made the entry video on the last possible day using only Quicktime and iMovie.

I didn’t think IsoCards had a chance at winning. I knew it was an interesting app, and people had responded very well to it, but it wasn’t a traditional game and the competition was intimidating. In fact, I was so sure that IsoCards wasn’t going to win that I didn’t even check the results of the competition when they were announced at 360iDev on Monday, April 12th. Instead, I found out the next day from an internet cafe in Brazil!

Well, now I’m back from Brazil and I have a lot of work ahead of me. Here is just a sample of what is in store for Opetopic:

  1. A huge IsoCards update coming soon
  2. The ad campaign for IsoCards from AppStar
  3. A brand new game is in its nascent stages with a new collaborator

I will post more details on these subjects soon…

Posted in Uncategorized | Tagged | 3 Comments

Brand new iPad title: IsoCards

I have just submitted an iPad application (barely within the March 27th deadline), and its called IsoCards. It will be free for the launch of the iPad!

IsoCards

IsoCards is a card game without any pre-programmed rules. Its just a mulitouch-gesture and physics driven deck of cards that allows you to play whatever card game you want. You can throw cards around, double tap or pinch a card to flip it over, and the app works in any orientation you hold the device.

Now, having the app be just a deck of cards and expecting it to be usable is a lofty goal. In fact, it’s probably impossible. So, I’ve introduced a few elements to add a little bit of structure so that you can actually play card games. For example, you can add a “player”, which is just a glass shape that can be used to collect and organize cards. It will automatically fan out your cards and you can drag and rotate this holder to anywhere on the table. There is also a menu button you can press that allows you to show your cards to everyone, sort your cards, or remove the player.

The biggest problem with allowing multiple people play cards on the same device is preventing your opponents from seeing your cards. How do we solve this? Well, the iPad has a large enough screen that I thought maybe we could allow the players to “cup” their hand and place it at the top of their cards (like they do in poker), at which point the cards will flip over and be revealed. When you lift your hand your cards will quickly flip back over.

See your cards without showing everyone else

See your cards without showing everyone else

I wasn’t sure if this would be feasible, and having not actually tried it on an iPad I still can’t be 100% sure, but I was able to test on my iPhone, and I have to say it is magical. It is easy to use and very responsive.

Finally, there is a notepad that you can bring up at any time you can draw or type on, making it easy to keep scores.

IsoCards 1.1

There are 2 killer features that I worked on for IsoCards, but I was wary of releasing them without having tested them on an actual device.

Enforced Game Rules

Most of the difficulty in programming IsoCards was coming up with a intuitive, flexible engine to handle a deck of cards. An engine that could be used to program practically any card game very easily, while inheriting the fluid animations and multitouch gestures.

Now that I have this engine, I will be programming nearly every card game that I can think of with IsoCards and releasing them in updates. I will probably start with a pack of solitaire games, and then move to multiplayer games.

Bluetooth/WiFi connectivity with iPhones and iPods

Image you want to play a card game with a couple of people that requires a large pool of communal cards (think Gin Rummy, Go Fish, or my favorite, Tien Len). The device can get crowded pretty quickly. So, if you have an iPhone or iPod you will be back to “dock” you cards on the edge of the app and transfer them to their iPhone. You can then just flick your cards off your device and they will land on the iPad.

IsoCards: iPad + iPhone via Bluetooth

IsoCards: iPad + iPhone via Bluetooth

So… that’s IsoCards! I hope it is in the App Store for launch day…

Posted in Uncategorized | 10 Comments

Some people are freakin’ awesome at IsoWords

The 1.1 update of IsoWords has been out for over a week, and over 25,000 games and words have been submitted to the leaderboards. Up until this point I was used to dominating all my friends at this game, but now I see I am barely hanging onto the top (btw, if we aren’t friends on Facebook or Twitter then my scores will show up under “mbrandonw”).

Words

Click to enlarge

Click to enlarge

For those who haven’t played IsoWords yet, the score of a word is determined by both the rarity of the letters used and the length. Every letter is given a point value just like in scrabble (A=1 pt, B=3 pts, etc). So to get the score of a word I first add up the points for each letter, and then I multiply by the length of the word minus 2. I subtract 2 so that 3 letter word does not get multiplied at all, a 4 letter word gets multiplied by 2, and so on.

The highest scoring word leaderboard is pretty much the only leaderboard for which I am at the top. My QUIZZER and MINERALIZE finds are just barely hanging onto the #1 and #2 spots. I also hold 5 of the other top 40 word scores, including QUANTIZE, QUARTZY (of which I didn’t actually know was a word until I tried submitting it) and SQUABBLE. However, someone who goes by the handle “danisse” is the most prominent in this leaderboard with 12 of the top 40 words belonging to him/her. Also, so many high scoring words have been submitted that it takes at least a 120 point word to break into the top 40 all time leaderboard.

In the Spanish version of IsoWords, also known as IsoWords.es, there have been over 2,000 words submitted, and there is currently a 3 way tie for #1: CARROCEROS, AQUEJARAS and RAZONABLE. More amazing to me is the 11 letter word that Carlos Sánchez found, DESCANSARAS, even though it was only worth 126 points.

Games

Click to enlarge

Click to enlarge

My favorite game type in IsoWords is free play. It can be soothing to sit down with a puzzle for 30 minutes or longer, trying to piece together every prefix, suffix and root word you can find for long words. Before releasing the 1.1 update for IsoWords I had never broken the 900 point barrier. So, imagine my dismay when I saw the free play leaderboard on the right. 1,120 points?! Incroyable! This “danisse” person is just freakin’ awesome…

Daily Challenge

Click to enlarge

Click to enlarge

I had some reservations about implementing the daily challenge feature. My fear was that it would not be used very much, making it a creepy, isolated place where you get 1st place just if you participate for that day. However, people are using it. In fact, somewhere between 40 and 50 people play it everyday, which is a lot considering the relatively small number of people who participate in the leaderboards.

I’ve taken the 1st place spot in 2 of the daily challenges, both of which just barely nudged “danisse” out of the top spot. So, in the end I am glad I took the time to implement this, and I hope it becomes more popular as IsoWords gets more players.

Posted in Uncategorized | Tagged | 2 Comments