Monday, December 31, 2012

App Store bits that suck

Purely as a user and not developer, there are some bits of the App Store app that suck.

The biggest problems are the Updates and Purchased sections.  I admit I do have a bunch of apps in the iTunes account, so there are 500+ apps.  But really 500 is nothing--gmail instantly tells me I have 75,174 emails archived.

I timed it:  on a new iPhone 5, on my fast WiFi network at home, tapping the "Purchased" item it sits working with the little spinner going for 37 seconds before showing the list.  Many times I've thought it had crashed or simply given up.  Way, way too long.

The Updates isn't quite as bad, it loads within a few seconds, but still not as quickly sometimes.  But if I go and tap "Update" on a few things, it becomes slower and slower to respond.  After 5 or so taps, it seems a second or more between my tap and when it shows it recognized it.  After a few it gets unusable so I don't ever update more than a couple at a time.

Apple, you can do better.

Wednesday, December 19, 2012

Idea to App: BounceBash

I've been adding to this post as the game was developed...

(August 9, 2012...)

The initial idea came from reading about the "remake Pong for the 20th anniversary" competition.  I had an image of dribbling the ball along a curving ground.  We never submitted the idea for the competition, the rewards didn't seem to be worth it.  I didn't want to submit and get 6th or something, so not win anything but Atari has the rights to the idea!  And eventually seeing the winners, ours would have been pretty far out there.

I created the XCode project Feb 10, 2012.  "SpringPong" was the initial placeholder name.

We immediately decided it needed more than dribbling, and it became a mashup of Pong for bouncing, Tiny Wings for the curving ground, and Angry Birds for smashing stuff.

It started by using ground Shawn had drawn for a yet-to-be completed game, and he did the smiling ball too.  The initial theme was going to be "video game themed" and be inspired by all sorts of games thru history.

Funny that the initial placeholder ground is exactly the same as what we used in the final product.  (Though not this slightly textured version--the even plainer variation.)

The very first versions had basic little buildings, but we soon switched to the random stacks of blocks since there could be much more variety.

 Shawn did a few other things in this batch, and I did the minesweeper ones.

Lots of Physics (thank you Box2d) so the boxes fell and bounced realistically.

There's a big section about this time I missed taking screenshots while we tried many things that didn't survive long.

A number of versions had you releasing balls from cages.  We tried having them be copies of the original ball, but that got too busy--after a few balls were active, everything got smashed barely onto the screen, and it was very easy to keep at least one of the balls going.

We did so the balls that were released had a powerup, like exploding any blocks they hit, and those colored balls shrank away after a 10 seconds or so.  That got very busy too, and really didn't have a main character.  No screenshots, but a video!

We also tried something like paddle-ball with an elastic rope connecting the paddle to the ball.  It looked weird, and you'd expect the rope to hit the buildings.  This didn't even last an afternoon :)

I asked both my wife and niece what sort of animal would be bouncing along, and they both said an Armadillo.  I had an idea for a balled up armadillo character, and did this quick sketch to send to Shawn.  He then made it look much better :)

With the Dillo armadillo character, and trying sections with a ceiling.

Pete said something like "It's a great technology demo, but it has to be a game."  Figuring out the Game part took a long time.

Dillo Dreams.  We worked quite a long time with this as the theme.  Very meta, Dillo is dreaming he's the star of a video game.  We'd done three pretty complete themes:  iWorldJeweled, and Old School.

Thankfully the cat played it, so there's some video...

You'd break the boxes to release stars, and catch them with the paddle.  Breaking the boxes with a big star on it now released a big power-up star you could catch with the paddle and activate the power-up on Dillo.  You could pick colors for the helmet and that gave extra time for the power-up of that color.

Everything stacked up very precariously, so any tap would send the boxes falling.

For a long time you just bounced along faster and faster, but at high speeds it was hard to see things collapse--you'd be past before they hit the ground.  We added some "pauses" where it slowed down if Dillo was bouncing back toward the paddle, to give more time to see and smash stuff.

You'd get more power-ups available the farther you went in one game.  With some end-game bonus things so you'd restart at chapter 2 or 3 to let you get a bit farther in later games.

A ceiling, getting extra meta video-game-in-a-video-game with the iPhone status as the ceiling.  We liked it, but hadn't really figured a good use; going in a cave or something was the best idea for how to drop the ceiling and have you bounce off that too.

We'd done a menu for selecting the theme and to get to the costume design where you could pick your helmet and cape.  (Using stars you had collected as the currency.)

We showed it to some people at Chillingo as part of looking to see if we should work with a publisher....and they didn't like it.  Really they were 100% right with the comments, so we owe them a huge thanks.  It's going to be a better game because of them.

It was too easy, and the difficulty didn't ramp up well.  It was hard to aim and you could have bad luck with blocks getting in the way right in front of the paddle.  A good player and a bad player would get similar scores on the same section; there wasn't a level of player expertise beyond not missing.

