Over this holiday break I have gotten a lot of work done on my recently released alpha, Weapon Test Dummies. I uploaded Mac and Linux versions as stand alone downloads, to go with the already released Windows version. I’ve also gotten a lot of work towards the next release completed, but I’ve mainly been working on beefing up the tools I use to make Weapon Test Dummies, adding a lot of new functionality in these areas. The game tool changes are pretty big, and won’t impact players directly, but it will help me out a lot in being able to deliver a quality game.
So, before I get into the changes, this is what I’ve been working with so far. A few months ago,after already working on the game for 7-8 months, I created a map editor for Weapon Test Dummies that would allow me to open tile sets and map keys, place tiles in a into the key, and save it. Before I would have to edit the level map manually, and I could only see the changes when I launched the game. It was very useful at the time, as it would give me a visual representation of the level without having to load the game up, but it was only a small part of the total game data that could be accessed visually. It didn’t care about what enemies were being spawned when, how hard levels were, or any of that stuff. It had no idea what a turret or bullet even was. All of this data was edited directly in xml files outside of the scope of this editor. Seeing how much the visualizing the game easily helped out before, I decided to expand it into other areas.
1) I can launch any level from the game editor that I want, on any round that I want, and it will give me all the cash I should have accumulated up until that point (makes it way easier to test and balance single waves). This took a little modification to game code, as some things weren’t created with injection in mind, but I was able to pull this off, and it should definitely help out!
2) ALL game data can be edited through the map editor (which is now a game editor really). The way I did this is pretty neat, all xml entity editors are created in the same way, so there is no manual coding of a field to an xml. (It takes all attributes of an node and creates a field, and all elements that have no children and contain text it creates a field.) I can then also constrain a field values to that of an ID of another game element, with little code. (shows drop down with possible values instead of editable text). This helps eliminate errors/typos as well.
3) I can get many key analytics for game data, such as wave difficulty, enemy difficulty, turret strength, etc. in the form of graphs/charts. This can show me additional information and help me spot problems in levels. Right away by looking at this, I can see there is most likely a problem with skyrise temple’s 6th wave spawn, as I can see the total hp per second for the wave has increased dramatically. This would be very hard to spot otherwise.
Here’s a few other examples, they are still works in progress:
All stats for a level, normalized. Still WIP. Gives you a sense for the level balance as a whole:
4) I can see spawn paths, particle effects, and other special tiles marked on the editor map, as well as receive error messages if the map is broken (no path to exit). Which will help avoid problems that will crash the game.
All of this will help out a lot in making sure the game is the best that I can make it. It can be really hard sometimes to be just 1 person doing all the development on a game, and the more tools I can create to self check and revalidate things, the easier it will be to make sure that the game is fun to play. There are some changes I will continue to make here to make things easier, but I should be starting on patch 0.13(desura patch number, not in game number) shortly, though I am not sure on the time table for this yet, but I will keep you updated! If you haven’t already, be sure to check out the game on Desura.