Saturday, December 31, 2011

KF Flames Live Wallpaper v1.2

  - Update: Now using OpenGL 2.0
  - Update: Better responsiveness
  - Update: Color thumbnails in settings screen

This update brings Flames over to our OpenGL 2.0 framework, and should generally work better than the previous version, though it won't look a whole lot different.  Still, better stability and less CPU usage seem like worthy goals to me.  :)

This also gained color swatches for the color prefs on the settings screen, which I think is a pretty substantial useability win.

Friday, December 23, 2011

Space Battle Live Wallpaper v1.1

  - New Feature: Randomize enemy formation!
  - New Feature: Tweak hero ship's altitude
  - Bug Fix: Occasional crash on startup
  - Update: Better enemy formations in landscape mode

The big reason for this update is to fix a crash that happens on startup occasionally.  We, uh, forgot to call the super class in one of our initialization procedures.  Not clever, but it happens.

But, if you're doing an update always try to include some other things... so that we have.  You can now have the enemy ships randomize their formation periodically, instead of just sticking with a single one.  You can also now adjust the hero ship's position relative to the bottom of the screen -- if you ended up with the ship mostly behind your phone UI it's easy to fix that now.

Another minor adjustment should give generally better enemy behavior in landscape mode, so tablet folks in particular should be better served by this update.


Aquarium Live Wallpaper v2.66

  - Bug Fix: Missing fish from dialog box in Android 4.0
  - Update: New icon art for app icon and no-fish icon

This is mostly a bug-fix update, as while testing things on Android 4.0 I found an issue with the fish picker's layout.  The last column went missing, and as it turns out simplifying the layout a bit solved the issue.  I also switched out a couple icons so things work better if the background color changes.

Tuesday, December 20, 2011

Galactic Core Live Wallpaper v2.15

  - New Feature: "Intense" theme!
  - Update: Adjusted visuals/more depth to themes

This is ready to go and will likely be uploaded in the afternoon sometime.  Basically, what we have here is a new, very dense theme courtesy of excellent artist Kim Lathrop.  It's been added to the list under the name "Intense."

The other themes have gotten some tweaking as well, and should have some more visible complexity and depth.  Hopefully everyone digs the update!

Wednesday, December 14, 2011

Space Battle Live Wallpaper v1.05

  - New Feature: Giant Super Laser!
  - New Feature: Homing shots weapon!
  - New Feature: Randomize Weapon!

A bunch of new features here, in particular you can tap on the hero ship and fire a super laser!  It decimates anything it touches!  We also added a new home weapon type, and the ability to randomize the hero ship's current weapon -- it'll pick a new one every ten seconds or so.


Sunday, December 11, 2011

Holiday Lights Live Wallpaper v1.0

(Market Link)
(YouTube Link)

One of our art folks (Allyson Vaughn!) has been working on this in the background for a while now, and the end result has turned out really nice.  What we have here is a beautiful nighttime scene of a brightly decorated house and yard, with gently falling snow.  It's a fully 3D scene, so the camera swings around as you change home screens, and we have prefs in place for you to tweak snow behavior too!

There's also a second theme available, an abstract christmas light show that's very brightly colored and looks very cool!

I'm excited to get this one our there and see if folks like it, I think it's turned out very well, and gives a homey nostalgic feel to your home screen.  :)

Tuesday, December 6, 2011

Snowfall Live Wallpaper v2.1

  - New Feature: Occasional shooting stars!
  - Bug Fix: Fast day sometimes not working
  - Update: Camera pans farther in portrait mode

This is a misc grab-bag of updates that initially got going because a lot of people were having trouble with the Super Fast Day checkbox.  That one took a while to track down.

Basically, we have an internal library that attempts to calculate an accurate sunrise/sunset time by looking at your current position, your time zone, and a few things like that.  It mostly works pretty well.  Calculating the position is expensive-ish though, so I skip that if you're using Fast Day, since it doesn't matter anyway.

However, the renderer still uses the time of day object to get its times.  That's fine, but what would happen is if you turned on Fast Day without ever having turned on regular old boring time of day first... it wouldn't ever have calculated a position.  This means everything defaulted to 0, which means all the times end up being midnight, which means you don't see any times change, ever.

I updated the time of day library to have some reasonable defaults, so this shouldn't happen again in the future.

What are the other updates?  Nothing too big, but you'll get a little more camera panning in portrait mode now.  In addition, we've had a lot of people request shooting stars, so those will happen occasionally too.  They're uncommon, about once per minute, but you should see them here and there.  :)

NA Flags v1.67 & EU Flags v1.67

These are incremental updates to get some minor changes out there, remove the USO note from NA Flags, update the icon to match guidelines better, and a few things like that.  Sorry folks, nothing exciting.

Sunday, December 4, 2011

Space Battle Live Wallpaper

(Android Market Link)

We've had this one going on the back burner for a while, and it's exciting to finally get it out there!  Basically, Space Battle is a retro-style arcade game that plays itself in the backgound of your home screen!  With classic Galaga style enemy behavior and the traditional hero ship at the bottom of the screen, it's a fun backdrop that runs beautifully at a solid 60fps at all times.

There's some fun interaction too -- tapping on enemies kills them, tapping elsewhere on the screen causes the hero ship to fire a shot.  In addition, we've got a few different sets of themed sprites, so in the full version you can pick what style of art you want.  Other options include setting colors of shots, enemy formations, and other game options.

I think this is a really neat concept, so hopefully other folks agree.  If you have any suggestions, say the word!

Wednesday, November 30, 2011

Snowfall Live Wallpaper v2.06

  - Bug Fix: Pixelated aurora on some devices

We end up fixing this sort of thing here and there.  Generally, it has to do with a texture effect slowly losing its integrity over time, until eventually it just looks like a smear of color.  What's up with that?

Basically, 3D hardware operates at a fairly low level of accuracy.  So long as you keep your numbers small, everything is fine, but bigger numbers get more and more granular.  When you have a number like, say 1.0006 -- that goes down to one ten-thousandth.  At small values, the hardware maintains enough accuracy for that to hold up  just fine.  There might actually be ten-thousand increments between 1 and 2.

If you go bigger though, this stops being true.  If I had a value like 1000.0006 it might just get lopped off and be the same as 1000 is.  At high values it might only have a handful of fractions between whole numbers.  The higher you go, the less accurate the increments get.  Mostly this is okay when it comes to real-time 3D rendering.  A rough approximation is just fine.

So what does this have to do with pixelated aurora effects?  Well, the aurora effect in Snowfall consists of a few overlapping animated models, each of which has a shader on it that's built out of a few layers of textures.  One of these layers scrolls horizontally (the one mixing in the rainbow colors).  As it moves, the colors drift across the screen.

How much that layer has moved at any given frame is based on the amount of time elapsed.  This means if you've had the wallpaper running for a long time -- a few days perhaps -- that number is starting to get pretty big.  That means we're up into the thousands or tens of thousands, and all of a sudden when the hardware goes to render the texture it's starting to get all blocky.

It's easy to fix this sort of problem itself once you know where it is -- in this case using the modulous operator to make sure the value doesn't ever get very large.  The problem is that it's easy to miss doing that even when you know it might be an issue, and these sorts of bugs are easy to overlook since they take a long time to show up.   While we we make a point of testing every release, it may not have been left to run for hours and hours at any given time.

Anyway, long update for a short change list.  Hopefully that informs someone.  :)

Friday, November 25, 2011

NA Flags Live Wallpaper Fundraising for USO