And they didn't really like the armadillo character and video gamey theme.

So we talked a lot and started making changes.  One was the theme, to add more drama, he'd be fleeing a tornado in the desert.  (This was a first step on making sandstone type towers that would have a continuous texture between pieces that could break apart.  Cool, but scrapped since it would be hard to do that and make it look drawn like the rest.)

We tried and rejected some sort of swipe control to aim and shoot him.

Similar using quick sandstone colored blocks (it also shows the spinner towers we had for a long time.)

One big hangup with this desert theme was we never could think of what would explain the paddle.  Bouncing off a bed?  Tumbleweed?  Something else?

Somehow you'd have to keep ahead of the tornado--a bit we didn't ever figure out before changing.


Between August and November 2012, we worked quite a lot and had some totally new ideas that took the game in a very different direction.  The resulting game is still in being completed and hopefully will come out sometime early in 2013.  I'll post this section of the progress once the other game is released!


(November 12)

Then...   Not so much back to the drawing board, as another drawing board :)

I wondered about doing both versions of the game, since we had so much of this game working too, so spent a bit of time revisiting the old ideas.  And in the end, they're very different.  People who have played both hardly even recognize that they're related.

We thought to do it very simply because we'd always liked the stark "70s" theme from the Armadillo game.  And, honestly, we though we could just whip it out faster that way and get some people playing it!  Do the best looking retro graphics we could do with modern effects.  So simple white shapes, but cool effects and the cracks Shawn drew for when they're breaking help make it something better that just a box :)  Don't bother making a story, just bounce and smash stuff ("Bounce and Smash" was one of the titles at this time too.)

We made a few changes, and figured out solutions to a few of the gameplay holes on this 2nd time around.

Now, you get one power at a time, and the whole game background and ball and paddle color changes to be that power's color.  (Before, you could have several at once and sparkles behind the ball helped show which ones--but could have a lot of colored sparkles!)

The other major solution we figured out was for "aimless bouncing".  Because of the curving ground, the ball can just get bouncing up and down, or be too high and passing over the piles of blocks.  A simple gameplay solution: a new tap action to call the ball to the paddle.  So much easier than some technical fix we might never have found.  And lets you as the player do cool back-side aiming to hit on the far side of towers, or retry to line up a shot on a block you want to hit.

And that recall-ball also helps for letting good players do much better than beginners.  By the time we were submitting, Shawn would consistently set scores twice as high as I could--a good sign that expertise matters :)

A bug, but a funny one so I took a screenshot.  The paddle could keep increasing in size if you got the Big Paddle star several times :)

Better status and score things.  Pete pushed for the powers to have a time limit, makes catching new ones and changing up the game important (rather than keeping the one big power you have.)

We thought up lots of fun and silly things for the random rainbow star.  And in our constant re-use of things, the "Laser" is part of cannon muzzle flash Shawn had done for the Armadillo game.  I stretched out a part of it to make a beam, and voila!  Laser!

Some of the better particle effects, nice outlines to go along with the outlined look of the paddle and ball.  This has the new thermometer graphic for the bonus multiplier, and better buttons for pause and recall too.

The blocks still can get in the way of the ball a bit, but not nearly as much with the much slower pauses at the towers.

And we just got rid of the floating blocks that got in the way even more (see way back above, crates supported by a balloon.)

Rather than having all the powers (since it quickly got overwhelming when we were even testing) we decided to limit to 4, and a nice power selector to let you pick any of them to mix and match.  Adds nice re-playability, to try different combinations as you get new powers.  Bullet Blast was the last power, there was a blank hole in the grid for a long time.

Adding lots of crazy things for the Random star is where the bullets started, and they turned out so cool it made sense to include them as the final destructive power you unlock.

Simple menu, but lets you see your current powers, and makes PLAY the big obvious choice.

We had trouble figuring out the name, finally coming up with BounceBash.  We'd always wanted Bounce in the name if we could, since that is the best one-word description of the gameplay :)  Bash had the nice alliteration, fits under an icon, and has the nice double-meaning of "hit" and "party".

(December 10...)

We contacted Beatscribe who did some great music for the game, and most of the sound effects too.

He loved the gameplay but didn't like the stark white graphics, so we went full circle and tried putting in the Armadillo again :) There were a lot of tries.  For a few days it was the stark black/white graphics until you got a powerup, then the whole world changed to be in color and have the Dillo character.

In the end we went with black and white versions of the nice drawn graphics, with those changing to color as you got a powerup.  It helps show "we do have nice graphics, it's a style choice to be black and white" even at the beginning when you haven't seen a powerup yet!

There were a few new things needed, but mostly we got to use all the things we'd done before, Sweet!  Shawn drew a few new things for the ground for different powerups, like the Moonscape and the very last one to get done was the awesome Earthquake ground.

