Story Patch is now on sale

September 7th, 2010

The second offering from Haywoodsoft called Story Patch is now on sale!  Wuhoo!!!  You can find out more about this product at

If you have not looked through the Haywoodsoft Products page (and why haven’t you…), Story Patch is a storytelling application for the iPad.  This product took many months of development, but was an incredible experience.  I should really write more about the whole process of developing this product, but for now, I will point out the things that were most memorable:

  1. I think my favorite part of developing Story Patch was when I started testing it with one of my friend’s kids.  All three of them immediately had a blast with it, even though they were playing with early versions of the software that were missing the “polish” that ended up in the final version.  My previous life in the software industry dealt with making software that was more like hammers than something fun.  It was really special to see the people in my target audience legitimately enjoying the product I created.
  2. For this project, I hired a graphic designer to help with designing menus, icons and other graphical elements in the software.  What a great decision to hire him.  He produced some incredible graphics for me, and was great to work with.  If you are in the Phoenix area and need a graphic designer, email me here and I would be happy to give a referral.  For any other new iPhone/iPad developers out there, I think hiring a good graphic designer is one of the best things you can spend your money on when developing your product (advertising is the other thing to spend your money on…).
  3. Developing for the iPad is really fun.  I love the iPhone too, but the larger format of the iPad really opens up some interesting possibilities for the developer.  One thing I like is that you can add a sense of realism to the software that is not possible with the iPhone due to its smaller geometry.  For example, Story Patch uses an interface that looks like a spiral notebook for creating your story.  It seems like details like that really pull you into the application and make it feel more personal.

Even though Story Patch has not been on sale for that long, it has already received some good press.  A local writer Nick Nebelsky gave Story Patch a great review here.  Nick will also be publishing a review on Appolicious which should give Story Patch some more good exposure.  Going back to the theme of “things that were great about creating Story Patch,” it was great to meet Nick and give him a demo of Story Patch.  We had a good time talking about mobile devices and the cool things you can do with the iPhone and iPad. Be sure to check out the other work he has done here.

Well, that is it for this evening.  Hopefully I can write a bit more now that I am taking a short break from coding.  Of course, that break won’t be too long since I need to start on version 1.1 of Story Patch soon!

Where have you been…..

March 30th, 2010

It has been quite a while since I have posted anything. The main reason for that is I have been hard at work the last couple of months on an application for the iPad. It should be finished in the next few weeks, so stay tuned for more info! I am very excited about this project and I hope that new iPad owners will find this application to be interesting.

Speaking of the iPad, I pre-ordered mine and can’t wait to use it. Also can’t wait to see my code running on it! As I said, stay tuned for further updates, videos, and lots of fun info when my next app is released soon.

1000 games of ShutterBox!!!

January 12th, 2010

So far the feedback I have received about ShutterBox has been very positive.  Even though I developed the game, it is still one of my favorites to play.  It is nice that something I spent so many hours working on still gives me a lot of joy.  Last night, I racked up my 1000th game on version 1.1 of ShutterBox.  Even at less than a minute per game, that is still a lot time since version 1.1 went on sale at the end of December.  Anyway, thanks to everyone who has purchased the game…. If you hit a milestone like 1000 games (or more) send me a screenshot!


New ShutterBox Movie!

January 6th, 2010

If you have not had a chance to play ShutterBox yet, I posted a movie that shows the game play.  Stay tuned for more videos in the future.  Also, I will probably be doing a review of the various screencasting tools that I tried out when I made this.

ShutterBox 1.1 Is On Sale

December 28th, 2009

I am happy to announce that version 1.1 of ShutterBox has been approved for sale.  I made a lot of improvements to the game, and I think customers will enjoy version 1.1.  One bit of frustration was that I got the approval for version 1.1 right before Apple shut down the itunesconnect website for holidays (this is the website where you update information about your applications in case you did not know).  So some folks who bought Shutterbox around Christmas saw different screen shots on iTunes than what they found on their iPhone/iPod touch.  iTunes should be updated now with the new screen shots for version 1.1.

Hope everyone world wide has a great new year and thanks for supporting ShutterBox!

Hint For Using Texture Coordinates Generated By Blender

December 19th, 2009

