Times, trials, and turbulence.
The art of balancing study time for final exams and coding time for Skirmish is a delicate one, but always rewarding for those who can manage it. 😉
One of my goals for this Milestone was to implement a working rocket launcher. Rocket launchers seem to be the cornerstone to any shooter game, which previous iterations of Skirmish never had. I quickly decided they must be added this time around. Nice and early.
Starting from the beginning, this first meant that a model for damage was needed. I decided upon six types of damage to exist in the game world, which both players (via Armour items) and props (via natural resistances) can defend against, to varying degrees. The damage types are Projectile, Pressure, Heat, Puncture, Cold, and Toxic. Most weapons will be a combination of the types, like explosions falling into the category of Pressure+Heat, plasma being Projectile+Heat, and slug rounds being Projectile+Puncture. Different armour types will enable different defences depending on the player’s style of play. This will soon factor into the health/armour system, which will be a little more interesting than the standard fare “one regular boring health-bar” or “regular health-bar and armour-bar” approaches, but still remain intuitive enough as to not confuse the novice player.
Like mentioned above, props can also be recipients of damage. Props are (optionally) destructible. This is a big step up from the last version of Skirmish, whereas everything in the game world except the players was entirely static. Props can take damage, be destroyed, be created, and react to physics within the game world. This allows for lots of interesting gameplay possibilities. Currently implemented are wooden crates which can be destroyed; spawning a cloud of smoke and flinging out a handful of broken wooden plank props from the destruction. One can then proceed to fire a rocket launcher at the nearest wall and watch those planks of broken wood go flying as well. I admittedly spent perhaps a little too much time toying with that particular case. Hopefully I won’t be the only one. 🙂
(“Watch out, Doctor Crate!”)
Additionally, weapons are implemented independently as individual classes. This means that special/unique behavior is easy to implement into certain weapons. It also avoids the mess that some games into with having a large number of weapons that differ only in a handful of stats/variables. With this, small things — but effective in adding that extra subtle feel of detail and atmosphere — like the rocket launcher having a ~1 second charge time (whereas the player must remain motionless), complete with a little progress bar suspended over his head. There’s also the fairly large recoil of firing the rocket which tosses the player back a fair amount. I won’t hesitate to admit that I spent over an hour perfecting the appearance of the explosion’s particle effects. 😉
It’s just about time for start on the map editor, but I’m already counting down the days until I get to implement the plasma cannon. 🙂