Shawn drew smiles and grins for expressions on the guy, there's even a space helmet he wears on the moon!  Pete used them to make the awesome icon with the "crazy-smile" grin.  

The main menu needed to be a bit cooler after the change from "starkness", so added the game terrain constantly scrolling past.  There's an invisible thing behind the Y that starts everything moving and falling.  It shows before you even begin a game that 1) we have nice graphics 2) things are going to fall and smash which is cool.

It was fun thinking up all the crazy powerups.  Lots of testing to get them nice and destructive (increasing the number of lightning bolts, and adjusting the number of shots from the laser.)

We did keep the plain black/white, but as a "1980" powerup you can get from the rainbow star.  So it's still there, but as a funny random power and not the main UI of the game.  We're already pretty sure that if this does well (fingers crossed!) that we'll do that version of the graphics as an unlock-able theme for the game so you can play that version :)

We went back to the old ping-pong paddle as the main one.  Thinking if we say "bounce with the paddle" it's as obvious as we can make it what you use to bounce with.

Pete said: why not put back the cannon to get him started?  Sure!  Makes as much sense as bouncing an armadillo with a ping-pong paddle :)  (Or bouncing him with a flying saucer on the moon.)

We really did get to use nearly everything.  The old gem theme from the Dillo Dreams days, plus a new gem ground and paddle that Pete made work perfectly for the highest triple-stars and triple-points powers.

I spent a long time working on the help and tutorials.  This is I think the 3rd version of what you'd get from the HELP button on the main menu.  Little bits of animation, and lots of small tweaks to the wording as I showed people at the Seattle NSCoder Night group.   "Slide and Bounce" changed to "Slide On The Left And Bounce" and also added the finger on the left.

WHEN to use the recall wasn't as obvious in early help pages and confused testers.  This is a good change to the text and animation that came from the NSCoder meetings.  It animates a tap and him flying backward thru the blocks--as you can see in the final game.  

With the "Video" which is an automated gameplay script; and some slow-motion bits of text with pointers the first time you play (I think that was Pete's suggestion again); there's really 3 different how-to-play things.  I hope it helps anybody get started.  (Including a nice touch: if you miss really early, it triggers to show the first-game-slow-motion help again. Assuming it might be some new person trying the game who didn't know what to do so missed very early in the game.)

We tested and changed gameplay things right up to the end.  Until the last few days, breaking blocks was what increased the multiplier.  Only about 3 days before we were done did Pete suggest some change to catching the stars (since they didn't do much but unlock some powers.)   Pete's ideas would have been harder to do as we were trying to get done by Friday so I tried that catching the stars that increased the multiplier--an easier change to program :)  (Eventually we expect they will be used as currency to unlock themes or stuff--but increasing the bonus multiplier gives a reason to catch them right now too.)

Pete made the great icon and splash screen, as well as the trailer video.

And after all that, months of work and changes and testing, we submitted it December 7, 2012.  We all clinked drinks against the Skype window on our computers for a toast.

And finally, December 18, it got approved by Apple.

BounceBash In The App Store!

Sunday, December 16, 2012

Mike's Rules of CSI Guilt

These rules apply to CSI and most other crime shows.

1) The biggest guest star, who isn't also a possible love interest of a regular character is guilty.

2) A doctor or lawyer who isn't there as part of their profession as a doctor or lawyer (business partner, friend, parent, etc.) is guilty.

3) The first, most obvious person interviewed is innocent. (Though they are often guilty of something else.)

...more to come...

Friday, December 7, 2012


Yeah!  Just submitted BounceBash to Apple.  Hopefully it makes it out by Christmas.  Fingers crossed.

Thursday, December 6, 2012

Apple Television

I'm pretty sure I've now purchased more iPhones and iPads than I've bought computers in my lifetime.  Definitely that's true for in the past 10 years of purchases.

But my main TV is now over 10 years old.  It is a nice big projection HDTV that was expensive but not crazy at the time I bought it; only now are flat panel ones getting big enough and cheap enough to think about replacing it someday.

The screen on any recent TV will do fine for many years, just as mine has done.  It would be incredibly wasteful and silly to upgrade them the way we upgrade phones every few years.  If I buy an Apple Television, I'll want it to last 10+ years like the last one.  

But what if Apple sold so the screen had a detachable and upgradeable CPU/memory/logic box.  The "Screen" part that really was only the display, and that separate box that slid into a socket that had all the CPU and memory.   They likely could do it so the box was size of an AppleTV now.

Then in a couple years when you can get a new logic box (for something like built-in LTE for watching Internet TV truly without a cable, and who knows what other cool stuff) you'd just pop out the old module and plug in a new one and that's it.  

It's even a good business model:  sell TV now for $X99, sell upgraded CPU every 2 years for $99.  Seems better than other model:  sell TV now for $X99, hope it breaks then sell another TV when it does.