Archive for October, 2008
Tower Defense in AS3 - Part 1
In keeping with my desire to learn as much about how the game development world works, I have spent some time looking into developing simple games in Flash over the course of the last couple years. Recently, I renewed my pursuit of this game medium, and I have been striving to learn some of the ins and outs of Actionscript 3. Having written a handful of basic Flash applications in Actionscript 2 — from the loader and controls of a full media presentation to an MP3 player and dynamic slideshow — I feel I had a solid understanding of the principles of Flash, both in the timeline, layering and scripting realms.
However, when I began working with AS3, whole worlds began to open up as I saw the potential unleashed by implementing a much more true OOP support into the code base. One of the most useful things that AS3 encourages is the understanding and use of the layering hierarchy of sprites and movie clips on the stage. As you add children to specific sprites or movie clips, they inherit their parent’s visibility spectrum and appear truly as part of that element on the stage. This may well have been a feature of AS2 as well, but I never took the time to learn that aspect deeply enough, since I did most of my work from modifying timeline animations.
I decided some time ago that one of the best ways to learn Flash would be to write a game that implements many of the features, such as vector layering and stage positioning. Furthermore, with my addiction to Tower Defense (TD) style games, I thought it only fitting to develop one myself and share my learning progress with others who may also be interested in the same type of application. This post is the first in a series that will follow my progress from manually drawing the GUI on which the game will be played (this post) to creating the basic Creeps and Towers which will make up the substance of the game. For those who are anxious to get started and don’t want to read everything in detail, I will provide a download link at the close of each post with the full source for the project to that point.
Read more
On Blizzard and Starcraft II

Last Friday at Blizzcon ‘08, Blizzard dropped a bombshell about their upcoming, highly anticipated sequel: Starcraft II. Straying from the classic RTS release strategy that most, if not all, games to date have followed, executive VP of game design Rob Pardo announced that the initial release of the game will contain only the Terran campaign and that the Zerg and Protoss campaigns will be split into their own, separately packaged games to be released sometime later. The initial installment of the game is cited to be Starcraft II Terrans: Wings of Liberty followed by Starcraft II Zerg: Heart of the Swarm and finally Starcraft II Protoss: Legacy of the Void.
When questioned about release dates, Pardo likened the development time to that of Halflife 2 — with each episode being about a year apart. Apparently, only the Terran campaign is anywhere near completion, and the team at Blizzard is focusing on creating each campaign to be as full and in depth as the entire original game. Obviously, this announcement has raised many questions in both the development and gaming communities, and I have a few initial thoughts of my own. Read more
1 commentWhat’s in a Name?
Keeping in form with the theme of my blog, I do write occasional ramblings, and today looks to be one of them. I have often contemplated some of the deeper ramifications of the truth behind one of the most famous phrases in all of literature, spoken by Juliet in Shakespeare’s Romeo and Juliet:
What’s in a name? That which we call a rose
By any other name would smell as sweet.
At first glance, the casual reader would take this comment at face value and realize that the truth in the statement is that, no matter what we choose to call something, it does not change the existence of that thing or idea: it remains just as it was before. If I were to declare myself to be a pilot, it obviously does not automatically make me one. On the contrary, it actually enhances the awareness of my lack of knowledge in the area of piloting. In the case of Juliet’s metaphor, if we were to call a rose a skunk, not only would the flower not become the animal, but the concept of “skunk” ingrained within us would emphasize the sweet smell of the flower that much more.
That is the general premise that got me thinking: what would happen if we were to take this line of thinking to the extreme in the opposite direction? Read more
1 commentFinally Some Real Photography

Those of you who have known me for a while are also aware that I have had an interest in photography for some time. My dad sparked the interest in me as a child, and I have never really had the capacity to pursue anything in that field. I have expressed some interest in really pursuing some photography in order to get some nice shots of the kids since they have been coming along, and last week, my wife surprised me with an early Christmas present: a brand new Nikon D90 DSLR with a Nikkor 18-105mm zoom lens. Needless to say, in the last 5 days, I have spent a good bit of time behind it, and of the 350+ pictures I have already taken, I have come up with a small collection of images of which I am very proud. Read more
Writing a Reusable AJAX Handler
Due to the number of questions I receive on various forums as well as the number of times I have run into the need for an AJAX response handler in my own work, I decided I would share one of my solutions in the hopes that it will save someone else some time as well. I assume, if you are reading this, that you have a basic knowledge of AJAX and the principles guiding the technology. In addition, basic understanding of how libraries such as jQuery perform AJAX queries and callback functions in JavaScript is a plus. For further reading on these prerequisites, check out this Google search and the jQuery docs.
After manually handling my responses in multiple projects, I finally decided to write a JavaScript object that could handle the XML responses for me and return me a usable object to my callback function. Enter the AJAX Handler object. I decided to let jQuery handle the actual requests for me, but I wanted a way to easily parse out my response, checking for errors and handle them accordingly. The result was something I have been able to use numerous times in different projects. To simplify things, let’s look at the code a piece at a time. At the bottom of this post, you will find the entire code. Read more
No commentsTactics RPG via Google App Engine
While somewhat old news to some, the Google App Engine is an amazing tool allowing developers to tap into the scalability offered by the Google framework while developing entirely standalone applications. What’s more, along with the offer of the code base to build from, Google also allows developers to host their projects, at no cost, on the Google App Engine server (up to 10 applications per user, no less). I was excited to learn of the project initially, and the more I have delved into it, the more enthralled I have become.
For years now, I have wanted to have the means by which to develop a small tactics style RPG game, and while I have had the basic coding knowledge needed (not to mention buckets of ideas), it has been difficult to bring myself to the point of actually taking on such a daunting task. Having the opportunity to build on the data store and framework Google has offered with their App Engine has given me that extra little boost to begin development on one of my long time goals. Read more
2 commentsWordle: Creative Word Clouds

A friend has recently posted about Wordle on his blog, and after reading the post and trying out the site for myself, I thought I would be remiss not to make a small post about this amazing tool myself.
This creative idea uses a Java applet to read any word grouping you care to type, or you can simply point the tool to a website which offers an RSS or ATOM feed. From there, the app takes over: creating a stylistic word cloud that is quite aesthetically pleasing. With multiple color schemes, layout options, fonts and other details to allow for personal manipulation of the cloud, you can find the balance that is right for you. The image posted above was the first random creation that was generated by Wordle when pointed at this site.
Enjoy!
2 comments