Sipho 0.9.3 - New contest winning Mutations!


Looking through the whole changelog and thinking of "what should I outline for this update" really makes me want to have done this announcement one version ago. Nevertheless, we need to keep ourselves ahead, so here it is - another Sipho update!


In the spirit of celebrations, we have implemented some of new Mutation Contest winning entries. Specifically in this order - Phyllodermic, that reduces Drag stat of Zooids, EF5 Twister that turns Twister into a mild tornado and Reduplicating - which makes your projectile weapons shoot an extra projectile and hurt themselves for the right balance!

Loving our work

Phyllodermic was the first one to be implemented as it seemed the simplest. We didn't have Drag as stat yet, it was a property of Zooid, so we moved its definition to a place where all stats are placed - into a huge ZooidStats

 data structure. That data structure is modified through all our Buffs and Mutations - meaning that we will also be able to change Drag with the new Mutation. Drag being a negative stat - that slows or "drags" your zooids down, is the first stat to have a negative effect. We had to implement a negative stat concept for Tooltips - increasing that should be a red coloured text as opposed to the rest of existing stats. Having done all that we send a huge thank you, Salreix, for this contest entry!

Phyllodermic reduces Drag by 33% and increases Max Health by 1, as if it was adding a slick layer!

Twisting mechanics

The second mutation from the contest to be implemented was EF5 Twister. "EF5" is a highest, most destructive category for tornadoes, which is a very fitting name to our micro-tornado creating Zooid. Twister was designed with deep synergy with projectiles in mind - to carry them the extra distance to your target and to keep bombs, like Burstopod bombs, close to your foes. Looks like our players wanted some more OOMPH out of Twister so the Mutation was conceived. The idea was to allow Twister dealing damage as if it was a tornado. To implement that we have added an internal damage counter to its Swirls, which makes them deal damage per second equal to the Ranged Power stat on the Zooid. If Swirl kills anything, it gains +1 DPS as if it "absorbed" broken pieces of what it hit and loses 2% of its DPS when damaging something - it "lost" a part of things that deal damage. To balance high power scaling and not to allow Twister become a tornado with a few damage increasing Zooids like Agonizers, we have given it base Ranged Power reduction of 66.6%. That means each damage buff from Agonizers or Zenoplates that give +1 Ranged Power to connected Zooids will only give +0.33 Ranged Power to Twister.

The EF5 Mutation, being a Twister specific can be generous in damage increase, so it gives base +5 Ranged Power and +100% multiplier. Playtesting it has proven to be fun and interesting - it makes you attack less health-regenerating sides of your enemies and use environment Spike-balls for extra damage. Thank you, Vera, for this great concept!

Reduplicating work

Finally, Reduplicating Mutation has been implemented. It makes Projectile (Flak, Sprayer, Sniper, Soul Eater), Bomb (Miner, Burstopod, Muck) and Cloud (Squirter) Zooids fire an extra projectile. This required some rewriting of our projectile-shooting code. Due to historic reasons and incremental development we had unique scripts for almost each Zooid. In year 2017 we started out with FlakWeapon script, which was used by Flak, Sprayer and Sniper zooids. Later on, in 2019 a more abstract LaunchObjectSkill was added for Twister and others. Being more abstract, LaunchObjectSkill was eventually used for more Zooids and become better maintained. To clean up some code, I've decided to migrate FlakWeapon zooids onto LaunchObjectSkill. Mostly everything went fine, we were even able to add little fire effects to each former FlakWeapon. There was a one big issue with Flak Zooid itself - it fired three projectiles already, but with different damage values. Initially Flak had 2 Ranged Power and fired three projectiles - two 1 damage and one 2 damage, which would add up to 4 damage in total - not what tooltip said, nor it made any sense as Flak had 2 Ranged Power. To stay as close to previous balance as possible, I've set values to mimic previous behaviour as close as possible and allow scaling through stats:


Now Flak has Ranged Power of 1.33 and Projectile Count 3 with 60% linear falloff - meaning that side projectiles deal 60% and centre ones deal 200% - 60% = 140%. In total, this rounds to 4 damage per shot.
A note for math enjoyers - the linear falloff creates a "house" looking curve with sum area of 1. With steeper side-damage-ratio the error can sum up to 7% because the function is evaluated per-projectile. In reality, this becomes negligible as damage values are high and rounded. From gameplay perspective, it's usually better to have single high damage projectile as it has more chances to kill a Zooid, so this rounding error can be considered a small nerf to extra projectiles for Flak. So far, other projectile weapons have constant damage across all launched projectiles.

Now that all shooting Zooids have been migrated onto we were able to implement Reduplicating Mutation:

The Reduiplicating Mutation is quite powerful and gives +1 Projectile Count, essentially multiplying your damage output. And there's this broken heart thin- What's this "Strain" stat?

Strain stat

To balance already powerful ranged weapons and not scale them ad infinitum with another cool Mutation, a Strain stat has been added. Its behaviour might change in the future and the current version is quite radically fun:

Zooids with Strain stat will receive damage equal to the Strain value on skill use. Meaning that Sniper weapon with 5 strain will lose 5 health per shot. Then, each neighbour of Strained zooid will receive Strain-1 damage - so the Sniper's neighbour will receive 4 damage. And then further neighbours will get damaged, until Strain damage reaches zero.

