This is another post in the Lessons Learned series. Today’s lesson: immediate-mode GUIs

I’ve you have ever worked with Win32, GTK, or pretty much any GUI toolkit I know of, you’re probably used to treating the GUI as a bunch of controls. If you need a button on the screen then you create an instance of the Button class and add a pointer to that button to the Window object. Then behind the scenes Windows or GTK or whatever handles the rendering and processing of the button. All you have to do is wait for the user to click it.

This is another post in the Lessons Learned series. Today’s lesson: art

Chickens n Kittens has to run on a lot of different platforms on a wide range of screen sizes. Everything from an iPhone 4 with 640 lines of resolution to a retina display iPad with 1536 lines of resolution, and even higher for some PC displays. That’s quite a wide range! So in order to make sure the game looks just as good on a 640 display as a 1536 display, it contains multiple copies of each art asset in multiple sizes.

This is what Chickens n Kittens looks like when you view the island at an angle.Nearly everything is flat! The few things that aren’t are the particles (smoke and feathers) and the hovercraft. Those are “billboards,” which just mean those are images that are oriented to always face the camera, no matter where the camera is. That’s why the hovercraft looks like it’s about to crash into the ground nose-first.

Notice how the chickens in the background look rather pixelated? That’s because of the way the 3D hardware does texturing. There are ways to fix that, like anisotropic filtering, but I don’t need to, since the camera will never be sitting at this low angle in the actual game.

One of the great things about indie game development is that there are no giant teams of specialists with each one dedicated to one small, specific area of development. One person can end up doing art, music, programming, all at the same time. Here is a sample of what a notebook sitting next to my PC looks like:

There are notes from at least three different things I was working on, all overlapping on the same page. BTW, see the drawings in the lower left corner? That’s a new toy yet to be revealed…