I just wanted to mention that since our Child's Play donations went so well last year, we're hoping to do some of the same things this year!  First up, if you purchase the full version of NA Flags up through December 2nd, we'll be giving thirty cents per sale to the USO.  Help bring some cheer to the troops overseas!

Koi Live Wallpaper v1.3

  - New Feature: Floating flowers!
  - Update: Rearranged preference layout
  - Update: Misc framework improvements

The primary goal of this update is really to get the various framework improvements we've made over the last few weeks out there, as we've really helped stability in a few places.  Mostly these are all corner cases like if you really quickly cycle to the preview window and back a dozen times... but still, better than it was before.

I hate pushing updates with nothing new in the box though, so we've added a new slider to the prefs that allows you to add lotus flowers to the scene!  Hope everyone enjoys!

Thursday, November 17, 2011

Wavescape Live Wallpaper v1.01

  - Bug Fix: Rendering issue on Galaxy S2

The Galaxy S2's picky render target formats gets us again!  Sorry about that folks, the missing rays should be fixed now.

Snowfall Live Wallpaper v2.05

  - Update: New aurora effect!

Lots of folks wanted this improved, and now that this is running on 2.0 it's a lot easier to make it look good.  So, this update revises the aurora borealis effect in the sky, I think it's quite a bit prettier now!

Thursday, November 10, 2011

Snowfall Live Wallpaper v2.0

  - New Feature: Santa appearance frequency control
  - Update: Now using OpenGL 2.0
  - Update: Big speed boost on tablets
  - Update: Sharper, cleaner tree art
  - Update: Better stability

Spent a couple of days getting this product ported over to OpenGL 2.0, which should allow us to add more improvements over time.  The immediately visible change should be generally much snappier performance when using your home screen, and generally lower CPU usage.  In particular tablets now draw the background as only a single pass even when time of day is enabled, which is a big speed win.

In addition we've cleaned up the tree art to improve its sharpness and done a few other things like that.  As a result of the changes the aurora doesn't look quite the same, but I expect to improve it over the next update or two, as 2.0 gives us a lot more flexibility there.

Sunday, October 30, 2011

Galactic Core Live Wallpaper v2.1

  New Feature: Themes!
  Update: Stability improvements

This update inherits the various stability improvements mentioned in the previous couple posts, and in addition to that actually gains a major feature!  We made the art for this a while back, but things have been so busy it's taken a while to get it ready for the light of day.

The "Themes" drop-down in the settings menu allows you to switch between different visual styles, and by that I mean more different than you can do with just some color tweaks.  We've got three in place right now, and I'm attaching pics of the two new ones to this post.  One is a cloudy nebula sort of feel that doesn't have a distinct center, while the other is a heavily painted and saturated dark-colored galaxy.  Hope everyone digs it!

Tuesday, October 25, 2011

Wavescape Live Wallpaper v1.0

( Market Link )

Originally designed for tablets, Wavescape is an undulating terrain surface with light rays emitting out of it!  It's a pretty cool moving background that very much fits into the abstract background category, and honestly looks like a moving version of something you'd find in the wallpapers category on Deviant Art.  Hopefully folks dig it!

The rays are generated via a pixel shader and can have their length and intensity modified in the settings, along with all the colors and speeds of the movement.  We haven't done much with this sort of multi-pass rendering in a lot of our Market products, but meanwhile we've had quite a bit of contract work happening that's built up a lot of experience here.  We'll hopefully be taking more advantage of this in our own projects in the future.

In addition to this, look for a similarly abstract product showing up in the next week or two.

Monday, October 24, 2011

UI IDs in Android library projects, with ADT 14

We just moved over to the newest version of ADT (version 14), which substantially revises the way library projects are handled in Android.  The impetus behind the changes are a good thing -- package everything into a jar file instead of a shared source folder.  This should mean that in the future we'll be able to easily treat our library folders as a binary when we need to provide source to someone.

So far though, this is a bit bumpy.  The big thing is that we have a lot of UI work happening in our library projects.  Things like color pickers, display of color swatches, slider bar preferences, and so on are all shared between something like 50 different projects, and all of them are contained in a central library project.  Obviously this avoids a massive amount of code duplication.

The problem I'm finding is that every time one of these library-based UIs gets used, it fails as soon as I try to select an element by an ID.  I assume the ID isn't valid, maybe as a side-effect of IDs no longer being static?  Either way, something like this still compiles fine and nothing has changed with the layouts or anything:

        LinearLayout layout = (LinearLayout)inflator.inflate( R.layout.preferencecolor_layout, null );
        TextView main = (TextView)layout.findViewById( );
        main.setText( getTitle() );

Except that while previously main.setText worked fine, now main ends up being invalid.  I'd be surprised if they actually broke the ability to do this at all, so suspect I'm just missing something.

Update: Actually, this works fine.  Somehow or other in the process of messing with this, something in my library folder never actually got recompiled.  I'm confused about that since I did adjust the syntax a couple of times, but maybe since I didn't change any resources was never recreated, and was now invalid?  Either way eventually I cleaned the project and now everything seems to behave properly.  Works for me.

Friday, October 21, 2011

Halloween Live Wallpaper v1.3

  - New Feature: Tap on pumpkins to turn their light on/off (pref)
  - Update: Misc stability improvements
  - Update: Tweaked pumpkin texture

This should fix a couple of stability issues (see the Flags post below), and in addition you can now enable the "Toggle Lights" feature, which will turn the Pumpkins lights on and off when you tap them.  Simple but it's another bit of interactivity.  At the same time I adjusted the centroid of the touch detection so it's better centered on the pumpkins themselves.

There's a couple other art things in this update, but mostly it reduces a stripe down the side of the pumpkins that has been driving me crazy.

Flags of Europe v1.65, Flags of North America v1.65

  - New Feature (Europe): Eight new flags!
  - Update: Misc stability improvements

This update was primarily to get EU Flags updated with a bunch of new flag art, but as NA shares the same codebase I updated it as well.

Basically, we've been doing some revisions of our underlying framework and believe we've solved a number of issues related to stability in the preview window.  Doing something like frantically clicking your keyboard in and out a couple dozen times shouldn't cause a crash anymore, for example.  Not exactly a common use case admittedly, but behavior that led to a crash there probably causes the occasional problem elsewhere.  So, we've finally sewn that up.

A couple of similar issues got dealt with at the same time, and so far as I can tell we've generally improved stability, so it's time to push this out into the world and see how things go.

Which flags got added?  A grab bag of user requests that have built up over the last couple months mostly.  Armenia, Bosnia/Herzegovina, Macedonia, Monaco, Montenegro, San Marino, Serbia, and Vatican City.

Saturday, October 15, 2011

Koi Live Wallpaper v1.25

  - Update: Seven new fish types!

This update contains seven new Koi types painted by the excellent Allyson Vaughn, based on real species.  It's also inheriting several general framework improvements that have occured over the last couple of weeks.  Enjoy!

Shooting for another update with some new background art before long!  :)

Tuesday, October 11, 2011

Jungle Waterfall Live Wallpaper v1.15

  - New Feature: Adjust waterfall speed

This is something we've been asked for a few times, and as Jungle Waterfall hasn't had an update in a while it was time to give it an update with any framework fixes that have happened meanwhile.  This is still one of my favorite projects.  :)

Monday, October 10, 2011

Halloween Live Wallpaper v1.25

  - New Feature: Scare spiders away by tapping on them!
  - New Feature: Pumpkins respond when touched!
  - Update: Whiter lighting, oranger pumpkins
  - Update: Higher res pumpkin and gravestone textures

