I began using the computer as a means of entertainment at a young age, and ever since have been thrilled by the creative outlet and constructive entertainment that lies in the realm of computer gaming.  Computer games are filled with artwork, mathematics, and many intellectual and physical challenges for the players.  Eventually, my passion for these types of entertainment alongside my urge to be productive and creative drove me to investigating ways of developing my own games.  The results of this undertaking have been extremely rewarding and I would love to continue video game development for the rest of my life, be it a hobby or – if I’m super lucky – even a profession.

At the time when I was most intrigued by third-party video game development, I was playing a game called Warcraft III – developed by Blizzard Entertainment.  I was captured by the ability to play user made custom modifications of the source script, which could be passed from user to user via the integrated online gaming function called battle.net.  Huge volumes of people played these custom games – one person’s custom game was so successful that he was able to use advertisement revenue from his website as his only source of income.  His game was recognized worldwide, and its popularity eventually lead to a string of similar stand alone versions of the game.

The custom games I’m referring to are developed using the officially released tool by Blizzard, called the World Editor.  The tool consists of several modules that allow for complete flexibility and control of every aspect of the games engine:

  • Terrain Editor – Used to paint the game landscape and generate the environment.
  • Script Editor – Used to program the game triggers via an event, condition, action type system.
  • Object Editor – Used to manipulate game units, objects, and properties.
  • Campaign Editor – Used to create sequences of game files called campaigns.
  • AI Editor – Used to program computer controlled game players.
  • Import Manager – Used to import/export custom content.

Above: Terrain Editor – shown using the terrain elevation brush.

Above: Script Editor – a graphical interface that turns code writing into selecting options from dialog boxes and menus.

Above: The script language can be written in text form, using a syntax labeled JASS (Just Another Scripting Syntax), which allows for more efficient coding and more flexibility.  The JASS script can be pasted into the Script Editor for use in your game.

Above: Object Editor – entities of the game are shown in the left window, in this case, the units tab is selected and they are displayed (units are like game characters/creatures).  The fields on the right allow for customization of associated values and properties for each entity on the left.

Above: Import Manager – shown are all the files currently imported into this game.  You can import custom models and textures, text files for custom property definitions, sounds files, fonts, and more.

I put these tools to use in my project, titled Defend the Basement.  The game itself is to be played by 3-5 people, working together to defend a home base against computer controlled attackers.  The players control hero characters with special abilities and attacks that are used to destroy the computer controlled attacking units.  A full description of the game can be found here, and eventually development of this website will have even more detailed information about the game.

Development of the game began in late February – March of 2009, and has continued up through the present day.

Developing this game taught me a lot of things about conceptual design, game theory and balance.  I have taken the project quite seriously and I’m confident in saying that the end result will be a professional quality 3rd party video game.  Countless hours have gone into concept design, and embodiment design the equivalent.  I have fine tuned skills such as developing logical and mathematical progressions, creative thought, attention to detail, landscape layout and design, and art/theme consistency.