Saturday, April 30, 2011

Friendly Bugs Live Wallpaper v1.3

  - Update: Better handling of custom backgrounds

This is inheriting the same set of changes a couple of the recent updates have, namely proper local caching of custom images.  This functionality got a minor update yesterday to fix an issue with repeately browsing for the same image, but it's not a big deal on either of the current wallpapers using it.

Thursday, April 28, 2011

KF Hearts v1.11 & KF Flames v1.16

  - Bug Fix: Better handling of repeated custom image browsing

This fix applies to both products, and both are a side effect of the image caching that went in last week.  Basically, the preferences were keying off of the filename to determine when to reload, but if the image was cached it was repeatedly using the same filename, so that's no longer valid.  This meant that if you browsed repeatedly for a custom image, it wouldn't reload it properly until you reapplied the wallpaper.

That's awkward and no good, so it is fixed now in both cases.  In addition, the image caching now stores the original size and ratio of the cached image, so the locket hearts should behave a bit better now.

Wednesday, April 27, 2011

Jumpgate Live Wallpaper v1.15

  - Update: OpenGL 2.0 is now being used
  - Update: Much faster framerate on Xoom
  - Update: Better shading on character
  - Update: Animation smoothing always on
  - Update: Less memory usage
  - Update: Higher res icon/thumbnail

This update doesn't add a ton of new bells and whistles in the traditional sense, but does move the entire project forward to OpenGL 2.0 (from 1.1).  The big reason to do this is performance on the Xoom and other high-res screens -- those devices are seriously fill-rate limited and being able to collapse multiple passes into a smaller number of more complex passes makes a big difference.  Average framerate on the Xoom more or less doubled with this update.

As a bonus this means we can use ETC1 compressed textures and use less memory at the same time.

Now, in the process of doing this a few aspects of the visuals changed -- in particular the star streaks went from being scrolling textures to being a particle effect.  This strongly reduces the amount of fillrate used at the cost of more vertices.  It doesn't matter much on the Incredible, but on the seriously fill-rate starved Xoom it makes a big difference.

The most interesting part of this was the tunnel itself.  The tunnel under OpenGL 1.1 is two passes, the first being color and the second being a brightening/darkening overlay.  That alone was hugely crippling on the Xoom, and when I found that collapsing those into a single more complex pass didn't help much (as I still had to do two samples) I ended up moving the tunnel into a render to texture effect.  Basically, I rendered my complex shader onto a 256x256 tileable image, then when I draw the scene I take that and apply it to the tunnel.  This means the scene itself is rendering something very simple, and I only have to use the complex shader on a relatively small image.

This added several fps to the Xoom, but I discovered afterward completely tanks the Incredible.  After some timing and commenting out of things, I eventually discovered that binding a texture buffer on the HTC device is hugely expensive.  After some experimentation our theory is that they effectively call glFinish() somewhere inside their bindFrameBuffer call.  This more or less means you aren't able to use render to texture for anything performance-intensive on that device. Thanks, Qualcomm. :(

But I still needed it to work this way on the Xoom.  So, what I ended up doing is creating two paths -- one that uses the RTT approach, and one that renders the tunnel in the traditional fashion.  Upon startup I do a test that renders 20 frames in one style and 20 frames in the other.  I time how long this takes, and whichever one tests faster is the path it uses.

This strikes me as kind of awkward, but given the mess of different devices out there and the fact I really want this to work decently on the tablets, it seemed like the only reasonable approach.

Update v1.16:

Fixed a bug that affected folks who'd previously had mipmapping enabled... on a PowerVR device it was crashing due to some leftover code from before the 2.0 port.

Monday, April 25, 2011

Thunderstorm Live Wallpaper v1.5

  - New Feature: Randomize colors
  - New Feature: Selectable background image
  - Update: Higher res cloud art
  - Update: Better background art
  - Update: Better Xoom performance
  - Update: Better blending (less color banding)
  - Update: Higher res icon/thumbnail art

Quite a big list of changes there, but most of them are all in the name of getting Thunderstorm to hold up better on a large screen.  Especially with the cleaned up artwork, new backgrounds, and blending improvements I think it's worlds better than it was previously on a Xoom or similar device.

