Javascript Browser Based Tower Defense Game: Elemental TD

Posted in Game Development on Nov. 6, 2010, 1:14 p.m.
My latest project is an Browser Based Tower Defense (Elemental TD) game written in Javascript using the MooTools framework on the client end. The thing that sort of sets it apart from other browser games is that it is a true browser based tower defense: it does not use flash; it's all javascript / css / html (with many calls to the server to validate the game state and ensure cheating does not happen). The server side of things will likely be done in either Node.JS or Python (right now, it's coded in python using Django). The idea is fairly similar to every other TD game out there, although this one is done completely in the browser - so you can play from anywhere. The idea behind the game is not too unique - a typical tower d game, using elements that have unique effects. The difference, however, is that what I'm really trying to do is develop more of a framework for others to use and create tower defense games.
In theory, 'End of Ages Elemental Tower Defense' will not be a single tower defense game, but more of a community where people can make maps, towers, creeps, gameplay rules, etc. using this browser based framework. Eventually, the goal is to have it playable on Facebook, so you can create a game using a map that you (or someone else) creates and play tower defense with them.

Current State of End of Ages Elemental Tower Defense

So, what exactly am I doing? Well, I'm trying at the moment to get a basic elemental tower defense game created. There are the four elements along with light and dark, each element has a unique ability (dark has damage over time on hit, fire has splash damage, wind has stun, etc). The creeps will function like in any other tower D game, getting increasingly harder as the next waves comes. The towers can be upgraded, but you have full control over what exactly you upgrade - you can upgrade the base Damage, Delay, Range, and elemental values for each tower. There is no preset limit of upgrades, so you have a lot more fine grain control of what you upgrade and the different dynamics that towers of different elements create.
So far, nothing unique really. Now, the next step I want to take is to allow multiple people to connect to the game you're in and build towers along with you. The more people playing, ideally, the harder the creeps get.
The idea though is to build all this up and allow people to create maps and tower types through using this framework.
There will also be a gameplay mode where you can have a defending team (tower builders) and an offense team (creep builders). The creep builders will receive money based on how far their creeps get and they will be able to upgrade creep health / armor / speed / elements / etc. with money. The goal of the summoners will be to make creeps reach the end point, and the defenders have to stop them. The alternative mode is just defenders vs. computer creep summoner. The computer will summon creeps that will be either automatically generated or predefined by the map maker.

State of the game

The fundamentals of the game are, for the most part, completed. I am at the point in the tower defense game where you can build towers, send individual creeps, and upgrade damage / delay / range / and the fire, light, and wind elementals for each tower. It's very rough and under heavy development; I wouldn't even consider it in its alpha stage yet. The interface is ugly and does not function properly, but once I spend some time with it I will posting the URL to the dev version.

Roadmap

There is much left to be done. The game will require constant communication with the server, but the server side of things has yet to be developed. I am considering a variety of different approached, but will likely end up using Node.js and couchdb for the game itself and django to handle the website. The other three elements (dark / earth / water) need to be implemented, and then the creep editor needs to be in place.
After that, balancing and other gameplay issues will be tackled, and finally the server side code will be developed. In theory, the server side of the game should not be very difficult to write as it will be similar to the client, but just accept requests from multiple clients and update the game state. Then, it will be rolled out on facebook and a website to track player stats will be created . In my next post I will go further in depth about the game and provide a link to test it out.

Support Me

blog comments powered by Disqus