Thursday, 19 January 2017

Fancy Pants Stuff

Disclaimer: Blog post does not actually contain any pants which are fancy.

So another yeah towards the universe's doom lurches into existence. I made a whole 5 blog posts last year - 60% of them in February ... ahem ...

I finally updagraded my 10 year old Dell to a new all singing, all dancing, super-computer of a dev machine.

In other news I survived the Great Yorkshire Earthquake which wreaked widespread devastation.

Anyhoo - back to dev:

I finally completed 104 icons, which like everything else to do with indie game development, took far longer than it should have.

I also made a few changes to the HUD to try and finalize a layout. I merged the energy system for heavy attack and special evade into a single recharging system with collectable bonuses to increase the recharge rate.

For fancy effects I started playing around with a little shader code which found to give objects a distortion similar to Predator style camouflage or the invisible demons in ye olde Doom.

It's still a bit of a work in progress for optical camo but after a few additions to explosion code (code here) makes some nice shockwave ripple effects. See the two videos below and look carefully for the magnified turbulence shockwaves.



So ... onwards and upwards. Development is getting to the stage where I'll soon be swapping out the placeholder items and modeling and animating some actual art assets. To be continued! - hopefully with posts that are more regular than 2016 ...

Friday, 4 November 2016

Devblog: The Devbloggening: Devblog Harder

I haven't made a devblog post since April ... boy, do I suck at devblogs ...

But game development does progress, honest guv'.

I'm making a twin-stick SWAG 'EM UP, for which I need swag ... lots of swag ... so I've got 108 special attacks/defences/abilities/upgrades/buffs and stuff ... stuff which I shall now collective refer to as "POWER-UPS". These power-ups come in 3 levels of usefulness known as the now somewhat classic (thanks to uncle gaben) Common, Uncommon and Rare. Currently Common has an inverted green triangle, Uncommon has an amber triangle and Rare has a red circle ... though this might all change to bronze, silver and gold yet - which is the visual hint for the worth of coin loot dropped by slain enemies by which the player buys swag.

Whilst that's a hell of a lot of code to come up, the real workload has been in presenting it as a visual representation within the game. In fact the functionality for wasn't very difficult to code, regardless of the occaisional code comment which says something along the lines of:
//works for now but make better code later
 So here's a flavour of some of those, said power-up effects - cue a glut of youtube videos.

Knockback sends enemies flying whilst Shunt shoves the player out of harms way

 Banana Slip is the canned laughter of comedy gold, complete with lame sound effect

Magic Bullet bounces from enemy to enemy causing damage

Invulnerability uses full-screen postFX shader as a reference to classic 1993 Doom

Wrath Of The Gods sends down lightning strikes on Heaven's behalf

And of course it's not just explosions and fancy flashing particles and lights, each power-up requires an icon. Sometimes these icons are part of the actual visual effect to let the player know what has just happened.

Hamstring permenantly slows a wounded enemy 

BloodDonor heals the player when causing damage to an enemy 

Zone Of Comfy slows enemies whilst Hypnotism stuns them

Animated auras give off a nice effect in general

I've still got around 10 more complex effects to create. These will feature more complicated animated 3D models, plus I've some 90 icons and various sound effects to come up with. Hopefully after that I can finally start on actually creating game assets like levels, environments and characters. Until then, it's time to continue plugging away at the power-ups which underpin the gameplay of this Swag 'Em Up ... and hopefully remember to not wait 7 months between development blog updates ...

Wednesday, 13 April 2016

Random Explosions And Animated Particles

After having spent an inordinate amount of March as some sort of filthy casual nodev type, it was time to fill out the tax return and get back to cracking on with yesdev.

The stock way Torque3DMIT deals with projectile impact is to spawn an explosion, which is made up of a 3D animated object and/or particle effects with the option for sub-explosions. All well and good, but this does not really generate much variation. I decided to expand this into multiple explosion datablocks that would be choosen between randomly. I was slightly confused about how to pack/unpack using an array list of numbered keys, and whilst I didn't receive any build errors I could not get it to work in practice so chose a thoroughly less elegant solution. I simply listed 3 extra explosions for the projectile, had the engine check whether the datablocks were kosher, and then randomise which one to use, falling back on to the default explosion if problems occured.

And here it is in initial testing. Wooo! Pretty colours!

 I had also been practicing using animation with my particles via videoing fire and smoke and then creating a sprite sheet from the stills. This looks so much better than having static particles, allowing for flickering flames and billowing smoke. Animating particles not only looks good with all stuff moving but they save on performance by allowing you to use a single particle for the effect rather than multiples ones to create the illusion of movement or volume.

Since previously playing around with the idea of animating particles using sprite sheets, I had had my attention brought to a particle generator called TimeLineFX. For a poxy 30 of Her Majesty's British Quids (that's like 45 Seditiously Ungrateful Former Colonial Bucks or something like 5 trillion Emus) it was well worth the cash. It features a huge array of demo libraries and vast options for creating and exporting sprites sheets of animated particles.

To keep overhead low, I decided to use quick spawning, single particles which had a sprite sheet for weapon impact/explosions. By combing multiple emitters into an explosion constisting of starting impact flash, blast shockwave, ending sparks, all of which are basically a single particle playing through their animation and then deleting. Couple this with a small number of additional multiple particles for a puff of smoke and a few random sparks to add depth, and then make four of them as a variation on a theme and it gives a very nice selection of explosions.

I also took the concept of using a low overhead, singular animated particle to replace the build up to my 3D model of an energy blast from the offensive powerup named "Super Orbital Laser". Instead of having a fast growing glow with multiple balls of light getting sucked into it, I could use a single sprite sheet. End explosion still needs work but the 2 second buildup was what I was after.

And here's a test with 4 different types of glow and blends, though the two main versions are close enough for it to be almost impossible to tell.

So, next up, more of the same, more fancy animated explosions, more fixing errors with various special attacks which don't fire when triggered. More of the day in day out problems and conundrums of indiedev.