So, when I revised this to use OpenGL 2.0 I unfortunately made the lighting darker than previously, and folks really hated that.  This turns this back up to the previous levels, so the pumpkins are oranger and everything in general is more like it was before.

I also added a few new features, particularly in the form of touch interactions with the pumpkins and spiders.  Enjoy!

Sunday, October 2, 2011

Halloween Live Wallpaper v1.2

  - Update: Now using OpenGL 2.0
  - New Feature: Animated trees!
  - Update: Smoother animation on ghosts/spiders
  - Update: Higher res house/terrain texture

Halloween hasn't had an update since last year, and ran pretty sluggishly on a tablet, so the goal of this revision is to remedy that.  I started out by moving it to OpenGL 2.0, re-implemented the lighting and other scene features, and shuffled the draw order more intelligently.  Once I had everything looking pretty much the same as before, I added animation smoothing to the ghosts and spiders, then rigged and animated all the trees in the scene.  I also tracked down the original texture artwork for the house and resampled it to a higher resolution.

All the opaque textures are now using ETC1 compression, so they're a sixth the size in memory than they originally were.

So, as a result, we now have more going on, at a higher resolution, but at a higher framerate and with less memory use.  That's pretty much a win all-around.  Enjoy!  :)

Saturday, September 24, 2011

Jumpgate V1.2

  - Bug Fix: Error when switching characters
  - Update: Misc performance improvements

Been a while since we updated this one!  A user reported an issue with switching characters, and as a side-effect I ported it to our updated framework.  This generally gives something of a performance boost, so you should find things a bit snappier in general.

Thursday, September 15, 2011

Koi Live Wallpaper v1.2

  - Update: Four new fish!

Been sitting on this one a few days but have been rather busy with other projects, so sorry for the delay there.  Basically, we have a few new Koi breeds represented!  You'll find them at the end of the list. :)

NFL Live Wallpaper

This has actually been out for a week or two now, but I wanted to mention that we did the development work on the NFL Live Wallpaper listed by Cellfish Media.  It's quite pretty and has artwork available for all the NFL teams.

Some of the development work on this project included implementation of proper tangent generation for normal mapping, which should be useful in the future.  :)

Friday, September 2, 2011

Koi Live Wallpaper v1.15

  - Update: Nine fish at once
  - Update: HowTo window has a tooltip!

Next update will hopefully have more fish textures, but for now I've been informed that apparently nine koi is lucky, so I bumped up the number of simultaneous ones you can have!  Enjoy!

The second one is a nicety that I'm putting into all our products -- when you use the HowTo window via the Marketplace 'open' button, it will float a tooltip instructing you what to do when you shortcut to the live wallpaper picker.  Small but I feel like it's more professional.

Galactic Core Live Wallpaper v2.03

  - Bug Fix: Crash with orientation sensor on 2.1 devices

The 2.0 update on Galactic Core has unfortunately been a bit of an odyssey, as we're run into problems on 2.1 phones way more than we ever have previously.  Fortunately, I think this is the last major issue.

I still see a strange glitch with the color preferences on the 2.1 Galaxy S I have here, but it's harmless and I wanted to get this crash fix out there.

Monday, August 29, 2011

Galactic Core Live Wallpaper v2.02

  - Bug Fix: Settings screen crash on 2.1 devices

So, one of the additions in the 2.0 version was a custom PreferenceColor that has a visible color swatch.  This is technically the first product we pushed out using that, and everything largely seemed fine... until I started getting a bunch of e-mail from Sony XPeria X8 users saying they get a crash when they push the settings button.

This worked on every device we tried it on, so that was really confusing.  Eventually I asked a few of the customers to send over a log file using aLogCat, and sure enough saw the same callstack in each one that arrived: a crash in setColorFilter.

Ultimately this made a lot of sense -- while we build against the 2.3.4 SDK, we allow our products to run on anything as low as 2.1.  The particular setColorFilter I was using didn't get introduced until Android 2.2, and I hadn't tested the preference listing on a 2.1 device (only the rendering), so didn't notice the problem.  The solution is simply to use an alternate setColorFilter that did exist in earlier SDK versions.

Sorry about that folks, lesson learned.  I may go pick up an X8 or Zio so we have another 2.1 device around, most of our test phones have ended up being updated to at least 2.2 over time.

Bamboo Forest Live Wallpaper v1.3

  - New Feature: Color swatches in preference screen
  - Update: Fixed a small animation hitch

This is a small update that fixes a couple of problematic animation spots.  A user sent in a bug report and sure enough, I'd managed to miss that all this time.

At the time time I integrated our custom PreferenceColor tile, so there's an on-screen swatch now showing your current color settings.  Previously, you'd have to click on the setting and look at the popup window to see.

Friday, August 26, 2011

Galactic Core v2.01

  - New Feature: Pref to remove all framerate limiting
  - Update: Better orientation sensor handling
  - Update: Greater star depth

The main reason for this update is to improve the orientation sensor, which had some bad logic going on on my part.  Basically, for 2.0 I switched it over to using the orientation sensor rather than the accelerometer, which is much better for battery life but returns an angle (0-359) rather than a gravity vector.  To smooth out the behavior, I accumulated the values gradually instead of just using the most recent one.  This smoothed things out, but I was still noticing that sometimes it seems like the behavior would be backwards.

I finally realized what it was and got it fixed.  Basically, since we're just using the orientation to modify the X axis of the camera, the range 0-180 is visually the same as 360-180.  360 and 0 being the same is cool and all, except that when you're doing a bunch of averaging 360 isn't the same as 0 at all -- it's dragging your average over towards 180 instead, which is the opposite value.  Obvious in retrospect but I missed this for a while.  The easy fix is that if the incoming value is greater than 180, subtract it from 360 before putting it into the accumulator, then work with that value range.

I also hooked up a checkbox in the settings that will let you uncap the framerate if you'd like.  Normally I'm keeping it low to help the UI stay snappy, but if you've got a Galaxy S or something feel free to let it go wild, it'll be fine.

Friday, August 19, 2011

Galactic Core Live Wallpaper v2.0

  - Update: Now using OpenGL 2.0
  - Update: Better performance on tablets
  - Update: Smaller filesize
  - Update: More scene depth

While it looks pretty similar at a glace, this update actually revises just about everything, and as a result I think there's a lot more depth to the scene.  The layers have been handled differently and there's now a particle system adding additional variance.  At the same time performance should be noticeably higher, especially on a Xoom or similar device.

Please let me know what you think!

Tuesday, August 9, 2011

Koi Live Wallpaper v1.1

  - New Feature: Custom background images
  - Update: Adjusted swim animation

There's been a lot of requests for this one, so this update has support for a custom background image.  I also tweaked the swim animation to help desync the fins more than they were before.  Enjoy, folks!

Saturday, August 6, 2011

Aquarium Live Wallpaper v2.65

  - New Feature: Sunken ship background!

This update includes a couple minor update and such, but really the main thing is to get this really excellent sunken ship background out there.  This was painted by Kim Lathrop, who's got a heck of a talent for this sort of thing.

Wednesday, July 27, 2011

Koi Live Wallpaper v1.05

   - Bug Fix: Fixed black screen on Galaxy SII
   - New Feature: Water plants available in settings
   - New Feature: Fish flakes cause water ripples
   - Update: More visible fish flakes
   - Update: Adjusted fish turning behavior

The big reason for this update was the Galaxy SII issue, which was resulting in a black screen similar to Chroma Wave.  We were, again, using a RGB render target.  In this case that wasn't the only incompatibility though.

