don’t forget to removeEventListener!

Lately I’ve been working on the action bar user interface, skill book, and user profile saving system. The saving system will work similarly to Bowmaster Prelude in that data is stored to your computer via Flash Shared Objects. I’ve currently finished integrating code that automatically saves the user’s action bar configuration. This may sound exactly how Prelude worked, but there are new features to BM2 that required some extra programming. For example, since your skills may have skill-modifications (mods: rapid fire, multi shot, no-grav), the game saves what current mod is selected for each skill. So when you use quick keys to switch between multi fire arrow, and rapid fire ice arrow, the system will know to activate the active mod when switching between the fire and ice arrows (instead of defaulting to single shot). I’m working tirelessly to ensure the new action bar user interface is as intuitive and useful as possible.

I’ve also played around with some new unit animation techniques. For example I’m planning on having multiple death sequences for the same unit. Depending on how the unit dies, there may be unique animation specific to that situation. I’m still researching the complexity of implementing the types of animations I want, but chances are I’ll have more than just a single death animation per unit.

With the action bar, skill book user interface, and profile saving systems nearly complete I’m now starting on code for the Skill Upgrade Shop. What’s different about this shop compared to Prelude is that there will be certain preconditions that you’ll need to meet before you can purchase certain types of skills. For example, in order to have access to Skill D, you’ll need Skills A, B, and C and with at least hero rank 5. So now it’s not just about how much gold you have. Skill preconditions will add an element of strategy to the game. The precondition system is similar to the tech-tree systems found in Diablo or WoW.

Another cool feature of the upgrade shop is that I plan on having more than just bow shooting and troop building skills available for purchase. Now you’ll be able to purchase such upgrades as hero-stat bonuses and castle upgrades (e.g. hit point increase). My current skill system allows for endless possibilities – I could create a perk that when purchased makes it so that any time a demon dies it summons a cloud that rains bunnies… but I’ll have to defer the decision to implement that feature until after I’ve completed all the main game systems 😉 There’s also a ton of game-balancing work that will result from creating all of the upgrades and perks so I make no promises as to what they will be just yet (the bunny-cloud perk might be too powerful).

I’m making good progress these days. Every day I get one step closer to completion. Right now I’m in what might be considered the “boring” phase (I find it interesting… but it’s hard to explain multidimensional arrays and event listeners in an exciting way). This means that I’m working on a lot of the behind the scenes code that make the game work. E.g. windows management, memory management, physics, maintenance documentation, system testing, etc… I’m closer than ever before to completing this phase.

The next phase is content creation which is where I switch modes from “application designer” to “game designer.” Content creation means I start using the existing framework developed during the application development phase (game engine) as the tool for making the complete game.

This involves such tasks as:

  • Upgrade creation
  • Spell creation
  • Final AI programming
  • Graphics, animation and sound integration
  • Level design and game pacing
  • Game testing and balancing

The content creation phase is where I spend as much time playing the game as I spend developing. This phase is where I have the most fun developing too. I’m so excited to be so close to this phase because there are so many new features that the BM2 engine supports. Particularly, the collision detection system I’ve created allows for the most precise detection I’ve ever created for a projectile based game (In my Test Battle, notice how shielded units can block, but they are still vulnerable at their exposed regions). This system alone will enable me to create some very interesting enemies.

My elemental system is new an improved when compared to features in my other games. Having elemental magic is a common theme among many of my games, but BM2 has the most sophisticated elemental system of all of them. And my intention is not to make game players have to memorize a complex fantasy periodic table of elements. The true purpose of the system is to allow for new types of spells and attacks. Certain spells and abilities the player can use will be unique to a certain type of magic and will act completely differently than other spells. “Chain Lighting” is way different than “Poison Plague” which is way different than “Flame Wave.”

Of course there will be enemies that have elemental weaknesses and strengths, but I will not severely punish players for making the wrong choices. Obviously an ice arrow will do less damage to an ice golem but rather than result in no damage, the other attributes of the projectile will come into play. For example, if a huge comet hits a tiny ice resistant frog, it makes no sense to have the frog go unscathed – the frog should go splat from the brute physical force of the comet. My damage system considers both physical and magical attributes between the two colliding objects and determines what sort of reaction will result.

I could go on and on about the features in the current game engine, but I won’t. Just know that I’m excited to start the next phase. Most of my other game development projects were like hand crafted clay pots – fun to make but difficult to modify. For BM2 I’m using a different design approach… It’s more like a Mr. Potato Head*. I spent all this time making the parts (sometimes I even slapped them together for demo purposes). I have a general idea what the final product is going to look like. And most importantly, it will be easy for me to make adjustments. I can’t wait to start playing with my new toy… but not before I clean my room.

Thanks for your patience. Stay tuned for more news.

-Jason

* Google Image search “Mr. Potato Head” if you’re not familiar with that toy. You may remember him from Pixar’s Toy Story.