Sunday, 16 November 2014

Producing Venom, part 1

Building boss encounters in Cactus can be tricky because even though they share an underlying framework and gameplay conventions, we want each to have a recognisable identity. Which tends to push me towards doing things I've never done before to try and defy player expectations.

Venom's true weakness is when the other section lords schedule meetings inside the ship

For the fourth boss I wanted to go big - really big - and his design revolves around making that meaningful. A boss that has parts of it blown up over the course of the battle (a shoot-em-up staple) also seemed like a strong concept.

Using long reaching limbs was there from the start but there were various initial concepts including some form of giant enemy crab or a monkey-like entity that climbed and required the player to drop downwards between arenas (like in Focus) but the design that jelled the strongest was a spider reaching into the game space.

I will be light on modelling specifics compared to my posts on Vespula or Justice and I'll skim over some of the details but if there's anything you have specific questions on, leave a comment!

Embryo and Vespula are 6 phase bosses, Justice strictly speaking has 3 and I knew I wanted to go up for the next one. 8 fit the spider theme, but I wanted to avoid one phase equalling one leg, so I always planned for some phases to involve more than one leg, and for him to finish off attacking you directly. I started by screen capturing a mockup of the stage and doodled over the top in Photoshop.

1. roughing out size, 2. wide gun turret, 3. string of turrets, 4. hungry hungry hippos, 5. Shredder attacking from technodrome, 6. battleships, 7. noise complaint

Despite Cactus regularly being called a 'bullet hell', it's on the light side of things, so as a fan of the genre I wanted Venom to push further into this territory. Originally I had planned on Venom using lasers in some phases, but Sanatana rightfully talked me out of this to keep his focus entirely on bullets.

Once he loses his legs he'll resort to launching webs and explosive spiders at you, then once his abdomen is gone he'd pull himself up onto the stage for the finale - a fraction of his former size but still comfortably larger than Justice. This was my interpretation of 'big'.

designing Venom involved staring at more high resolution of spiders than I would have preferred

Taking inspiration from different species of spiders I settled on a face that relied on oversized mandibles. I decided the body should have an open construction framework feel as making him hollow helped justify his size and let me include visible internals that loosely correspond to spider biology. I interpreted silk glands as silo / processing chambers and the heart as an engine / power plant, for instance.

sadly I had to cut this phase of the boss battle

His limbs became crane towers and his feet became hooks which not only read well but kept him mechanical - I was concerned at the time that with the spider movement, limb destruction and leaking fluid that the whole fight might start feeling a bit icky and out of tone with the game, so I was keen to offset it where I could.



Modelling him went smoothly but once he was done I took the unusual step of skipping his UV unwrap in favour of pressing on with rigging and animation. With so much of the game relying on me I'm constantly battling burnout and I thought getting him into the game quickly so I had some visible progress would help me get past a rough spot.

His legs were the only complicated part of his rig - they need to be both bendy spidery limbs and mobile weapon platforms - which are held rigidly in place for gameplay. I used a classic two chain switch, but instead of IK/FK it was IK/IK, with the second IK chain ending a link earlier so I could control the position and orientation of the third link.

this gif will dance to any music in your library. Try it and see!

Seeing a massive creature on screen is impressive but doesn't have to be technically difficult if the behaviour is simple. Large creatures are tricky when they can navigate surfaces as you need ways to keep their limbs planted and procedurally turning the character looks terrible because their extremities move too fast, without any lag or follow-through that a large entity would have. Venom however sits under the stage, which gave me a lot of control over when and how he reacts.

Do you even lift?

His animation tree is almost a straight line - Spawn -> Phase 1 -> Phase 2 -> Phase 3 etc, with transitions also including his limb destruction reaction. The main complication is Phase 8 where he transitions from a world origin animated character to an entity roaming the stage, and I had to reposition the character and start a new animation that lined everything up on the same frame.

Once his main phases were working I started adding his 'payloads'. (he has three, a wide turret, a string of turrets, and a drill) These were animated and programmed like independent enemies - shooting and killing them just sends information back up the chain to Venom who acts appropriately.


The wide turret is used in Phase 1 and Phase 4 (where there are two of them, shooting from opposite sides of the stage) and would have been straight forward except that it had abnormally wide dimensions. Up until this point Cactus had relied on every enemy being approximatable by a sphere so I needed to rework systems so I could use a capsule.


The string of turrets are four separate enemies, and aren't even created until the string finishes animating. Their challenge was letting them communicate when one turret was destroyed so the rest of them could increase their firing rate.


The drill has a blast away case and damages on contact. The original concept for the stage was glass - the drill would punch through and shatter the floor in such a way that the pieces could fall back and fill the gap when it retreated. Due to rendering difficulties I replaced the glass with a wire mesh.

scuttling creatures are surprisingly therapeutic to animate

Phase 7 introduces a new enemy type, spider mines! They are a bit like mines but they just run at you and explode. Originally they were going to be thrown off Venom as he launches balls of web that splat on the ground and slow the player down. I had the spawn animations done and working but having the spiders come from the same direction as the target never created much variance. By switching the mini spiders to climb up spawns that came from everywhere but the target, they constantly flanked the player and made the encounter more interesting.

Finally Phase 8 introduces the payoff of Venom leaking blue fluid from his blown off limbs - when he climbs up onto the stage they pool on the ground just like Peanut's magma gun and inflict damage on the player when they get close.

I start introducing bullet patterns but it was all about getting the tech in and working - it takes many rounds of tuning and adjustment to find the ones we're happy with, and the initial ones, while interesting looking, had all kinds of issues.

I was really fond of the bottom left pattern but it formed large circles with excessively large safe zones. Not super useful

Did I mention that I put off doing his UV maps until later? Later arrived! D'oh! Standard approach, I separate the mesh into as few pieces as possible, deleting anything that will be mirrored or duplicated and push it through Roadkill then neaten up and tweak the result in 3DSMAX.


Once the mesh is UV'ed and a rough texture is in place, I can create the 'break away' geometry used for the destroyed limbs.

the gaps between the pieces prevent the convex hulls overlapping and looks right in game because everything dissolves anyway

And that is a brief overview of how Venom was made! He is gameplay complete but lacks dialogue (both spoken and the dialogue box exchanges with the androids before and after the fight) a proper body texturing and stage dressing. He is in the current Early Access build if you want to try him out for yourself!


Thanks for reading! At some point I'll post a Part 2!

No comments:

Post a Comment