For whatever reason rendering the fish was breaking everything, even once we got the buffer format switched.  A lot of poking and prodding eventually demonstrated that the Mali 400 (The SII's GPU) has drivers that seem to stick very strictly to the OpenGL spec.  As it turns out, we weren't properly unregistering our attributes when switching shaders, and as best I can tell all the other drivers just go ahead and do that for you, so it was never an issue previously.  We now unregister all our attributes and uniforms whenever we switch shaders, and everything's fixed now.

Why was it the fish breaking everything?  They use animation blending, so they register an extra set of attributes for the blend frame's positions and normals.  Those stuck around when we switched shaders, and the data they had wasn't relevant for the new model, so things broke and rendered black.

Going back to the other updates in this, uh, update: You can now add water plants to the scene!  There's a slider in the settings menu letting you go from just a couple all the way up to 16.  These are affected by the water distortion currently, which isn't entirely correct but looks much better than the first draft that wasn't.  We'll investigate having them float on top the water and respond more appropriately eventually.

Lots of people didn't think the fish feeding worked, and I largely chalk it up to the fact that the fish food blended in quite seamlessly with most of the backgrounds.  To that end, any fish flakes that spawn now cause a water distortion.  In addition, we've dyed them blue for better visibility.

While all the rest of this was going on I adjusted the handling of the koi's angular acceleration.  I think it's a notch smoother than it was before, please let me know if you disagree.

Chroma Wave Live Wallpaper v1.05

  - Bug Fix: Black screen on Galaxy S II 
  - Bug Fix: No more horizontal line in wave gradiant
  - Update: Changed default colors

The main reason for this update is to get the Galaxy S II working.  On those devices we'd end up just showing a black screen, and it took a while to work out why this is.

Basically, despite having multiple layers of blending going on, Chroma Wave saves a ton of fillrate by rendering into a lower-res buffer first, then scaling that up to screen size.  The artwork is soft-edged so this is basically invisible.

The render buffer use for this was set to RGB, and apparently that doesn't play nice with the Galaxy SII's current drivers.  We ended up fixing the issue by setting our render target to RGBA, which isn't really ideal but at least it works.

Monday, July 25, 2011

Captain America Live Wallpaper

I actually didn't get a chance to make a post about this earlier, but wanted to mention we handled development of the Captain America wallpaper that's currently on the Market.  We were approached by Disney Interactive to make something Android-specific to help promote their game (published under the Marvel banner), and though we had rather a lot going on at the time I was really excited to make something for them.

After some initial discussion we decided to keep it reasonably simple, and focus on a nice looking treatment of the shield, with some additional motion to help keep things active.  The artwork is based on the original film shield and turned out very well, I think, and you get bullets bouncing off as you interact with it.

Hopefully everyone likes the result!

Aquarium Live Wallpaper v2.6

  - Bug Fix: Strange behavior when setting custom background
  - Update: Better plant motion
  - Update: Ugly stubby plant is now a better plant!

The big reason for this update is to fix the bug with the custom background, which I can't believe has stuck around this long without complaint.  It should generally behave much more like you'd expect now.

I hate doing updates with no visible differences, so I revisited all the plants and gave them somewhat better motion.  It's not night and day but it's better.  At the same time I decided to finally replace that short stubby plant that I've always thought was awful.  There's a much better looking plant in its place now -- a ludwigia, I believe it's called.


Monday, July 18, 2011

NA Flags Live Wallpaper v1.6

  - Update: New flagpole
  - Update: Less memory usage

The big thing here was to bring this in line with EU Flags, which gained much better flagpole artwork, in addition to a different treatment of background images that saves most of a meg of memory.  In addition, NA Flags is now using our new wallpaper service, which seems to be behaving just fine so far.

EU Flags Live Wallpaper v1.6

  - Update: Now using OpenGL 2.0
  - Update: Higher res flag textures
  - Update: Custom flags now use embossing/stitching
  - Update: New flagpole!

This is basically the same round of updates as we did previously with NA flags, plus some general technical improvement besides.  All the flag art is higher res and reads noticeably better on a Xoom or similar tablet, and the performance in that situation is greatly improved as well.

I did mess up at one point with this update -- the initial version I uploaded didn't have the GLES version requirement set in the Manifest.  This means for about two minutes I had an update posted that requires OpenGL 2.0 but didn't say so, which means some folks with phones that don't support OpenGL 2.0 might've ended up downloading and update that doesn't work on their hardware.

I suspect this isn't goo much of an issue, but there are some devices out there that support Live Wallpapers but only OpenGL 1.1.  So long as the GLES version flag is proper, they'll simply keep going with the older version so far as I can tell.  Breaking them is definitely not something I wanted, hopefully this didn't cause any long-term issues.

Saturday, July 16, 2011

Hello, World!

As Jeremy mentioned a few posts ago, we've been working on a rewrite of the WallpaperService code that is the foundation of all of the Live Wallpapers that we release. I'll dive into that topic in my next post. Right now, I figure that an introduction is in order. :)

My name is Bill Roeske and I've been handling most of the low-level and graphics programming duties here at Kittehface since the beginning of April. I've also contributed to wallpaper design, coding, and art - particularly for NA and EU Flags, Dynamic Paint, Easter Meadows, Prismatic, True Blood, Chroma Wave, and Koi.

Like Jeremy and many others, I came to mobile development from the video games industry. Being only a five-year veteran before making the change, I feel extremely privileged to have worked with some really fine people on the Rock Band, Halo, and Bomberman franchises.

Most of our work here has been on Android Live Wallpapers, which isn't as different from developing video games as it may seem. Both need to run fast and smooth. Both need to present graphics that look good. Both are at their best when they're highly interactive. Quite often in both, your work only has a few seconds to prove itself or be discarded in favor of something more interesting.

The big differences? Well, at the moment, mobile projects generally don't take years to develop. Some of our wallpapers don't even take over a month for the initial version. Product updates are a breeze to deliver, which directly results in more frequent updates driven by feedback from all of you.

Finally, for Live Wallpapers anyway, we get to cheat a whole lot. Like, a ton. Most games offer a whole world with intricate detail from every angle and infinite ways to accidentally break it. A Live Wallpaper scene is more like a diorama, which actually works out the best for everyone. Detail is focused where people will see actually it, and because of that laser focus, we can get a great looking scene running smoothly in the background of a phone. Generally without the world-destroying bugs, too.

As you can probably tell at this point, my posts will most likely explore the more technical side of what we do. I hope that it's something you are interested in reading about, because there are some pretty cool things that happen under the hood every once in a while. And as people around me well know, I generally can't shut up when I see or do something that I think is cool!

Friday, July 15, 2011

Koi Live Wallpaper v1.0

(Android Market link)

We've been working on this one on and off for over a month.  It's still got some features I'd like to add, but the current version's already very good looking with some beautiful water surface response, so I think it's time it went out and met the world.

Koi is exactly what it sounds like -- colorful fish exploring their pond.  You can customize your fish population similar to Aquarium, can select from ten different backgrounds, and can double-tap to feed your koi.  Plus, you can interact with the water surface.  It even fully supports multitouch!  If you explore the settings you can also enable raindrops and pressure sensitivit.

This turned out very well in my opinion, and I'm excited to hear what folks think!

Thursday, July 14, 2011

Chroma Wave Live Wallpaper v1.0

(Android Market link)

Finally a new release!  We've been a little slow on the public facing side the last month or two, and it's exciting to get a new project out there for folks to check out.  This one's abstract, with a few overlapping sine waves blending with different colors and speeds.  It's calm, makes some very pretty colors, and of course has a bunch of controls allowing you to adjust colors, speeds, and what have you.