We had a request to be able to randomize the color of the lightning bolts, so that's in there now -- the color dice get rolled every time a bolt strikes.  In addition, we made a couple of different background images instead of just the single one that was available before.  Pick your favorite!

Friday, April 22, 2011

Friendly Bugs Live Wallpaper v1.25

  - New Feature: Butterflies cast shadows!
  - Update: Two new backgrounds!
  - Update: Higher res icon/thumbnail art
  - Bug Fix: Custom background disappearing upon reboot

The new backgrounds are Creative Commons images with some minor photoshopping, and look quite good I think.  Credit for Driftwood goes to L.C.N√łttaasen, and credit for Tree Stump goes to Aah-Yeah.

Ladybugs is inheriting the cached custom image support that yesterday's posts are talking about as well, so that should behave all around better.  In addition, butterflies now have shadows!  This is the classic old-school Quake 1 squashed-model style of shadows, which works pretty well here due to the simplicity of the butterfly form.  :)

Thursday, April 21, 2011

Flames Live Wallpaper v1.15

  - Bug Fix: Custom backgrounds disappearing on reboot
  - Bug Fix: Switching to 'orange' hotspot works properly
  - Update: 'reset to default colors' now resets hotspot as well
  - Update: Higher res icon/thumbnail art

This is inheriting the image caching that just went into Hearts as well.  Basically, when you select a custom image, we're saving a resized version of that image locally so it doesn't matter if you delete it or remove the SD card or what have you.  Otherwise it leads to a lot of user confusion about why their background didn't show up properly.

Somehow I'd missed this previously, but due to the way the logic worked internally reverting back to the default 'orange' flame image didn't work properly once you'd switched away.  After a reboot it was fine, but it didn't take affect immediately.  That's fixed now.

Hearts Live Wallpaper v1.1

  - Bug Fix: Custom images disappearing on reboot
  - Update: Higher res icon/thumbnail art

Okay, so we're now handling custom images a lot better.  It caches them in local storage so they won't be affected by the SD card going away, or rebooting or whatever.

Previously, what we were doing was checking for a missing image periodically and reloading it if it became available again.  That was mostly fine except for one wrinkle -- apparently that update never actually got published.

This is a major failure on my part, and I want to apologize for everybody who's been inconvenienced by having the default image show up and never go away.  Somehow or other the update was made, packaged up, then uploaded to the Market, but never actually published.  I have no idea how this happened, or how I never discovered it up until  now.  I'm really sorry folks.

