Yesterday Nathan began adding in the ability for equipped weapons to do damage to blocks in Blockade Runner, below are some details and explanations on how we're setting the damage effect up! Also if you missed the 80+ items on the changelog, take a look here!
With our iterative development process things can change on a whim during Alpha. Any specifics we go into in an in-development article like this should be considered randomly subject to change. ~ Ye be warned! ~
THE DAMAGE EFFECT
For the damage effect we're making use of normal maps, and eventually Parallax Mapping to achieve some deep depth and gouging in the textures. This allows us to save memory by being able to re-utilize some of the same damage textures instead of requiring separate damage textures for every state of a block's damage.
The damage textures can be made unique for different types of blocks, so we can have wood use a different damage texture then metal, dirt, grass, etc.
RELATIVE VS PERMA DAMAGE
We've set it up so your character will store eight separate damage locations so you can move off of a damaged block without its health resetting. Permanent "area of affect" damage (which we would consider to only be coming from larger weapons like a Starship's laser cannon or a Rocket launcher) will be stored permanently, just in a different manor.
We'd already tested fully permanent damage for blocks back in 2009, a time when we would spend any extra time during off hours and weekends to mod Zach Barth's Infiniminer. We were completely psyched about the voxels and would test crazy ideas like finite liquids, variable hitpoints for blocks, etc.
One of the things we'd determined was that it really wasn't necessary and sometimes could end up being annoying/confusing in-game to have the hit points stored for every single type of block in the game. You'd have base blocks or diamonds with only 1 HP left take one tap to suddenly become obliterated! For Blockade Runner we'll of course want to permanently store important things like hull damage and the like (as previously mentioned), but for 'tinking away at some rocks on some random asteroid, we figure we can spare the PC (and network) some needless storage of data.
The number of damage locations can be expanded if the gameplay demands it. If it does turn out for the best through play testing then we can go ahead and restore permanent damage for EVERYTHING. For now we think eight will be a good place to start.
SUMMARY
- Different damage patterns depending on the block (i.e. rock, grass, etc)
- Damage graphic uses normal maps (and eventually parallax mapping) to appear deeply gouged into the block.
- Prefabs will be a simple "darkening" effect at first, down the road can have proper damage textures.
- Damage remembered for only the first 8 blocks on less important blocks, scalable to larger numbers if necessary.