Our latest update to Zengaku is out the door and actually moving pretty well by our usual standards. No one is breaking the bank just yet, but sales have been steady for the past week, which is nice.
We thought we'd share a bit about the things we found while working on this latest release.
Backwards Compatibility:
We've been trying very hard to ensure that older devices will continue to be able to allow our 10's of faithful users to play on their ancient iOS devices. In particular one of our developers/founders still has a 1st generation iPod Touch device running iOS 3.1.3 . It's been great for backwards compatibility testing. One issue we had was with our new back and settings buttons. The new buttons are simple images without any text. In our testing we found that the images were rather small so there were a lot of missed touches. I got frustrated more than once while trying to get into the settings screen.
The fix was pretty simple. We just had to adjust the size of the bounding rectangle around the button. This stretches the image out to fill the rectangle so we used IB to inset the image in smaller bounds inside the touchable area. However good old iOS 3.1.3 devices don't seem to adhere to such settings from IB. So even though newer devices worked like a charm and looked great we had one device where the gear used for our settings button was a tad oversized.
The solution to this new problem was again simple enough, just a bit of a pain really. What we've done now is created the image and the button as separate objects on the view. The button is completely transparent and our image is sized and placed under the button. This gets us better touch sensitivity and backwards compatibility.
Small Features Mean Big Increases in Complexity:
We added a number of small features in the 1.3 release including a game timer, a settings screen, social bragging, landscape orientation, sorted notes and automatic option removal.
None of these features on their own were particularly complex, but one in particular ended up causing a number of bugs and taking a lot more effort than we'd originally thought. Can you guess what feature that was? It was the game timer. You'd think that would have been simple right? It's a timer that counts how long you took to finish a game. How tough could that be?
Well it turns out that it's a fair bit tougher than you'd think. You have to think about the logic for calculating the time it took. We had to ensure that the timer was still counting time even though you might not have turned it on. So you couldn't just turn on the timer at the end and make it look like you finished the game in almost no time. We also had to make sure that if you left the game screen to view the options menu, read the help docs or just exited out to use another application the timer wouldn't keep counting. Seem simple enough except that there's a few different way to determine each of these transitions in iOS. The modal dialog we use for our settings is different than hitting the back button which is different than hitting the home button or the lock button. We had the added problem of the file format used to save games wasn't previously saving the game time properly. We'd had the idea of timing games from day one, but we'd never written anything that actually worked properly until now. So games you'd started previously might have quite odd times now. We corrected for that by updating the version on our file format so that if we detect a game that was saved with the older file format we'll assume the time is 0 and upgrade the file format.
The timer caused other issues in that once you won the game we had to make sure that the time you could brag about via Twitter or Facebook would be correct as well. Because our implementation of the time storage wasn't and probably still isn't particularly sound we had been re-calculating the time when you were on the win screen. This meant that any time that passed between you completing the puzzle and hitting the brag stone would show an increase in time. This too was addressed in our last update out just this week after being approved by Apple. One other little timer related tweak in our last update was to include the time on the win screen. It was obvious pretty quickly that including that on the win screen was an oversite that needed to be corrected. You did all that hard work to finish the puzzle quickly and then you don't get to see the time being recorded. Silly us.
Interface Builder is loads of Fun:
The interface builder is a nice tool and does help with the initial layout and prototyping a UI very quickly. However it seems that the more that we had to tune our UI to suite the needs of our desired gameplay we found the tool to be lacking. Anytime you need to actually need to deviate slightly from the default behaviour you have to jump back into good old objective C.
Not that coding is a particularly painful or foreign activity for us, but it seems like the tool's promise is greater than its delivery. It would be nice to be able to tweak the touch responses of UIButtonView's without having to create our own custom buttons views in code. But there was no option for us to easily modify the existing buttons to allow us to respond differently to a press and hold and a press using the standard controls. Also with the increased importance of handing multiple orientations in an application. It seems like something that the IB should support is the ability to prototype the landscape and portrait orientations for a single view controller and provide some simple animations for the components to transition between the 4 possible orientations. In stead we had to mock up the landscape view and then collect the co-ordinates of all the different elements and provide the code to translate them at runtime.
Conclusions:
Zengaku 1.3.x has so far been a very, very successful release for us. For some reason we've seen improved traffic for both the paid and free versions over the last 3 weeks. We're not sure if it's the new, price, the fact that its a sale, or if the added puzzles and retina images had anything to do with it. So far the timer seems to be getting better and we've only heard of a couple of issues from our users. The Twitter and Facebook integration was at least simple to add, but hasn't been used extensively so far based on searches we've done. It's too bad that more people aren't making use of those features and following Redshirt Labs on Twitter, or Zengaku on Facebook. We'd love to have more interacting with our user base so we could better understand where the game could and should be going. However with the improved overall reception we're pretty encouraged and a bit reinvigorated. We should be providing more incremental UI improvements over the coming weeks and I'm thinking that an iPad version is starting to make a lot more sense. Maybe in time for the actual launch of the new iPad 2.
But one thing we've learned is that small features or changes have a effect on complexity that is orders of magnitude above the complexity of the feature itself. The other thing we're learning is that advertising is a complete waste of time. We've not spent one dime on advertising in the past 3 weeks, but have seen a sustained improvement in our downloads that we've yet to really explain. However we're extremely happy to see the improvement. Keep playing!
Not that coding is a particularly painful or foreign activity for us, but it seems like the tool's promise is greater than its delivery. It would be nice to be able to tweak the touch responses of UIButtonView's without having to create our own custom buttons views in code. But there was no option for us to easily modify the existing buttons to allow us to respond differently to a press and hold and a press using the standard controls. Also with the increased importance of handing multiple orientations in an application. It seems like something that the IB should support is the ability to prototype the landscape and portrait orientations for a single view controller and provide some simple animations for the components to transition between the 4 possible orientations. In stead we had to mock up the landscape view and then collect the co-ordinates of all the different elements and provide the code to translate them at runtime.
Conclusions:
Zengaku 1.3.x has so far been a very, very successful release for us. For some reason we've seen improved traffic for both the paid and free versions over the last 3 weeks. We're not sure if it's the new, price, the fact that its a sale, or if the added puzzles and retina images had anything to do with it. So far the timer seems to be getting better and we've only heard of a couple of issues from our users. The Twitter and Facebook integration was at least simple to add, but hasn't been used extensively so far based on searches we've done. It's too bad that more people aren't making use of those features and following Redshirt Labs on Twitter, or Zengaku on Facebook. We'd love to have more interacting with our user base so we could better understand where the game could and should be going. However with the improved overall reception we're pretty encouraged and a bit reinvigorated. We should be providing more incremental UI improvements over the coming weeks and I'm thinking that an iPad version is starting to make a lot more sense. Maybe in time for the actual launch of the new iPad 2.
But one thing we've learned is that small features or changes have a effect on complexity that is orders of magnitude above the complexity of the feature itself. The other thing we're learning is that advertising is a complete waste of time. We've not spent one dime on advertising in the past 3 weeks, but have seen a sustained improvement in our downloads that we've yet to really explain. However we're extremely happy to see the improvement. Keep playing!
No comments:
Post a Comment