This means that if you decide to make your ranged weapon more powerful you will have to balance this extra damage with additional healing - either Health Regeneration or Chitin's Shell. Yes, Chitin blocks this damage and even though it feels like the Strain should be "below" the shell, it makes it up with interesting synergy between Chitin and Strain.
A very graphic example of 5 x Reduplicating Mutation Straining Flak

We might use Strain in other places as well - I think it would be interesting to see Soul Eater have 1 Strain if it gets shot empty - this would encourage filling it up and add a bit of strategy to Pusher/Twister and Soul Eater combo. Zooids like Radial, which regenerates Energy when damage could benefit from this anti-stat.

That's it for now, enjoy Sipho and let us know what you think!

Version 0.9.2f1

  • Fix Muscle Zooid trying to get its Siphonophore while being uninitialized
  • Twister EF5 Mutation
  • Twister effects
  • Use stat relevancy for displaying stats in descriptions
  • Twister can very inefficiently do damage
  • Melee Grade 4 Mutation reduces Drag and rebalance Powerup Addiction Mutation
  • Add Charge and Reach Stat icons
  • Add Phyllodermic Mutation that decreases Zooid Drag
  • Flail respects Drag stat change
  • Fix Buffing zooids not being notified of stats changed
  • Zooid Mass and Drag are now Stats
  • Scale Puffer transform correctly
  • Restore Puffer to having 16 connection angles
  • Update Siphonophore RecentWealth immediately if Wealth changes to higher - fixes Aquarium spawners initially spawning empty heads
  • Support Polyp-only siphos
  • Siphonophores no longer store unused stats
  • Update 2D packages
  • Muscle Zooids change distance by absolute values - makes Piston and Puffer bit more reliable
  • New Zooid visual tests
  • Expand Piston connections only for main connection Zooid
  • Fix Flail wind-up which would send Flail flying forward when its retracted
  • Update volatile stats when updating structure
  • Update credits
  • Advena mover Radial applies Energy Regeneration buff instead of instantly granting 10 energy per damage point
  • Make Energy Orb tooltip dynamic so it always refreshes
  • Polyp damages Zooids it's attached to
  • Add option to not destroy projectiles on chip
  • Add Skill energy cost scaling support
  • Revert back to old pusher behavior - push force vectors are collinear when pushing and concentric when pulling
  • Projectiles remember pierced colliders
  • Launch objects at offset distance by launch angle instead of fixed point
  • Save manually spawned enemies in Aquarium
  • Remove Mutations from built-in Layouts
  • Try to fix neighbors stored in Layouts when loading

Version 0.9.3f1

  • Essence of the Elders reduces Strain
  • Tweak Twister damage
  • Deal Strain damage on the next frame - won't require dealing with dead Zooids mid-skill activation
  • Add Reduplicating Mutation and its icon - fire extra Projectile, but have increased Strain
  • Flak, Sprayer and Sniper are now using Launch Object Skill and supports multiple projectiles per shot. Add new shot effects
  • Use Projectile Count stat with Launch Object Skill Zooids - Burstopod, Twister, Soul Eater, Muck, Squirter
  • Use generic launch object skill instead of poison sack for Squirters
  • Display multiplied values when displaying buffs and Mutations
  • Add Strain stat - using skill with deal damage to the Zooid itself and with fall-off to its Neighbors. Add Strain Icon
  • Twister Grade 4 Mutation gives base damage 2.5 as well
  • Twister starts with 2 Penetration (up from 0), lower inherent Twister damage downscale to -300% (from -400%). Twister Swirls that destroy things increase their internal Damage Per Second by 1. Swirls that deal damage lose 2% of their DPS
  • Earthy Blossoms Area: Spawn mossy bricks only in deeper layers and bright bricks in top layer
  • Do not apply energy regen percentage buffs if Zooid doesn't have base energy regen - reduces possible permutations for Intercirculatic Mutation
  • Parallelize soft body mass inversion calculation for 1% performance improvement
  • Fade-in soft body deformations instead of having them instant
  • Split some of Projectile logic into separate scripts for modularity
  • Allow offsetting random time per zooid renderer - more visual variety for animations

Bugfixes:

  • Delay stat change update to the next frame on Zooid to prevent stack overflow
  • Fix Shell created effect appearing in wrong places
  • Remove hack in zooid shader which made zooids fully opaque if they were black
  • Fix Twister incorrectly counting objects that haven't been damaged as pierced
  • Handle Leeches dying from leeching on their targets
  • Premultiply alpha of all Zooid and Environment sprites that do not have semi-transparent parts. Fixes white outlines on some sprites. Was especially visible in Advena areas
  • Fix negative stat change multiplier display percentage

Version 0.9.3f2

  • Launch Flak, Sniper and Sprayer projectiles at full speed and have no extra force for the same behavior as before
  • Build

Version 0.9.3f3

  • Scale extra Flak projectiles in a similar way they've been scaled with old Flak Weapon behavior

Version 0.9.3f4

  • Update Flak description
  • Cleanup Zooid descriptions and add Projectile Count stat
  • Scale Zooid add-force-over-frames added force linearly instead of applying constant force until all force is applied
  • Deal Strain damage over time

Version 0.9.3f5

  • Correct Flak damage distribution

Files

sipho-linux-x64.zip 482 MB
Version 0.9.3_f5 Dec 01, 2022
Sipho Windows 64bit.zip 464 MB
Version 0.9.3_f5 Dec 01, 2022
Sipho OSX.zip 476 MB
Version 0.9.3_f5 Dec 01, 2022

Get Sipho

Buy Now$17.99 USD or more

Leave a comment

Log in with itch.io to leave a comment.