We have created a number of tools for our various projects. Some are global and used across all of our titles, others are project-specific. We’d like to show you some of them.
Atlas is a tool we created many, many years ago (back in early mobile phone days) to reduce VRAM usage. What it does is take any number of images and cleverly arrange them onto one large texture. For example, if an animation has 5 frames (let’s say), instead of storing those images in a grid or separately, Atlas finds the bounding-box for each frame and creates a ‘super texture’ out of them. (Any number of images can be atlased. 5 was just an example. Check the image below for an example with lots of images.)
Using this tool allows us to take full advantage of the texture RAM limitations any platform imposes, and even allows us to create on-cache textures (textures that entirely fit into the texture cache of the GPU). Staying on-cache improves GPU performance a great deal.
Below is a sample sheet from Sonic The Hedgehog (iPod Click Wheel).
This is currently a PC command-line tool that supports many platforms, including iPhone, mobile phones (BREW/J2ME, etc.), NDS, PSP and PC. We are planning an OS X version to be released in Q1 of 2010. If you are interested in licensing this tool, please contact us.
This was a great tool we created for Jamdat Mini Golf for BREW and J2ME. Our engine allowed us to create holes as a series of curves instead of the more traditional tile-based solution. Everything was ‘stencil texture’ based, so we can create any shape we want to define grass areas or borders or water or whatever and the engine would fill that shape with a texture. Slopes can be added at-will and the shadows it casts are done in real time. Ambient objects and animations can be placed anywhere in the view.
It also had a preview feature where you could play the hole to test out the physics (which were real, not approximations).
This a shot from the appropriately-named Hole #15, “The Vortex”.
When it was time to convert EA Mini Golf to the iPod Click Wheel, the camera panned around a giant image of the course as you played. When you completed a hole, the camera would pan and change its orientation to get to the tee of the next hole. (This looked really slick btw.) This required a new tool to manage all of that information. This tool was responsible for camera rotation, sub-image shuttling and ambient animations (which could have any position and orientation as well).
It also had a few different preview features that allowed you to see the camera pans happening in real-time and a debugging preview where you could see how the sub-images were shuttled (shown below). The dark blue outlined rectangles (hard to see) are the camera’s resting position for each hole. The camera interpolates its position and orientation automatically between each.
Sonic The Hedgehog for the iPod Click Wheel required a special analysis tool. In order to reduce the number of graphics primitives, we needed to scan every level map (which are huge) to check for meta-tile optimizations. Simply put, a meta-tile is a tile made up of smaller tiles. For example, a tile is 16×16 pixels (stored as 1×1’s worth of data). A meta-tile is comprised of any number of tiles. In Sonic’s case it was 2×2 tiles (or 32×32 pixels). Doing this reduces the amount of applicable data by almost 75% because you only need to store the data for 1 meta-tile instead of data for 4 normal tiles.
The image shown here is a (severely cropped) output image from Meta-Tiler (start of Green Hill Zone level 1). The boxes with numbers are the meta-tiles that it found. The palette of meta-tiles is also shown as is the frequency of each one.
This was a quick tool we put together to make creating levels for Puzzled Sheep (BREW and J2ME) much faster. It’s basically just a tile painter. When you start a new map, the tool would randomly fill a new level with decoration (flowers in this case). You then placed the sheep and obstacles wherever you wished. You can also create any number of themes (graphic sets) as you wished.
A very effective editor for a very cute game.
Each level in Traxion (NDS) can be quite complex, so that project needed a very specialized editing tool. At its heart, it’s a tile painter. Every tile has a contour with normals and so on so debris and collisions would reflect off them correctly.
The designer could then apply any objects they wished: enemies, flight paths, way-points, even 3D object-based decorations. There are also various data layers applied to every map: ‘guides’ for enemy AI’s that seek the player’s ship, patrol routes for certain kinds of enemies, collision areas, gravity properties, and so on.
This level is from the Steampunk World.