The DevLog is a place to see what I'm currently working on. Occasionally I'll post links to demos of things I'm working on. Check back here often. For more information about a particular project, visit the Projects page.
DevLog
2009-06-14 It's Alive!
I've been working on some real cool stuff lately for Bowmaster Winter Storm (Introductory chapter to Bowmaster 2). I'm almost finished with version 0.0.1.7 which should add a bunch of new content (Dragons!) and fix some bugs. Stay tuned for this exciting new update. Soon I'll transition from Alpha to Beta and do a bit more to promote the game. Thanks for the feedback on any bugs you find. I'll do my best to fix them. Just a reminder... the game is not balanced yet. Right now I'm focussing on overall stability of the game so feedback on balancing issues should be deferred until after you've played the beta or final version.
Wow it's been a while since my last post. And yes I do remember the quiet announcement. Just to remind people, winter doesn't really end until March 20 ;) But today is your lucky day because I've decided to release Winter Storm sometime this weekend. I can't say when exactly but this is how it will be released... It's kind of a new approach so pay attention. The game "Winter Storm" will be released as an exclusive "Alpha" site-locked to my website. This means you'll only be able to play it on my site. The reason for it is because it's still a work in progress. So what's an alpha? It's like a beta but the code is even more... fresh per se. I'll give more details and disclaimers when I post the game which will be here. After I post it, I will continue to update it most likely on a weekly basis, adding new features and content while fixing bugs and balance issues. Now go tell all your friends about it and Stay tuned!
I'm quietly announcing "Bowmaster: Winter Storm" to you right now. It will be released this winter as a introduction episode to Bowmaster 2. There will be two modes of play: Story mode and Arcade mode. Story mode will have a set of levels with specific objectives. You'll upgrade in a way that is similar to Bowmaster Prelude. Arcade mode will allow you to fight a never ending battle with all of the available skills already acquired and upgraded and the goal is to last as long as you can as the difficulty slightly increases.
Our Hero has added a tower to his property just in case :)
The purpose of this episode is to let people see first hand many of the features that Bowmaster 2 will have. Hopefully it will also enable me to improve the quality of Bowmaster 2 through user feedback from Winter Storm while renewing interest in the Bowmaster saga.
Creating a smaller full project like this has also really got me focused and motivated. Among all of the normal holiday madness, I've been working on a lot of fun stuff like animation, graphics, and AI code. I'm super committed to finishing Winter Storm soon so stay tuned for more news.
Election madness. Economy madness. Bowmaster madness. It's been pretty crazy these last few weeks. I just want to reassure you that I'm still in business. And as a thank you for your continued support I have released a new game which you can also download FOR FREE! Yes, you do not have to pay money. It's probably one of the most economical things you can do right about now.
Check out my new space game.
Since this is the devlog after all, I'd like to tell you about some of the cool features implemented in the game. For starters, you can see that it's similar to the background space battle on my main page. This was really at first just a tech-demo prototype for camera focusing/panning. What you didn't see in that version is the ability to instantiate multiple cameras! ... it's exciting, trust me. What I mean by this is that there can be any number of views of the same game world. For example, in the game, you see your top down view and a symbolic radar view, but I've created a generic view system that allows me to make any number of views I want.
This was an exercise in the Model-View-Controler design pattern. Essentially the game logic works completely independently from the views that exist. I could create no views, and the game will run perfectly in memory (including all of the collision detections). I accomplished this by using my own bounding box collision detection system and relied only on MovieClip functions when updating registered camera views. Check out a demo below of a single battle being viewed from three different cameras. The bottom right camera uses a "low detail" mode and stays focused on a fixed position.
Yes I'm still working on Bowmaster 2. Most of these past few weeks have been spent working on Bowmaster 2. I just can't show you anything since most of the work has been on the main build (no little demos or animations to show).
Specifically I've been working on integrating the bomb effect code and debugging how units react to getting hit with blast waves. It's working well with my current damage system, as I'm able to give explosions specific elemental attributes (e.g. frost bomb).
Another cool feature I've been developing is context-specific death animations. So no more generic death animation. Units death animations may change depending on how they died. For example, I currently have code that can freeze a unit mid animation -- it looks like it is covered in ice cubes. You can then hit the frozen unit with an arrow and it will crumble into many ice chunks. Or my favorite animation so far is if you freeze a unit while he's in the air, when he hits the ground he explodes into many ice shards. I also have code for "slice in half" animation which shows a cross section of the unit with bones and 'redness'. The graphics are still pretty toony, so it looks more like a ham being sliced in half, but the effect is still pretty cool.
Here's a demo of how BM2 explosions are going to work. It's slightly different from previous game explosions. In the past, I used instantaneous explosions that inflict all enemies within the blast radius. This demo shows how in BM2 explosions expand out in real time and only do damage as enemies are hit by the shock wave. This demo shows simplified graphics and the explosions rates may vary in the final release of the game (here you see slow shock wave expansion rates).
Another feature demonstrated here is the concept of blast resistance. In this demo, notice the red and gray bars under each soldier. The red indicates health and the bar indicates blast resistance. Soldiers with a low blast resistance value are more likely to be flown into the air from a shock wave. This doesn't necessarily mean that units with low blast resistance take more damage. Damage is calculated as a function of other factors.
The new ability to launch enemies using explosive abilities adds a new level of strategy. In Prelude, explosions just inflicted damage, but with BM2 explosions can be used to delay the approach of certain units by knocking them back.
Click anywhere on the screen to create an expanding explosion.
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.
-Jason
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!
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.
It's been a busy past couple of weeks for me lately. I went to two family reunions, went on vacation with my fiancee, visited with my brother who came back from Japan for for a week, and hosted a crazy LAN party... all while actually being quite productive on BM2.
So I don't have any cool new demo for you guys but I want to let you know what I've been working on and give you some more details about how skills/upgrades will work in the game.
Currently I've been finishing up the Saved Game Profile system that works similar to Bowmaster Prelude. I redesigned the code from the ground up to meet the needs of the exciting new skills/upgrades system in BM2. The skills system is currently being developed and I'm making great progress on the front end user-interface design of the action bar and skill book. If you've played World of Warcraft you'll notice a similar design.
In Prelude you had a user interface that allowed you to setup your action bars with skills using a window that showed all of your action bar rows along with all of your available skills. You could drag and drop skill icons into the action bars you wanted them to be in and then when you exited to the game window you would see the changes reflected in your lower action bar. The current issue with that method for BM2 is that I plan on having so many skills available for the player to use that they may not all fit on a single page...
The way it works in BM2 is similar but way more intuitive and allows for many more skills. Now you have a skill book that is tabulated by elemental type (e.g. fire, ice, light, dark, etc.). While in the game you simply click on your skill book button to bring up the skill book while in game. Clicking on a skill book tab will show you the available action-skills that are available for you to use in your lower action bar. There are other miscellaneous tabs for other stats too, but for now I'll focus on the skills and action bar.
Using the skill book you can drag and drop action-skills to the action bar. You can also drag action-skills from one spot on the action bar to another and easily swap two action skills (e.g. place ice arrow that is in spot 1 at spot 4 where fire arrow is, now fire arrow is in spot 1 and ice arrow is in spot 4).
Perhaps the most interesting thing about my planned design is not the action skills alone (e.g. fire arrow, ice arrow) but the ability to purchase modification upgrades. For example, every profile will start with at least the basic arrow skill. A skill modification would be something like "multi shot". You've seen something like this before in Bowmaster 1 where you could upgrade how many arrows of a specific type you could shoot. Now I plan on having other interesting skill-mods, and the ability to purchase them for all sorts of different skills opens up several combinations of upgrade configurations...
So just to re-cap, I have several base elements in the game... Fire, Ice, Wind, Earth, etc...
Every element has a basic arrow type skill.... fire arrow, ice arrow, etc. These skills start off with the ability to fire a single shot at a time. With the new mod system, you can purchase abilities that will be applied to a specific skill.
Here's a few of the skill mods:
Multi Shot: Allows you to shoot two or more of a type of projectile at once in an even spread.
Rapid Shot: Allows you fire multiple projectiles at the specified angle and velocity.
Power Shot: Allows you to fire a stronger version of the projectile. The shot has a delay and will be fired at the angle you specified when you released the bow.
Homing: The projectile will have the ability to home in on a specific target.
No Gravity: The projectile will not be affected by gravity.
You'll be able to purchase several mods for the same projectile type. E.g. your fire arrow can have multi-shot and rapid-shot, while your ice arrow can have rapid shot, homing, and no-gravity mods.
Mods will also have a rank level (that increases through through repeated use or by purchasing upgrades). So rank 1 multi shot will start you off with two arrows per shot, and with each increase in rank you will be able to shoot more of that projectile. The affects of increased mod rank will depend on the mod type. A low rank homing mod will just not be able to turn the projectile as fast as a high rank homing mod.
Note that not all skills will have access to all possible skill mods. I'll be making sure nothing gets too overpowered. And to do this, I'll be adding an element not seen in previous Bowmaster games: Mana/Energy. Skills will still have cooldowns like in Prelude but now certain abilities will require that you have enough energy in your mana pool to perform them. The use of mana will add a new element of strategy to the game. I promise to balance this element so that it doesn't seem restrictive -- Mana resources just need to be considered when you ask yourself, "should I use Fire Storm or Ice Storm?"-- in Prelude, as long as both cooldowns weren't counting down, you could use both one after the other.
The skill mods for each skill will be displayed just above the skill action bar. When you select a skill in the action bar to activate it, you'll see the list of skill mods available for that skill. All projectile skills will have the single-shot "mod" listed first, and all additionally acquired mods will be displayed after it.
Figure 1: Basic Arrow, Single Shot Mod Selected
Figure 2: Skill in Button 2 Selected, Multi-Shot Mod Available
Figure 3: Skill in Button 3 Selected, Rapid-Shot and No-Grav Mods Available
Check it out. First ever BM2 interactive demo. Note: this is just a demo of a small set of features that the overall game may have. If you find any bugs please let me know. Enjoy!
Check it out now. Funk soul brotha. There's a lot I can say about this demo but I'll just let you figure it out for yourself. Enjoy. (NOTE: this is just a few of the many features of Bowmaster 2).
Here are two tech demos for some new features I've been working on for Bowmaster 2. The first is circle vs line segment collision detections. I know I talk a lot about
collision detection but it's not a simple topic. In this example I show how a line segment can intersect with a circle. Just drag the red and green dots around to see where the intersections occur. The code for this demo is useful for determining fast moving projectile collisions against circular objects.
This next demo demonstrates a constant (stackable) "aura" effect.
Imagine a defensive boost aura similar to something found
in World of Warcraft. All the party members within a certain proximity of the aura provider are given a bonus. In BM2 you might see "commander" or "elite" type units that give off auras that boost stats of allied units. You'll likely want to take down these units first to make weaken the overall strength of the enemy army.
I've been working on some new unit animations for Bowmaster 2. I created animations for a catapult (different than the trebuchet -- it will be similar but I plan on having different ammo options for it) and a ballista weapon which will shoot heavy spear-like ballista bolts that do massive pierce damage. I also created a new unit animation for the Lycan unit. Check it out below.
I just posted the game to it's official location. I'll post an official link on the main page in the near future. Let me know if you find any bugs and I'll do my best to fix them. Enjoy :)
I'm almost done with the final boss level. It's coming along nicely and it's a lot more elaborate than the other boss battles. I don't want to spoil so I won't show you any pictures. After I finish the boss which should occur sometime this week, I'll do the very final balancing and finishing touches and then I'll officially release it. After this project is complete I'll be back to focusing more on BM2 and you'll see more devlogs with BM2 updates. Stay tuned!
I've released a near complete version of Moon Master RahKon.
Click here to play. This version includes high locally stored high scores (for each difficulty level). It also fixes some bugs: invisible lasers, your ball keeps moving if you click off screen somewhere.
Right now this high scores are saved, but the scoring may change in the final release and the high scores will be reset. Also, I plan on having a final level with a new (never before seen) boss. Currently, in this version it can go on for ever even after you kill the basic bosses.
As I said I would, I have released a new game. However, I was up late working on the final touches, and since I may still need to balance certain things and further test the game, I decided to release the game as an open beta version. This means I have not yet posted the game into the main game links page. So if you are among the cool fans who read this devlog then you are now rewarded with an exclusive look at the almost complete version of Moon Master: RahKon. Enjoy! Feel free to give me feedback about game difficulty, bugs, features, or whatever you want. I still may be able to adjust the game to fix issues you discover.
Sorry it has been a while since my last post. Despite not reporting anything recently, I have been making good progress on my projects. I recently upgraded my computer in an attempt to make my life easier. Instead it made my life really difficult for two weeks. I finally got everything working now and transferred the important files and installed Flash 9 so now I'm back in business. And boy have I been busy. I am pleased to announce a new game I'm soon to release "MoonMaster: Rock On." It's a mix between Katamari Damacy and my Gun Master. It's a highly modified version of the last AS3 engine demo featured in a previous devlog entry. In this game, You'll take control of a highly maneuverable green rock. Moon rocks are falling out of the sky and threaten to crush you. On top of that there is an alien race that is trying to blast you to bits for some reason (some sort of conspiracy). Luckily you're a special kind of rock that can fire lasers. The game is about 85% complete and I hope to get the last 15% done before the end of the week. However, I may take the next weekend to play test and balance the game before releasing it. The game is fairly simple but it's not just a typical shooting game. It has some interesting gameplay features that add new challenges and strategies that I think you'll like.
And the purpose for making this game is to practice developing with Action Script 3.0 and to get warmed back up for developing robust code for Bowmaster 2.
After making the switch from AS2, I realized there were a lot of things I still needed to practice before I started making more code for Bowmaster 2. Specifically, I discovered that user interactivity was quite a bit different in AS3. In an attempt to practice, I was inspired to make a new game. The code is super ugly looking and I probably won't remember what the heck I was doing two weeks from now, which is why I better finish this side project ASAP before it all implodes into an AS3 blHACK hole.
Action Script 3.0 is making more and more sense as I convert old AS2 code over to the new standard. The code is much cleaner and I can definitely see a performance improvement with my core game engine. This isn't to say I'll be cutting corners though. I'm continually making sure I don't add any "expensive" code or animations that eat up all the CPU. I've successfully converted several of my unit AI and physics code so it's starting to come alive. I feel like Dr. Frankenstein giving life to simple rag-doll flash sprites... they even exhibit some pretty dumb behavior at times ;) but that's all part of the process.
After playing the "Quake: Enemy Territory" demo and having it run slow on my 1 year old computer with low settings, I vowed to do everything in my power to make sure I never release a game that can't run well on a current average computer. For flash, this means making the transition to Action Script 3.0. Bowmaster Prelude's game engine is created entirely in Action Script 2.0. I'm taking this opportunity to create a brand new, highly optimized engine based on the Prelude design but implemented in AS3. Before making this decision I created performance tests to compare the difference between AS2 flash 8 and AS3 flash 9. The difference was quite significant as the AS3 version outperformed the same code and graphics of the AS2 version by up to 5 times the speed.
So what does this mean for Bowmaster 2? With AS3, BM2 will have more targets on the screen, more projectiles flying through the air, more advanced physics using Vector based collision detection (no more arrows passing through things -- unless of course you're using the pierce arrow ;), better animation and graphics, but more importantly BETTER PERFORMANCE FOR EVERYONE!
Check out the demo below to see the power of Flash 9 and AS3! Muahahah...
Specifically, this demo features the new "boulder" collision detection code that can be applied to any spherical object such as catapult ammo, loose boulders, or debris from castle explosions. This demo also features a more advanced projectile collision detection system that can allow arrows to hit targets at ANY speed. See for yourself by clicking anywhere on the screen. A super fast "test" arrow will be fired from the top left corner and will collide with the FIRST object it comes in contact with (be it a boulder, foot soldier, or the ground).
Please note that this is just a demo and not the final game engine. Unit animations, terrains, unit stats/behavior, gravity, projectile speed, background artwork and graphics may appear different in the final game.
I'm currently not bought off by nVidia. You will not see at the beginning of BowMaster 2 an animation that says "nVidia... the way it's meant to be played" and I will not require Window's Vista or Direct X10 to play the game.
The unit AI and animation integration is coming along nicely. I've been running automated tests over night and have been pleased to see that the game continues to run nicely and the unit's are staying smart :). The new game modes are working well too.
You may remember from my ninja demo a few weeks ago I showed new units jumping around the map. That was just a demo, but I successfully created a "ninja" test unit that acts pretty smart. It will jump towards an enemy until it is in range and then walk until it's close enough to attack. When his health is below half, he will jump back in retreat until he has regained more than half of his health back. I also made it so that the ninja can only jump when he has enough energy (separate from health) so he can't just jump all the time. This is just a test unit at the moment, but with my new Animation and AI architectures combined with my improved physics engine, I'm able to implement pretty cool AI behaviors fairly quickly.
Happy Birthday Pat. Below is a dire wolf graphic and animation I created. Check out his majesty. I call him Fang, after my WoW pet (who is almost 3 years old... they grow up so fast). This week I spent a lot of time working on animations such as this (I don't want to spoil the surprise), but I also spent a lot of time with some very important code I've been neglecting... I'm planning on having the next Bowmaster game support multiple game modes (not just Capture the Flag like in Prelude) so in order to do this I had to re-code a lot of the "hard" coded features in the old Prelude code. Codie co decode code. Say that 10 times fast. Basically I was able to create a very nice foundation for supporting multiple game types and unit AI's. For example, in Defend your Castle mode, you need to keep your castle alive and kill all the enemies. The enemy AI will advance towards your base at all costs and they will have no castle on their side. Your AI will defend your castle at all costs, attacking any nearby units, but perhaps staying closer to your castle (exact AI behavior is still being worked out).
Stampede! I'm having a lot of fun pretending to be an animator. As you can see I've improved the horse animation significantly from the original. Animation is a long a tedious process but the end result is cool to look at. It's going to be worth the effort though. I've been working on other animations as well, but that's top secret information. If I tell you I'd have to ... try and convince you not to tell other people.
I've improved the archer animation so that they now aim towards their target. See how the archers adjust their bow angle to try and hit the baby red dragon. I'm using simplified AI for this demo and the arrow physics may differ (gravity and velocity) from the final game.
I spent most of this week working on unexciting documentation and file prep. I am trying to create a "lite" development version of BM2 that doesn't take 7 years to compile. I'll do this by temporarily removing items from the library that aren't being used (such as backgrounds, cutscenes, music etc.)
Check out the new character animations of the stealthy Jonin. Featured here are the Fist, Sai, and Katana Jonin. Notice their amazing mobility; landing arrows in these targets may prove quite challenging. Also watch how they pass off the fire orb artifact as an example of their ability to quickly escape with valuable items. The Jonin have a combination of basic attack moves and a special melee and jump attack. The basic moves cause blunt damage (from fists and feet) and the special attack damage is different for each weapon type. For example, the Katana Jonin's special moves inflicts slice damage whereas the Sai Jonin's inflicts pierce. Your allied troops and structures may be weak or strong against certain types of attacks.
Check out some new and exclusive character animation and background artwork. Feel free to right click and zoom in to get a better look. This is just a sampling of the many types of units I plan on having in BM2.
This week I spent working on revising my requirements documents. Specifically I worked on formally defining the magical elements and weapon types. I also started work on my new damage calculator which should take into effect physical and magical attacks. I'm planning on having basic single arrow types available for all of the magical elements. These arrows you'll be able to fire at a faster rate than the fire and ice arrows in Prelude (almost as fast as normal arrows) but they'll have reduced pierce damage; however, different types of enemies may have certain elemental weaknesses that you can learn to exploit. There will also be a series of upgraded magical arrows as well as class specific magical arrows (and super arrow spells).
Dang it's hot. Not the most fun time to be programming in a room full of heaters (that's what I call my computers). Anyway, despite the weather I've managed to get a lot of work done on the not so fun stuff about making games... optimizing. Well it's kind of fun to see your games perform more efficiently, but at the end of the day, 10 hours can go by and all you have to show for it is the same exact game (hopefully without many extra bugs) but one that runs a bit more smoothly. So unfortunately I don't have any cool new flashy animations or graphics to show off, but I can say that you'll start to see more fun stuff in the coming weeks, so stay tuned. But I did manage to dig up my fireworks demo from last year and integrate it with the main page. Now you can change between the Spaceship Demo, the Plague Demo, and now the Fireworks Demo.
I got a lot done on optimizing the collision detection of arrows against objects. I was trying to get away from using hitTest on the character movie clips and instead use my own BoundingBox class which works with my Vector class. In short, I can now better detect fast moving object collisions so things shouldn't appear to move through things at high speeds. I don't have a demo of this in action, but I did modify my current build of Bow2 by increasing the Hero's bow power along with the gravity. I was just playing around, but the end result felt a lot like the fast moving arrows of BowMaster 1, and there was a greater sense of power when you released a fast moving arrow -- something very satisfying about it. Nothing is definite, this inspired me to seriously consider allowing you to upgrade the bow power like in the original and maybe slightly increase the gravity in this next version so things fall at a more realistic rate (but not too real so you have time to dodge enemy fire if need be ;).
Another thing I've been working on is this "plague" effect that I plan to make implement as part of a new ability, perhaps for the hunter or mage class. I created a non-interactive demo of this just for fun, and the actually implementation in BM2 may vary. To see it click on the green orb at the top right of the main page above.
Just to explain a little about the demo: The blue squares are host cells (pretend they are footsoldiers or something living). The green orbs are virus cells that feed off of the host cells while slowly killing them. Then just for the heck of it I added some medicine cells which heal host cells and kill virus cells.
The cool thing about the ball particle is that it can be used for many new types of weapons, spells or other reactive environmental effects. For example, imaging a boulder placed at the top of the hill. Perhaps you might be able to dislodge it with a well place bomb arrow, sending it rolling down the hill crushing all the ground troops in its path.
I've implemented it so I can adjust the bounciness and friction levels of the ball and surface the ball collides with. This alows me to simulate very different particles using the same code (e.g. boulder on grass, vs boulder on sand, or rubber ball on grass etc.)
Test Boulder Rolling (meteor graphic)
The other new technology I added is the effect the terrain has on ground unit speed. Ground units now travel relatively faster when moving downhill and relatively slower when going uphill. The amount of boost or slowdown is proportianl to the steapness of the terrain. Click on the image below to see a sequence of screenshots that kind of demonstrate this. It probably would've been more obvious if I used only one type of unit in this example, but I didn't have time to do this just for this demo.
New and Exclusive Bowmaster 2 Character Artwork! This picture shows you the three playable character classes in BowMaster 2. Each class will have special unique abilities that help them defeat their enemies. The big dude on the right is an expert in demolitions and heavy siege weaponry. The lady in the middle is a mage with fierce magical attacks. The young lad on the left is a cunning hunter and expert marksman.
Bowmaster 2 Character Artwork
The skill upgrades available in BowMaster prelude will, for the most part, all be available in BowMaster 2. Several of the common skills will be shared among all three classes, but each class will have new skills and perhaps attribute enhancements for some of the common weapons (e.g. the mage may get a bonus to ice and fire arrows, while the demolitions dude may get a bonus to the bomb arrow, even though both classes may use these abilities).
It's been a busy week, but I managed to work on a few things in my free time. I worked on an animation for a battle mage unit for BowMaster 2 (seen below). I worked on illustrating another background for BowMaster 2 but I can't show you because it's top secret ;). I also was toying around with a zombie game idea I had. I'm only releasing this early screenshot now, but I may have a non-interactive demo in the near future. Oh and a few were confused about the previous week's update, those screenshots were of BowMaster 2 which has not yet been released.
This week I've implemented two new skills to Bowmaster: Rapid Shot and the Chain Lighting. See the screenshots below for examples.
Chain Lighting causes bolts of lightning to stream from enemy to enemy, causing lighting damage. This is useful for damaging enemy troops
that are spread out along the terrain or in the air. There is some randomness in how each bolt jumps from one enemy to the next, but for the most
part they choose whatever enemies are closest and within range. Right now the arrow needs to be detonated like the flak bomb.
Rapid Shot causes several arrows to be shot in succession at the angle and velocity you choose. The arrows are shot out at slightly different
angles than you original shot.
I updated the space background with the ability to zoom in and out using -/= keys. You can also cycle through the ships with left or right arrow keys. You can now also aim and shoot the turrets of the Destroyers (medium sized single turret ships) using the mouse. The motherships now have Devastator Laser Cannon in addition to their four turrets.
This week I spent time working on the "multi-shot" arrow which works like the original BowMaster. Also I've been optimizing the code and fixing some bugs. I may post an update to the original Prelude to fix some of these minor issues.
I have been playing with new backgrounds and graphics. I made a multi-fire-arrow and cranked up the max arrows. I was in the desert scene and it looked really cool with ground littered with dancing flames. I might just feature something similar in the final release. Take a look at this exclusive screenshot.
prelude desert
With respect to the space game, I already have code developed for manually piloting the small fighter units. You can fly around with the WASD or arrow keys, shoot lasers and homing missiles. You can target enemies. I plan to have mines and flares too. Mines you can drop behind you and flares will distract enemy rockets that are fired at you. Currently the enemies only fire lasers dots.
And the last thing I worked on today before posting this was the ability to control the Medium sized ships turrets. I may post an updated version of the background demo so you can play with it. You can't control the ship and where it flies, just where it shoots. It's kind of fun just playing as the gunner, trying to take out the fast moving small ships as they whiz by. Kinda feels like being in the Millennium Falcon shooting down ties (in a more simplified 2D environment ;)
What is the DevLog? It's shall be a journal for the progress
of my current projects. I'm not sure how often I'll update
it, but the goal is to keep me in the habit frequently updating
my site.
Lately I've been working on updates to BowMaster Prelude.
I have a really great artist helping me with the project
and the end result will be really special. I may release
some new screenshots when I'm closer to release.
I've also been working on a space game on the side. I may
release it relatively soon actually so stay tuned for that.
I need to focus on BowMaster, but this space game is so
much fun to program... I've never done a true "scrolling"
game before so it's been an interesting challenge.
Back to BowMaster... I watched the Movie 300 again this
weekend (probably the last weekend it's on the big screen,
now that Spider Man's here). That movie made me want to
make a Spartan-like unit with Phalanx squad AI (of some
sort). I love how they alternated attacks between blocking
and spear thrusting. We'll see.