The worst part is we've gotten reports of the image reloading not working from people, but every time I'd go and try it, and it would work fine (since I'd changed it and packaged it and everything, and that package is what I was testing), but I somehow never looked at the Market listing to notice it had a draft saved. :/

Monday, April 18, 2011

Easter Meadows Live Wallpaper v1.05

  - New Feature: Grass height preference
  - Update: New grass texture
  - Update: Better performance

The underlying grass texture got an update here, it's definitely nicer than the previous one!  In addition you can now control how tall you want the grass blades to be via the settings screen!

You should see a slightly higher framerate as well, as the grass simulation now culls regions out of camera view -- previously this was happening only for objects.

Blue Skies v1.4

  - Update: Positioniong/SMS features now optional

This one breaks my usual rule by being largely invisible to the user.  Basically, if you have a hardware device without telephone or positioning, the functionality will now fall back without a problem.  This means I can tag those hardware features as optional, which means you should be able to see these listed in the Marketplace for the Xoom Wifi, for example.

Saturday, April 16, 2011

Snowfall Live Wallpaper v1.26

  - Bug Fix: Popping during time of day at some locations

I got some reports from folks at higher latitudes that they were seeing a pop at midnight, or were seeing nighttime constantly.  This should be fixed now, sorry about that folks.  It should be extremely tolerant of any event sequence now -- if you're in some crazy place where sunset happens earlier than sunrise, it'll be fine with it.

Friday, April 15, 2011

Updates Tomorrow

I should be publishing updates for both Blue Skies and Snowfall later today.  Both of these are directly tied into the time of day/location stuff.  Basically, we're making the positioning requirement optional in case there are some devices out there without coarse location support.

In Blue Skies the SMS requirement is also being made optional, as for a WiFi tablet (for example) there may not be SMS services at all, and if the requirement is non-optional the Market won't even display the listing.  The SMS service for Blue Skies is used to (optionally) display balloons drifting through the scene based on the number of unread messages.  As it's a cute extra feature rather than something central to the product there's no reason not to work without it if need be.

Dynamic Paint Live Wallpaper v1.15

  - Update: Lower memory usage

This is primarily a bug fix release that does a better job of managing its render-to-texture buffers.  This should trim the memory usage by a few megs, and hopefully help performance a bit besides.

Tuesday, April 12, 2011

Silhouette Live Wallpaper v1.6

  - Update: Nicer cloud overlay art
  - Update: Fixed dithering on sky backdrop
  - Update: New icon and thumbnail art
  - Update: Added live wallpaper usage flag
  - Bug Fix: Better preview screen behavior

On a really high res device, the lack of dithering in particular actually makes a pretty huge difference.  It's a lot cleaner and sharper, and that's helped along by the new cloud overlay art.  I also made the cloud angle a lot more extreme so it feels more like things are coming in from a distance than it did before.  The new cloud overlay is completely greyscale as well, so despite being four times the resolution should use the same amount of memory.

These changes definitely look sharper and hold up very well on even a high res screen.

Monday, April 11, 2011

Easter Meadows Live Wallpaper v1.0

(Android Market)
(YouTube Video)

Finally got this one published after tinkering with it for far too long.  Basically what we have here is a colorful easter scene, complete with blowing grass, butterflies, eggs, and more.  It turned out really beautifully and I'm extremely proud of the result, especially considering the fairly meager hardware we've got it running on.

On a technical level we spent a ton of time experimenting with the grass, and went through a few different iterations as far as rendering it goes.  Ultimately we ended up with something like twelve thousand individual grass blades all animating and being influenced by the wind.  A bit overkill but I really like how the effect turned out.  :)

There's a variety of settings to control number of eggs, which basket you want, how fast the wind moves, how many butterflies there are, etc.  In addition, the 99 cent version gains twice as many egg and butterfly variations.

I think this is one of the prettiest projects we have on the market so far and am really excited to hear what people think.  As always, if you have any problems please let us know!

Saturday, April 9, 2011

Blue Skies Live Wallpaper v1.35

  - New Feature: Accurate sunrise/sunset times for your position
  - Update: New icon/thumbnail art
  - Bug Fix: Now unregistering battery intent receiver properly.

Update: v1.36 just released.  This fixes an issue with the moon/sun not displaying properly.


Similar to Snowfall, Blue Skies will now use your coarse location to calculate sunrise/sunset based upon your current location and time zone.  This seems to work well in practice, let me know if you run into any issues!

The icon and thumbnail art is now higher res, so it'll look better on tablets mostly.

If you've ever looked at your log and seen a warning about an intent receiver leaking, that's because we were registering to get updates about the phone's battery, but had forgotten to unregister upon shutdown.  This is fixed now.

Both this and Snowfall now have the live wallpaper filter enabled as well, so hopefully that'll help reduce confusion a touch.

Friday, April 8, 2011

Snowfall Live Wallpaper v1.25

  - New Feature: Time of Day now calculates accurate sunset/sunrise
  - Update: Santa sightings more frequent outside of December
  - Update: Higher res icon/thumbnail art
  - Bug Fix: Fixed compatibility detection

The big thing here is that enabling Time of Day will now check your coarse location, and calculate an accurate sunset/sunrise time based on it.  This is one of those things we've gotten a bunch of e-mail about over time, so hopefully folks like the additional accuracy.

Saturday, April 2, 2011

Dynamic Paint Live Wallpaper v1.1

  - New Feature: Brush width preference
  - Update: Two new backgrounds -- Mosaic and Canvas
  - Bug Fix: Black screen on Tegra devices

Some new stuff for this update, including a couple of new backgrounds.  Mosaic's indentations show off the effect quite well.  We also have support in for ETC1 compressed textures, so the memory usage should be better.

In addition, you can how customize the width of your brush when interacting with the screen!