Open Fire!

by Kyzrati on 20110722 , under ,

Finally fired the first rifle shot today! Not at anything in particular, and not that it matters much since projectiles simply die after impact rather than having any kind of effect...

Been working mostly on the internal firing mechanics lately, thus despite a fair amount of progress there still isn't a whole lot to see. Copy of the latest changelog:
  • Fixed misdirection in flying movement handling around obstacles
  • Fixed FOV to improve accuracy of obstruction by prop objects
  • Added Faction LOS check between their members and those of other factions, to record visible entities
  • Added kneeling/standing
  • Changed unit icon size; now larger while standing and smaller while kneeling to reflect smaller profile
  • Added Race data class, which holds data common to all Entities of a given race
  • Added prop height value, determines how they block FOV of entities of various heights (e.g., when kneeling) and LOF
  • Added targeting/firing mode to battlescape interface
  • Added accuracy calculations
  • Added volume parameters to props and entities to define their profile for projectile collision detection
  • Added ray shooting class for calculating projectile trajectories (subdivides map cells to properly detect collisions by object volume)
  • Added LOF calculations in two varieties (option to switch between them): STRICT traces a direct line to the target and considers anything it passes through to be an obstruction; LENIENT will trace multiple lines to target corners/extremeties and try to hit any part it can when the primary LOF is blocked (enables you to hit the sides of large targets that are hiding around corners). So each map cell actually represents a cube of space, and LOF travels through different parts and segments of different cells as in a normal 3D map; visually, LOF is shaded based on its length through a given cell.
  • Fixed visual oddities on side view display when based on high-angle LOS
  • Added Projectile class with collision calculations and simple bullet animation

The shot below shows a Line of Fire. LOF is shaded depending on exactly how much of a cell it traverses. Each cell on the map represents a 3D cube of space, and some objects may not entirely fill their space, e.g., props and entities. Thus in some cases even when your LOF passes through a cell, it may not hit objects within that cell (unless of course you're aiming at the object). As in X-COM, LOF is more restrictive than FOV, meaning you can sometimes see targets you may not be able to shoot at.
If something is blocking your LOF, the obstruction(s) will be highlighted in red and the LOF will also be shaded red.

Here is a soldier standing behind a short fence aiming at a target (currently lower case letters and single walls are used to depict shorter objects, while upper case letters and double walls are used for fully-obstructing objects).
But when that same soldier kneels down (currently represented with a smaller triangle), he can no longer hit the target because he's hiding behind the short fence.

Not enough time tonight to post how the side view works while aiming at targets. I'll put that up this weekend.
2 comments more...


  • Heroic Fisticuffs!

    Congratulations on the progress so far! Really looking forward to some ASCII X-Com action. There have been more than a handful of attempts so far, none much successful -- traction edge being a recent exception.

  • Kyzrati

    Hello HF--thanks and I hope to be able to provide you with that opportunity at some point in the foreseeable future! I've read good things about Gnome Squad, but haven't had a chance to play it yet (it's on my list, but the list is long and I prefer to spend my time making games rather than playing them :)

Post a Comment