This actually started out life as a prototype for a different project, but we liked the look and feel to figured we should go all the way.  It's also the first project we've got using our new wallpaper service, which uses less memory and generally behaves better than the old one.  You should see generally snappier behavior when switching from portrait to landscape, and a total lack of loading when applying the wallpaper from the preview screen.

We think we've worked out all the kinks here, but please let us know if anything happens when you try it out!  Assuming all goes well we'll have an update to EU Flags that incorporates all the OpenGL 2.0 speed-boost that NA Flags got a little while ago.

Friday, July 8, 2011

What's going on?

Lots, actually.  We've been rather quiet the last few weeks as we're working on several projects, both for ourselves and as outside work.  We'll talk about the outside projects once they're out, but our own projects look like this currently:

* A koi pond with interactive water Released!
* An abstract color-mixing wallpaper Released!
* Update to both flags applications Released!
* An Aquarium update with more plant motion

A couple of these are actually more or less done, but the big thing we're currently looking at is a rewrite of our underlying wallpaper service.  You may have noticed that sometimes when returning to the home screen you get a one-frame blip of black -- our big target is to fix that, and to otherwise make sure we have a solid handle on everything happening at that level.

So, we're hanging back on releasing these things until we have confidence in our update.  It'll improve our whole product line so seems worth the trouble, though I hate the radio silence meanwhile.

We'll try to do a couple blog posts about any snags we run into here.

Friday, July 1, 2011

NA Flags Live Wallpaper v1.55

  - New Feature: Flags for all Canadian provinces/territories
  - Update: Wind speed has more range

It's Canada day!  We've been asked for it a bunch of times, and since we have a better handle on file size now it seemed like a good idea to finally get flags in for all our friends in the great white north.

In addition, we had a question a few days back about making the wind speed go lower.  To that effect I've updated the wind speed pref with a six-position slider.  The low end is about a third slower and the high end is about a third faster.  Enjoy!

Thursday, June 23, 2011

Aquarium Live Wallpaper v2.55

  - New Feature: Random fish!

As mentioned a couple days ago, the main addition to this update is randomized fish!  If you select the question mark icon in the fish select window, you'll end up with a fish that randomly changes its species periodically!

The logic here is that every time the wallpaper goes to sleep (meaning your phone went to sleep, or the home screen otherwise is no longer active), we roll the dice on any random fish in the scene.  There's about a 5% chance any given once will change to a different one.  This means they're not changing constantly, but will shift over time so you get to see different ones.

Due to a limitation with the AI, Jellyfish aren't in the random fish list.  Sorry!

Tuesday, June 21, 2011

Next Aquarium update

I've got an update ready to go for Aquarium that will let you set a fish as 'random'.  Basically, the fish selection window now has a "?" option, which will let you set that particular fish to change its species occasionally.  This means you can choose how many random fish you want.

There's some loading/unloading on the fly going on here so I'm going to run it for a while and make sure there's no problem, but it seems to work pretty well.  Here's a pic!

Wednesday, June 15, 2011

True Blood Live Wallpaper

In addition to other things, we've been busy the last few weeks creating a promotional project for the good folks over at HBO.  As a result, we've got the official True Blood live wallpaper up for download on the Market now!

What we have here is a blood pool on your home screen, that responds to touch and device movement, creating waves and ripples that behave realistically.  You can double-tap to fade in or out the logo overlay.  We put a lot of time into getting a good looking liquid simulation running well across all devices, and even have it multithreaded to take advantage of a dual-core device if you have one.  It behaves and settles out extremely well, and we learned a lot about this sort of thing in the process.

Both HBO and Admob have been very good to work with, and I'm thrilled we could tackle this project for them.  :)

Tuesday, June 14, 2011

Patterns Live Wallpaper v1.02

  - Bug Fix: Crash on 2.3.x devices

I actually pulled this off the market back when we published Prismatic, since it's prettier and I didn't want Patterns to eat into it's market share.  Still, I got an e-mail informing me it crashes on 2.3.x devices and after confirming this is the case, I just published an update to it.  Not really sure if the Market will recognize this and update folks -- I did hit the update button on it, so I kind of think so.

Sunday, June 12, 2011

Adding a facebook link!

That's right, we actually set up a Facebook page.  Visit it, follow it, like it, whatever you kids do.  We appreciate the attention, believe me!  :)

Blue Skies v1.5

  - Update:  Better sun blending
  - Bug Fix:  Better behavior when loading preview screen while wallpaper already applied

That's my hope anyway, for the bug fix.  I turned a number of TGAs into PNGs so they can avoid the uncompressing cycle and such, my best guess is some handsets are having issues with that.  The TGAs were also right on the 512k size borderline, which makes me nervous.  Hopefully this smooths things out a bit.

While I was at it I took another pass at the sun and updated the way it blends, I think it reads better now.  The sun textures are also greyscale now, so they'll use a quarter of the ram they did before.

Friday, June 10, 2011

NA Flags v1.51

  - Bug Fix: South Carolina flag
  - Update: Much smaller filesize

I'm pleased to say we got the filesize down to 3.7 meg for this release!  We'd originally hoped to have that be the case for v1.5, but ran into a couple of issues on old 2.1 handsets.  Those got resolved in the interim, and so we've shaved almost four meg off with this build.  :)

Unfortunately, while I thought I'd gone through and checked all the flags last time, apparently South Carolina snuck through broken.  Sorry about that folks, it's fixed now and I went through the whole list again to make sure of it.

Tuesday, June 7, 2011

NA Flags Live Wallpaper v1.5

  - Update: Now using OpenGL 2.0
  - Update: Higher framerate on tablets
  - Update: Smoother animation
  - Update: Custom flags now get ripples/cloth embossing

This update represents a substantial rewrite of this product, but doesn't really look much different, or at least shouldn't.  What we got instead was a general raft of improvements.

Firstly, we're now backing the flag blend and texture together at startup, which means we can now do everything all in one pass.  This nearly doubles our framerate on Tegra tablets.  It also means that we can get rid of the 'simple lighting' pref, since there's no longer a big speed improvement to be had by disabling the second pass.

Since we have proper acess to vertex shaders, we're also now using animation blending, so the flag's framerate will now go as high as your phone does.  That's a big improvement over the ~20ish that the flag animated at before, and it's quite noticable when placed side by side.

In addition, we're using render to texture to bake the cloth texture and ripples in at startup time, which means any custom flag images will get that as well.  That's probably a general improvement -- if we need to add a checkbox to disable that we can.  It also means you can basically just use a Wikipedia flag image verbatim and it'll look basically the same as the ones we've included, which wasn't the case before.

All told, I think this is a pretty nice update.  Please shoot us an e-mail with any problems!

Sunday, May 22, 2011

Snowfall Live Wallpaper v1.3

  - Update: Better performance on high-res devices

Well, it'll perform better on any device, but the tablets are the main thing -- it runs about 10fps faster there, now.  Minor update but should help.  :)

Monday, May 16, 2011

Asteroid Belt Live Wallpaper v1.3

  - Update: Better framerate, especially high-res devices
  - Update: Better calendar updating (for planet movement)
  - Update: Higher res icon/thumbnail art

None of these are earth-shattering updates for most users, but you should find the framerate generally improved now.  It's always been fine on phones, but we were definitely suffering on devices like the Xoom and this updates shores that up quite a bit.  The phones getting a bit faster is a nice bonus.  :)

In addition, I noticed we really were seeing more garbage collection than we should be.  Investigating this, it comes down to updating our Calendar instance too often.  You see, the planets orbit based on the current time of day, and I had them checking every five seconds.  Each planet was doing its own update however, so the net result was a fair amount of calendar traffic.  What I'm doing now is having them all call to a central point, which updates its calendar every 2.5 seconds.  So we get updates twice as often with a fraction of the garbage being created.

