I’m making great progress with the upgrade shop. I’m working on an info-box popup that shows important information about the skills available to you in the shop. All you need to do is mouse over the upgrade icons and lots of useful information will be displayed about that skill. For example, the info-box will tell you if you have enough gold to purchase a skill if you don’t already know it. If the skill is a bow-shooting skill, it will display the stats of the arrow that is shot when using this skill. The info box will work similar to the mouse-follow text in Cupid’s Revenge upgrade shop, but it will be much more detailed. Compared to Prelude, this design approach is much more intuitive and frees up screen real estate for more upgrades! Prelude’s upgrade window just had a huge text field at the bottom of the page which worked fine for that game, but this new method allows you to read information closer to where you’re pointing the mouse. The info-box text will also be color coded so you’ll be able to make visual associations about what elemental/magical attributes certain skills have.
While implementing the upgrade menu I was thinking about how the game should handle skill rank increases (leveling-up skill ranks). In Prelude, the rank of the skill was determined purely by xp which was awarded by repetitively using the skill. I’m thinking instead of depending solely on this approach, I would allow skills to be upgraded even after they are purchased from the upgrade window. For example, prior to having Fire Arrow, when mousing over the Fire Arrow icon you’ll see the info box say “Fire Arrow available for purchase for N gold” and after purchasing that skill the info-box will say “Fire Arrow Rank 1. You can upgrade this skill to Rank 2 for N gold.” I like the idea of upgrading ranks using gold. I haven’t decided if I want to use this method only and do away with individual skill rank increases via xp. This is a balancing/design decision. It might be cool to have both methods available, so if you want to increase skill ranks by earning xp you can do that to save gold, but if you have a lot of gold and want to quickly become an expert Fire Arrow shooter you could do that too at a certain cost. It just wouldn’t be a good idea for you to purchase the skill rank increase if you’re just a few xp away from leveling up for free.
In the process of making colorful pretty looking text, I’ve also been formalizing the developer documentation for adding skills to the game. To review, a “skill” is anything that you can purchase from the upgrade menu. This can be anything from passive abilities like health bonuses to bow shooting skills (e.g. fire arrow). The process for adding basic bow-shooting skills is quite simple so it’s been fun creating new types of arrows for you to shoot. I can literally create a new type of arrow in fifteen minutes with just a few lines of code and some new graphics. Some of the more advance arrows, like the ones that have special spell summoning abilities (e.g. chain lightning) will require more time to integrate, but I’m pretty happy with the design so far.
My next steps are to formalize the developer documentation for adding non-shooting skill upgrades like passive skills (e.g. faster cooldown times, faster mana regeneration rate, etc.) and instant cast abilities like unit summoning. I’ve been focusing on skills that shoot stuff, so these other types of upgrades will require some new code.
Q: Developer Documentation…What do you mean by this Jason?
A: This is documentation that outlines procedural steps for maintaining the integrity of the code while adding a new feature to the game. For example I have a document called “Skill Adding.” Such documentation helps ensure that I don’t miss important steps. There’s a lot of code in this game, and I’m just one dude making it all, so sometimes I forget why I coded something the way I did. Writing this stuff down is just a way to remind myself how this crazy game works. You, the game player, will never get to see this documentation (because it’s top secret of course) but just know that the game will be super cool because I’m using a formal maintenance process to keep Bowmaster 2 in the best shape it can be! A bonus feature about having good documentation is that I’ll be able to easily add new features long after the game is released even if I’ve forgotten how to program. Yay for documentation!