While I was developing ShutterBox, I used Blender to create the models of the dice and tiles that you see on the game board.  The models are pretty simple, but the thing I really needed from Blender was the UV mapping.  For those who don’t know, UV mapping is the process where you map coordinates from a texture (i.e. an image) on to your 3D model.  What this entails is ‘unzipping’ you model so that it lays flat.  Then you place parts of the model on the image so that Blender knows what parts of the image to paste on to your model.  Blender (and really any 3D modeling software) lets you save the UV coordinates which map texture coordinates to, and you can read these coordinates into your code that runs on the iPhone.

The UV mapping works really well in Blender, but there is one thing I found that needs to be done before you can use the texture coordinates in your own code.  The problem is that Blender considers the ‘0′ coordinate for the ‘y’ axis to be in the lower left corner of the image.  However, when you are using a texture with OpenGL (and reading it in with glTexImage2D) the ‘0′ for the ‘y’ axis is at the UPPER left hand corner and ‘y’ grows in the downward direction.

Why does this matter you may ask?  Well, if you do the texture mapping inside Blender and then just read that same image in with glTexImage2D you will see that the texture appears upside down.  Maybe for something like a wood texture you don’t care, but if you are using textures to apply more detailed features to your models then you need to invert the coordinates of your textures.

The easiest way to do this is to just use Preview that comes with your mac.  Preview has a tool ‘Flip Vertical’ that does what you need. So just Flip Vertical, save the file and add it to your project in Xcode.  My textures do not change very often so this manual method of inverting the texture works well for me.  Of course, if you are tweaking textures a lot, manually flipping the textures might get kind of annoying.  Anyway, I wanted to post this hint because when I first started using textures I was surprised at first to see everything looked upside down. Hopefully this saves you a few cycles if your textures don’t look as expected.

Coordinates in Blender:


Coordinates used by OpenGL:


ShutterBox version 1.1 sent to Apple….

December 18th, 2009

Well, I have sent version 1.1 of ShutterBox to Apple for approval.  Version 1.0 was published earlier this month.  Since the blog was put online after that first release, you can check out ShutterBox here.  Version 1.1 incorporated a bunch of features that I wanted to put in version 1.0, but was not able to implement due to time constraints.  Version 1.0 had all of the game play, but Version 1.1 added things that make users lives easier:

  • Game state saved when game is stopped (i.e. when a call comes in).  The games play very quickly, but I found it to be annoying that whenever you had to leave the game a new game started when you returned.
  • New Settings.  I added some new settings like changing colors on the game board.  Also made the settings persistent.  This was most important for the sound setting.  It seems like people either love sound on their iPhone games, or can’t stand it–Now they can set the sound once and not deal with it if they don’t want to.
  • Records.  Some basic user records.  Always fun to see how many games you have won!
  • Also fixed a couple of bugs and made some graphics performance improvements

When I look at the features added to version 1.1, I see that I really should have held off on the 1.0 release.  Self imposed deadlines are important for keeping projects on track, but I think in this case being a little more flexible would have been a good idea.  Lesson learned, I guess.  In my ‘previous life’ I worked on engineering software that was constantly evolving and having new features being added.  In that arena, customers expect that the software will continually update.  However, for mobile applications like this, the application should really have the complete set of features in its first release.  Updates can add feedback from customers, but I probably won’t take the attitude again that I can add some more core features in an update release.  Like I said…. Lesson learned.   I think customers will be very happy with the improvements made to version 1.1 though.  I play the game everyday and I really like the new features (hopefully others will too).

At some point I will do a version 1.2 release, but I will  wait to get some more feedback from people who bought the game.  I have some graphics improvements I would like to make (like enabling perspective rendering) and some ideas for multiplayer modes, but I will wait to see how customers respond to the latest version before starting work.

Stay tuned for when ShutterBox version 1.1 is made available from the App Store.  I will post when it becomes available.

Welcome to Haywoodsoft

December 18th, 2009

Greetings, and welcome to the Haywoodsoft blog.  Like it says on the “About” page, the intent of this blog is to document my experiences developing software for my new company.  I hope that readers will find the blog entertaining, but also that it will be a useful resource for software developers.  Thanks for stopping by, and please post a comment if you find something helpful in these pages.