Calendar updating is surprisingly expensive, and this isn't the first time it's caught me.

Sunday, May 15, 2011

Updated ADB driver strings

I just updated this old post with additional .inf strings for the Xperia Play and the Galaxy Tab 10.1.  Have fun!

Friday, May 13, 2011

Blue Skies Live Wallpaper v1.45

  - Bug Fix: No more visible teleporting of balloons/UFOs in landscape mode
  - Update: Performance improvements on high res screens

This one's pretty much just what it sounds like.  I saw the teleport bug happen a bunch of times while showing out stuff at Google I/O, and don't know how I missed it before.  It shouldn't be an issue any longer.

Friendly Bugs Live Wallpaper v1.35

  - Bug Fix: No more shadows 'popping' into view
  - Update: Performance improvements on high-res screens

I noticed that in landscape mode sometimes you'd see a butterfly shadow 'pop' into view on the edges of the screen, that should be fixed now.  In addition I shuffled around the rendering order of a few things and gained an additional few fps on the Xoom -- mostly from rendering shadows after the butterfly instead of the other way around, though I'm doling out alpha test more carefully as well.

Wednesday, May 11, 2011

Prismatic Live Wallpaper v1.05

  - Bug Fix: Switching backgrounds properly unloads the old one
  - Update: Two new backgrounds - Pencil Sketch and Icicle

This update should trim your memory usage a notch if you've switched backgrounds a few times -- it'll properly unload the old texture, something that got overlooked previously.  Sorry about that!

We've added a couple of new default backgrounds with this update to make up for it.  Pencil Sketch is surprisingly cool looking, and Icicle looks pretty sweet if you dial the number of faces low.  Enjoy!

Sunday, May 8, 2011

Bamboo Forest v1.2

  - New Feature: Time of Day now uses your location for sunrise/sunset
  - Update: Better framerate
  - Update: Smoother bamboo animation
  - Update: Higher res icon/thumbnail art

Lots of improvements here, actually.  Time of day now uses the same positional updating some of the others do, so sunrise/sunset should be accurate for your location!  In addition, things now render differently, so extremely high-res devices like the Xoom should see some improvement.  The bamboo itself now has more animation frames so it'll look smoother as well.

More smoothness for everybody, really.  Can you have too much?

Friday, May 6, 2011

Aquarium Live Wallpaper v2.51

  - Bug Fix: Flickering fish fins on the Xoom
  - Update: Better plant/anemone blending
  - Update: Better framerate, especially on very high-res devices

I'm genuinely unsure how it happened, but with the last update fish fins start flickering on the Xoom (and other Honeycomb tablets).  Very strange and didn't make much sense to me.  The fish fins were using alpha test to handle their transparency, which now I know to be very expensive on the Xoom, and I basically audited the entire scene to minimize its usage.  This got me a few fps back in addition to fixing the flickering, so I think we can all call this a big win.

I also switched the plants and anemones over to using premultiplied blending in the process, which helped fix the dark halo on some of them.

Sorry for the incremental update so soon after the last one.  I tested it, I swear, but apparently didn't check the Xoom at any point.  :/

KF Hearts Live Wallpaper v1.15

  - Update: Higher res backgrounds
  - Update: Better framerate

This update is primarily to clean up behavior on the Xoom and similar devices.  It disables alpha testing and increases the resolution of the background images, in addition to including some fixes to the custom image caching.  The behavior and appearance on the Xoom is much better as a result, and it runs better on the phones I tested as well.  Win/win!

Thursday, May 5, 2011

Aquarium Live Wallpaper v2.5

  - Update: Better custom background handling

Pretty much what it sounds like, Aquarium is now using the cached image stuff some of the other updates introduced, so your custom background shouldn't disappear on a reboot or anything.

Prismatic Live Wallpaper v1.01

  - Update: Now supports SD storage
  - Update: Purple is a bit more purple

This is a really minor maintenance update that I wanted to get out there before a ton of folks had downloaded it.  You can now move the wallpaper to your SD card storage if you'd like.  :)

Monday, May 2, 2011

NA Flags Live Wallpaper v1.3

  - Update: Better custom image handling
  - Update: Higher res icon/thumbnail art

This update primarily incorporates the updates to custom image handling that have occurred over the last week or so.  It should be very solid now with no more images taking a while to show up after a restart and so on.  Enjoy!

Prismatic Live Wallpaper v1.0

(Android Market link)

Just uploaded a new one a few minutes ago!  Basically, Prismatic works similarly to a traditional kaleidoscope, breaking up an image with a series of mirrored facets.  It's surprisingly hypnotic and beautiful to watch, and with the right settings actually works surprisingly well as a background.

There's a wealth of settings available here as well.  You can control how many facets the prism has, both radially and concentrically.  You can modify the default movement speeds of the image and can control how much it'll move with touch.  We've got over a dozen backgrounds included by default, but you can select your own custom images as well.  Plus there's controls for brightness, rotation speed, and more!

Several of the included images are based off of Creative Commons Attribution licenced work, and if you want to take advantage of the custom background feature you should check out the authors.  Patrick Hoesly was responsible for a few of them, and two came from WebTreats.

This one's very cool to watch, and I believe we've got a stronger effect than the similar stuff on the market.  Hope everyone likes it!

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!

Wednesday, March 30, 2011

EU Flags Live Wallpaper v1.3

  - Update: Antialiased flag edges
  - Bug Fix: Compatibility detection

This update makes the flag mesh a lot cleaner with the background.  No more crawling ants effect along the outside edge!  It looks a lot nicer side by side with the old one... in fact, maybe I should take new screenshots.

The bug fix is for the HowTo window, which is improperly detecting that Android 3.0 isn't compatible with live wallpapers.  The logic should handle things better now.  This is the case with basically all of our products, and it'll get fixed gradually over the next few weeks as updates roll out.

Wednesday, March 23, 2011

Dynamic Paint Live Wallpaper v1.05

  - New Feature: Pref for evaporation speed!
  - Update: New defaults for background & blend mode
  - Bug Fix: More consistent behavior between handsets

The bulk of the work here went into tracking down a behavior difference between PowerVR based handsets and Snapdragon based ones.  This look quite a while and will probably turn into a post of its own.  It's been dealt with now, and in the process we created a user preference for paint evaporation speed.  You can even turn it all the way down to nothing if you'd like!

Reading some of the feedback, we adjusted a few of the default values as well.  While the wood background shows off the fluid simulation well, people don't seem to like it as much as the broken brick, so that one's the default again.  Likewise the default blend type is now additive, which means the paints don't mix colors as well but they do seem to integrate with the background more smoothly.

Aquarium Live Wallpaper v2.45

  - Update: Four new fish!
  - Update: Toy submarine!

Nothing world shaking here, but a few more types of fish and toys to round out your aquarium with.  I really dig the submarine, and it bobs in place too!

Friday, March 18, 2011

KF Flames Live Wallpaper v1.11

  - Bug Fix: Will attempt to refresh custom background image if it isn't initially found

This is the same issue that was fixed in Hearts a little while ago.  Basically, if the SD card isn't available but your custom background is located there, it will periodically try to reload it after the fact.  This attempt will happen whenever the wallpaper becomes active (basically any time you return to your home screen from somewhere).

Tuesday, March 15, 2011

EU Flags Live Wallpaper v1.25

  - New Feature: Six more flags!

