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!