GameDev 101: Tools Of The Trade

In previous articles (here and here), I’ve lighted on some of the tools I use when creating my games for Windows Phone.  Since writing those articles, my toolbox has grown with two additional pieces of software.  One of them is free, the other I had to pay for, and both are highly recommended for Indie game development.

I’ll start with the new animation software – Anime Studio.  Before I found Anime Studio, I was using XSI for doing 2D animation.  The problem is, XSI is software for creating, animating, and rendering in 3D.  Those two articles above provide more detail on how I used XSI to do 2D animation.

In a nutshell, it involved carefully drawing characters in Photoshop, cutting the object into individual parts (legs, arms, etc.) that could be animated , and importing each piece into XSI and projecting them onto flat, 3D rectangles as billboards facing the 3D camera.  From there, I would rig the model with bones, animate it, and render the frames out.  Special care had to be taken when drawing the character, to take into account where the pieces would be broken up.  This was exactly as involved and convoluted as it sounds, but it was my only option.

Fast forward to a couple months ago, when I accidentally came across Anime Studio on Amazon.  The price was right, and the feature set sounded incredible.  It claimed to do everything I needed for 2D animation, so I took the plunge after watching some demo videos.

Strong Arm Character In Anime Studio

Anime Studio was well worth the (small) investment.  The character animations in my most recent game, Pirate’s Plunder, were created completely in Anime Studio.  I also used it to create the app icon and other static (non-animated) art assets for the game.  Anime Studio is entirely vector-based, and you have full control over shading, strokes, and effects.  It also uses a hierarchical bone animation system, just like XSI, but in 2D.  I highly recommend it to any Indie game developer for 2D drawing and animation.

Pirate's Plunder App Icon In Anime Studio

There are two flavors to the software: Debut and Pro.  I went for the full Pro version because I needed some of the extra features, such as batch rendering.

The other piece of software I’d like to mention is free, and it opened a whole new world of possibilities for my games.  Pirate’s Plunder would not have been possible without this software: GLEED2D, available here.

Editing A Pirate's Plunder Level In GLEED2D

GLEED2D stands for Generic Level Editor 2D.  The software breaks a scene down into Layers, and you can add any number of generic shapes (circles, boxes, paths) or images into each layer, each with their own sort order.  Each object in each layer can be given a “Custom Property”, using a data type of your choosing (Vector2, int, string, etc.), that you can parse in your game when you load in the level.

It saves the level as a human-readable XML file, which you read back into your game with a simple page of code that is provided with the software.  You can modify the loading code as you see fit, like I did.  I took it a step further and fully integrated it into my game engine.

As you can see in the screen shot, the software couldn’t care less about what you are trying to create.  Because it handles things so generically — as its name implies — it really can be used for just about anything you can imagine in 2D.

The big purple boxes in the screenshot are regions I dragged out to signify where the sea monster and power-ups can spawn within the level.  My game reads back these regions in the XML file and spawns these items in the correct positions as you play.

The line paths in the screenshot are another generic, drawable component at your disposal.  In Pirate’s Plunder, there is a random chance that naval vessels and merchant ships will wander through the area.  Instead of generating a complex algorithm to navigate around the map, I drew up several possible paths for the ships to take at design time.  At runtime, I pick one of them randomly and make the ship follow the path until it gets to the end, off-screen.  The player sees a ship “intelligently” navigating around the map, avoiding rock obstacles and the shoreline.

I also used line paths to outline the shoreline and rock obstacles in the sea.  For Pirate’s Plunder, I had to come up with a polygon collision engine, and GLEED2D made it very easy to define the edges of the world in each unique map.  At runtime, the edges were read from the XML file and recreated in code as polygonal shapes.  These shapes were then used as collision boundaries with the ships to keep them from sailing right over the land and through obstacles.

The left side of the screen is the layer and object management panel.  The lower left part of the screen displays metadata for the currently selected item, such as position, scale, rotation, and any “Custom Properties” you have added.  In the screenshot, you can see I’m using a couple dozen Custom Properties to further customize the level.  For Pirate’s Plunder, I used them to massage gameplay variables to change up each level’s difficulty.

In summary, Anime Studio made 2D animation an incredibly simple process compared to the one I was using previously, and GLEED2D opened doors to creating games I simply could not have made before.  Again, I highly recommend both of these to any Indie game developer looking to expand on their creative possibilities.


About GlowPuff

GlowPuff is a Windows Phone 7 developer focusing on XNA game development.