People always ask for additional flags here, so I figured I'd stretch the definition of European as far as possible and expand the list to everything considered continental Europe.  This means six additional country flags are now included: Azerbaijan, Balarus, Kazakhstan, Georgia, Moldova, and Russia.

The list is pretty substantial at this point, being 44 countries plus the EU flag.

Silhouette Live Wallpaper v1.55

  - Bug Fix: Pixelated appearance after a long period on some handsets

This is a relatively simple fix to something that's been around for a while.  Basically, the moving clouds would gradually go so far left/right from where they started, that the 3D hardware would start losing accuracy, and you'd get very boxy looking textures.  This takes quite a while to happen but depending on the handset could get pretty ugly.

It's a pretty easy problem to fix, just modulus the offset periodically so the numbers never get that large.  Typically I do that in these cases, but apparently had missed it on Silhouette.  Sorry folks!

Saturday, March 12, 2011

Dynamic Paint Live Wallpaper v1.0

(Android Market Link)
(YouTube Link)

There's a bunch of new changes and additions from the beta version here, and we're pretty confident we've got it working solidly across a wide range of devices now.  Here's what's new:

  - New Feature: Select your background image
  - New Feature: Complex fluid simulation
  - Update: Faster rendering performance
  - Update: Higher default resolution
  - Bug fix: No more paint gathering in corners incorrectly

This thing turned out extremely cool all told.  This one was primarily Bill Roeske's project and he's got a whole raft of additional tinkering to do yet, but we'll handle that with updates. :)

The effect at this point works extremely well, and it's a really satisfying toy to play with, while working well as a background at the same time.  I think this is one of my favorites of everything we've got on the market.

The backdrops (and their normal maps) were created by Allyson Vaughn, who did an excellent job with all of them.  We're using one piece of Creative Commons artwork: a paint splat by Kamikaze Stoat.

Tuesday, March 8, 2011

Aquarium Live Wallpaper v2.4

  - Update: 14 fish at once!
  - Update: Two new fish!
  - Bug Fix: No more broken customize screen on 2.3.3

For details about the broken customize screen, check the next post down, where I prattle on about it for most of a page.  It ended up being a bit of an iffy workaround but it seems to operate just fine, and nobody should notice a difference now that it's fixed.

To make up for the week or so of brokenness, I sat down and expanded the number of simultaneous fish to 14, so feel free to expand your collection.  In addition, two additional fish are now available for your perusal!

Monday, March 7, 2011

View visibility bug on Android 2.3.3

So I've been trying to work around a strange bug that's shown up on Android 2.3.3, which only affects the Aquarium customize screen.  Basically, when you visit that screen on 2.3.3, you can't open the three drawers that contain the customization controls.  Pressing the 'props', 'background', and 'fish' buttons doesn't do anything.

I replicated the issue by installing a nightly build of CyanogenMod onto an Evo 4G.  Starting in on figuring out the problem, I was confused and still am.  Here's how the code works.

Upon initializing CustomizeActivity, I load the UI layout, I set up a bunch of button handlers, then towards the bottom select the three detail windows and hide them.  The detail windows are the ones that contain the fish thumbnails, the background prev/next buttons, etc.  The code looks like this:

     LinearLayout ll;
     ll = (LinearLayout)findViewById( );
     ll.setVisibility( View.INVISIBLE );

So, that makes the details invisible by default.  Later on, you push the 'fish' button, and this code happens:

     LinearLayout ll = (LinearLayout)findViewById( );
     if( ll.getVisibility() != View.VISIBLE )
          ll.setVisibility( View.VISIBLE );
          ll.setVisibility( View.INVISIBLE );

And that's it, the whole logic.  It's very simple.

This has worked fine for most of a year.  However, what's happening in 2.3.3 is that if that initial setVisibility call occurs, the buttons can never make the view visible again, no matter what.  However, if I remove the initial call making them invisible, then the toggle (both on and off) works just fine.  I'm mystified by this.

I've tried a fairly wide range of things at this point:
  • Add a half-second delay before calling setVisibility, in case it's still initializing somewhere.
  • Move the initial setVisibility call to the button handler's constructor.
  • Don't check getVisibility and always have the button force to visible.
  • Call setVisibility( View.VISIBLE ) before setting them to invisible.
  • Make the initial setVisibility call in onResume instead of the constructor.
  • Setting visibility to invisible by default in the XML file.
I've tried other variants too I'm fairly sure, all with the same result.  I have no idea what separates a call to setVisibility in these other locations from the ones on the button (which work, so long as it's not being set somewhere else first).  I'm still working on it but for now may end up falling back to having the drawers default to open, which is a bit complicated looking upon initial view.


So, what I did eventually to work around this:  I gave up on View.INVISIBLE and started using View.GONE instead.  This is problematic since GONE actually removes the elements from the layout, and since everything's relative that makes the layout change.  I fixed that by playing the three details panels inside three invisible layout panels (all three of which have a width of fill_parent and a weight of 1).  These extra panels always stick around, so removing the detail panels entirely doesn't cause the layout to shift.


Jumpgate Live Wallpaper v1.1

  - New Feature: Toggle for the background helix
  - Update: Disable asteroids

I've gotten a ton of comments informing me that setting the asteroid slider to 0 doesn't disable them completely... which says to me it probably should.  So, this revision tweaks the effective range of that slider, and if it's set all the way down to 0, no asteroids will spawn at all.  Rejoice!

There's also been some mail from folks interested in disabling the swirly energy thing in the background -- internally I was calling it the 'helix'.  There's now a checkbox that will let you turn that off if you'd prefer.

Saturday, March 5, 2011

Aquarium Live Wallpaper v2.35

 - Update: Four new fish!

Nothing earth-shattering here, but it's been a while since Aquarium got an update, and this brings the total up to a nice round 24 species.  Hopefully you'll see a few more in another week or two.  These new ones are being made by Chris Galbraith.

There is a known issue currently, in that I've had several reports of the Aquarium customize screen not working properly on Android 2.3.3, both on the Nexus S and on the Nexus One.  We have a Nexus S here and will get it updated ASAP to check this.

Thursday, March 3, 2011

KF Flames Live Wallpaper v1.1

 - New Feature: Base Image Color pref

One of the major complaints with Flames is that it's hard to get your colors with it to look quite right.  There's a reason for this, which is that the base flame texture it uses has some coloration built in.  This helps the default look create strong yellow hotspots, but it hurts if you're going for pure blue (for example).

So, now you've got some control over this.  There's a new preference called "Base Image Color" that lets you switch between a few different base level tints.  The default is orange, but you've also got green, blue, and white (neutral) to pick from now.  Especially if you switch it to neutral, you should have no problem getting things to look the color you want now. :)

Tuesday, March 1, 2011

Dynamic Paint BETA Live Wallpaper

(Android Market Link)

We just put this up on the market, and it's exciting for a couple big reasons.  First, it's a totally cool simulation of liquid on an irregular surface, and after spraying or splatting paint onto the wall you get to watch it run down in rivulets and respond to the contours.  This is really neat.

Secondly, it'll be the first public use of our OpenGL 2.0 based framework -- the simulation heavily leans on pixel shaders to do its work, otherwise there's no way we could get it this fast!  However, this also means we're exercising a lot of new code and features that we haven't used before.

Thus, the BETA label.

We'll be leaving this on the market for at least a few hours, and are really hoping folks like it.  I know there's nothing out there that does this kind of cool dynamic effect, and am really excited to get some feedback both on the concept itself, and on any technical issues folks  might run into.  Please send any thoughts over to contact AT, we look forward to reading it!

Wednesday, February 23, 2011

Jumpgate Live Wallpaper v1.05

  - New Feature: Multiple Characters!  Android, Spaceship, None
  - Update: Added a bit of rolling motion to flight
  - Update: 'Pixelated' style energy
  - Bug Fix: 'Flight Speed' no longer ranges from 'dim' to 'bright'

Lots of folks wanted something other than Jetpack Android, so that's the main focus of this update. You can switch him out for a pretty sweet spacecraft, or turn off the character entirely if you'd like.  I added some rolling to the flight motion on the spaceship, and it looked nice so added a bit to Android as well.

People have really dug this wallpaper so far, hopefully we can build in a few more fun features to make it even cooler!

Sunday, February 20, 2011

Using standard ADB drivers for other phones

Not too exciting for most folks, but I figured I'd mention I've actually been maintaining this old post.  It's mostly for my own convenience, but if you're looking for an .inf string for a Droid 2, Nexus S, G2, Incredible, or EVO there's one in there.

Back from MWC11

Spent the last week or so at Mobile World Congress -- we were invited to show our stuff at the Google Android booth and figured it'd be cool to take advantage!  Aside from lots of hurting feet, I had a chance to talk to a lot of interesting folks, see some interesting upcoming products, and made some promising business contacts.

Now that I'm back it's time to work on the next round of projects.  Jumpgate's done really well so far and folks seem to like it a lot!  I'm planning to tackle an update or two for that while prototyping out a new wallpaper.

We're also working on a framework for supporting OpenGL 2.0, and that's got a lot of progress but isn't quite  ready for use yet.  We'll probably end up releasing one or two effect style wallpapers first that exercise aspects of it before trying a fully fledged 3D scene, but I'm excited to get to that point!

Monday, February 14, 2011

Jumpgate Live Wallpaper v1.0

( Android Market link )

It's been a while since we last released a new wallpaper, but Jumpgate is now available on the market!  This one's Android themed, which seemed appropriate for showing our cool stuff at Mobile World Congress this week.  :)

Jumpgate lets you follow your Android buddy as he soars through space at high speeds!  There's customization options for the background colors, star streak brightness, movement speeds, animation smoothing, and several others.  Double-tapping on different places on the screen causes your Android to wave, barrel roll, or turn on turbo boot for a burst of speed.  If you've got suggestions for other actions he could perform, let us know!

All this turned out quite well in my opinion, and it's exciting to get this out there for folks to see.  Hope everybody likes it!

Tuesday, February 8, 2011

KF Hearts v1.06

  - Bug Fix: Custom locket image refreshing

This was an oversight on my part, really.  What would happen is, if you select a custom image from an SD card, then reboot the phone, you'd get the default image instead.  This is because the SD card doesn't get mounted right away on startup, so the wallpaper starts, goes to load your custom image, discovers it's not accessible, then falls back to the default.

I solve this on the other wallpapers by doing this check periodically, so if it fails the first time it'll work once the card is mounted.  In (I think) all cases, I do the check whenever the wallpaper wakes up from sleep.  So, if you reboot your phone and discover the hearts contain a picture of a kitty, you should find that next time you look at your home screen it's fixed itself.

What's with the lack of updates?

We've got a few things going on right now, actually.  Firstly, we've been invited to show our glorious wares at Mobile World Congress next week, so are making a new wallpaper paying homage to Android for the occasion!  It's called Jumpgate and has our little Android friend soaring through space at faster than light speeds.

Other projects include getting a framework going that has proper support for OpenGL 2.0, so we can start taking advantage of pixel and vertex shaders.  This should let us do some nice effects that aren't feasible with the 1.1 framework we're using now.

There's more than one wallpaper in progress right now as well, but none of them are really at a showable state.  Thus, a few days of general silence on the blog front.  Sorry!

Wednesday, January 26, 2011

Friendly Bugs v1.2

  - New Feature:  Animation smoothing!
  - Update:  5 new butterflies!
  - Update:  "Never" butterfly spawn frequency
  - Bug Fix:  Better preview screen handling

The initial plan here was just to add some more butterflies, so you've got five more arriving at their landing zones now!  At the same time I speed-tested interpolated animation and discovered on a 2.2 device it works with a minimal speed hit.

What's that mean?  Basically, normally we're just playing back animation frames at a regular interval -- this is usually around 15-20fps depending on the item.  If the framerate of the wallpaper is higher than that (and it almost always is), you end up seeing the same animation frame twice in a row.  This means the animation is choppier than it seems like it should be, but the benefit is that the animation is very inexpensive to render.

The interpolation means that instead of this doubling-up behavior, the system will generate additional in-between animation frames as it goes, so your animation is effectively playing back as fast as the framerate allows.  This means smoother butterflies on the screen, basically.  You can't go too far wrong with smoother butterflies, so it's now available as an option in the preferences screen.

Tuesday, January 25, 2011

Aquarium Live Wallpaper v2.3

  - New Feature: Lionfish!
  - New Feature: Jellyfish!
  - New Feature: Two new toys!
  - Bug Fix: Better Preview screen behavior

Getting the movement on the Jellyfish to look reasonable took a little while, and I still get the feeling some tweaking is going to happen, but it looks pretty good overall!  By popular demand there's a lionfish in place now too!

The two new toys are a ship anchor and a old-style diving helmet, which feel pretty appropriate to me.  The new art was done by Allyson Vaughn!

Monday, January 24, 2011

Blue Skies Live Wallpaper v1.3

  - New Feature: UFO sightings
  - Bug Fix: Better Preview screen behavior
  - Bug Fix: No more wispy cloud popping

Strangely we've had a number of requests for this one.  You can now enable UFO sightings in the settings screen.  These can either be random, or can appear when your battery is running low -- they'll start at the 20% mark.  Silly but fun!

Thursday, January 20, 2011

Hearts Live Wallpaper v1.05

  - New Feature: Hearts with your own picture in them!

The new version of hearts allows you to enable 'Locket' hearts.  These are hearts with a photo inside them, similar to a traditional locket.  Browse for your favorite picture of a loved one!

It should detect the format of the image you selected and properly adjust the scaling and everything, but even so you'll want to make sure your selected image has the subject reasonably centered to work properly.  It's tuned to handle 16x9, 4x3, 3x4, and 9x16 properly, which are the common cell-phone photo ratios as far as I can tell.

Let me know what you think!

Wednesday, January 19, 2011

Thunderstorm Live Wallpaper v1.4

  - New Feature: Lightning strikes where you touched
  - Update: New cloud art
  - Update: How To activity

 Sweet, you can now have summoned lightning actually strike your finger!  It was randomly placed before, and you can go back to that by unchecking a box in the settings if you prefer.  This update also includes updated cloud art with a little more range to it, hopefully everybody approves!

The How To activity is the little popup box that explains how to use a live wallpaper, Thunderstorm was the only one that didn't have this implemented, so it's finally in place now, helping to reduce confusion!

Tuesday, January 18, 2011

To Do List

Some of these are done already, but I'm hoping to introduce proper filtering with the next round of updates, and am waiting for Samsung to finish updating more of their Galaxy S phones to 2.2.  If this goes on too long I'll just go ahead and push new updates out.

Crossed out stuff is done!

  - Hearts: Additional styles of touch hearts, allow you to specify a custom image?
  - Aquarium: Jellyfish, more fish varieties (Lionfish!)
  - Clouds: UFO sightings! (Behavior & ArtShow up when battery is low!
  - Flames: Add (optional) smoke
  - Friendly Bugs: More butterflies, 'never' butterfly frequency
  - Thunderstorm: Lightning lines up with where you tap