1. Sipho
  2. News

Sipho News

Happy new Year with an update 1.2.1!

With this update we would like to wish you Merry Christmas and Happy New Year!
Lots of background changes have been introduced in this version - while it's not content, we want to have the best version of Sipho available while we work on more content.

Level generation rewritten

This was one of the changes I wanted to do for a long time and this paragraph will get a bit technical. Since the beginning, level spawning was made to be noise-based and "shader-like" where we would go through every potential spawn position (pixel) and check the noise function value if we need to spawn something there or not. The spawner system was and still is set up this way:
  • There is a Spawner which can have a parent and use its noise values for itself. It can add parent's values, only spawn when parent spawns or do not spawn if its parent spawns.
  • Spawner has a spawn range within which Chunks are loaded/unloaded - when player Sipho moves, we check for its position each frame and manage chunks from there. If chunks are smaller, then there's additional overhead of managing them. If chunks are large then it may degrade performance to spawn whole chunk at once.
  • Chunks consist of Cells which can be offset to make nicer patters and each cell is basically a spawned object - a rock obstacle, a piece of Nutrition, a Spike ball or a Coral.

As with any noise based generation, this is fast to tweak and get results. However, when it comes to gameplay-sensitive stuff like Nutrition it becomes very hard to get right without additional work. Since we can only tweak how layers interact, we couldn't know at what actual density, for example, Nutrition was spawned.

So together with the additional work to have a control over how much Nutrition is spawned per-chunk, I have separated the maths calculation part from spawning part - which allows us to have less performance pressure every frame when chunks are spawned. Previously we had variable sized chunks - on paper that sounds like nice control over content, but it makes calculating things much harder, since we can't assume that a single Child Spawner chunk covers whole Parent Spawner chunk. That is why all chunks have been made to be the same size, which now allows us to:
  • Not worry about having lower layers of obstacles spawn before upper layers have spawned - which could happen if we mixed different sized chunks in different spawner layers
  • Consistently and performance-wise cheaply check if certain position has all chunks spawned - helpful for checking if player or enemy Siphonophore can be teleported or spawned at some location
  • Re-use previous layer noise values in lower layers, without recalculating for every layer - this is somewhat true, since we need to interpolate values of every cell if cell sizes are different (or you can say cell count in a chunk differs) . That is much cheaper to do than to re-calculate all spawner layers


These changes allowed these design changes:
  • Ensuring all levels have very similar spawned Nutrition density
  • Spawn additional snacks when player has lost nutrition at the end of the level and would be otherwise forced to leave the level
  • Something else that I might have forgotten

Honestly, I am a big fan of Factorio and reading their blogs have somewhat influenced development style and design approach of Sipho. If you like these kind of technical ramblings, I feel you would really enjoy reading them written by the legends themselves - https://www.factorio.com/blog/

Spanish language added!

Huge thank you to Rosario Rivas Leal for translating Sipho to one of the most spoken languages in the whole World - Spanish!

What's more to come

Sipho is about living things and it is alive itself. This update has some balance changes sneaked in which illustrate what's to come - better balance, more synergies and more stats to mutate!

More notable changes:
  • Highly rewritten level spawning logic which should improve performance by a lot
  • Energy Leech steals buffs
  • Pushers Push what Voiders Void
  • Damage Resistance stat, which is currently used by Piston's Extended neighbor buff and poison (negative values)
  • Swarmer performance is no longer comparable to bitcoin mining
  • Polyp buff is further-reaching
  • Lots of bugfixes
  • Caltrops are sticky and activate on touch
  • Turbine Joint Protection buff adds +10% health instead of +1 - scales better with Mutations
  • Round Max Health instead of flooring it - consistent with other stats
  • Polyp releases what it's attached to if it gets damaged
  • Use deterministic hash for Grid Spawners and Boss fights
  • Swarmers can attack Deep zooids
  • Following Effects correctly check if attached poolable has been despawned
  • Deep Zooids emerge from depths when they die
You can find the whole changelog here, at Pastebin!

Sipho 1.1.1 is now available - Verified on Steam Deck!

Hello players!
As hinted about in previous update post - we finally have a full Verification for Steam Deck!
This required making several improvements to User Interface. Now smaller screens have UI automatically scaled up to make the text larger and more legible in small resolutions (800p).

Text Input Fields required some rework which I am quite happy with. Now on top of all Input Fields an extra button appears when hovered or selected, indicating what will happen when it's clicked - either entering search query, renaming a thing. Feels quite fitting for all input types and makes them more noticeable.

We have a lot of reworks happening in the background - from more Stats that Mutations can change to better and more consistent level spawning. Stay tuned for more and keep eating those ecosystems!

Version 1.1.1f1
  • Italic font style Layout Description
  • If Stat base is negative, positive multiplier will reduce the impact instead of amplifying it
  • Cooldown Recovery is now a multipler-only stat


Version 1.1.1a3
  • Fix projectile bouncing
  • Shorten some input options strings


Version 1.1.1a1
  • Controller friendly input fields for all Aquarium UIs
  • Input field support for Controllers
  • Disable navigation to MutationUIs when not in main Growth Mode - fixes them getting selected in other occasions
  • More migration to TMP Input fields which play nicely with Controller
  • You can get key down and ignore control lock
  • Add on screen keyboard hooks for Steam Deck
  • Support non-root Input Fields in UI

Sipho Soundtrack is now available!

Dear Sipho fans!

Highly requested Sipho soundtrack is now available both on Steam and Youtube! Years in the making, it was carefully composed together with in-game art by our artist TheSpin!

You can support Sipho development by purchasing the soundtrack on Steam. It also includes high-quality FLAC files: https://store.steampowered.com/app/2628380/Sipho_Original_Soundtrack/


The soundtrack is also available on Youtube:
[previewyoutube][/previewyoutube]

Enjoy the Sipho music wherever you go and keep on diving!

Secret patch 1.1.0f4

Psst! ːpoisonBombː We snuck in a bunch of fixes following the last announcement:
Version 1.1.0f4
  • Do not try replacing non-skill key when key in options is rebound
  • Update Tutorial images and make it control-type agnostic
  • Fix extra zooid selection out of bounds
  • UI scaling fixes for small resolutions
  • Eradicate 'click' mentions in UI
  • Report relevant current button binding when rebinding skills
  • Fix Growth Camera movement with keys not being aligned with camera rotation

Sipho 1.1.0 is now available in more languages!

Hello Sipho players!

We are proud to present a new, much more Polished version of Sipho! From little things that break immersion and make you question the reality of underwater ecosystem dynamics to huge improvements for Controller and new languages!

[h2]Controller improvements[/h2]
We saw a significant use of Controllers to play Sipho and had to go in and fix several long-standing issues. One of them was not being able to reposition or move zooids in Growth mode using controller. So now you can!
Taking control of your lifeforms is a first step towards fulfilment

This feature also works for mouse input - which is great for editing large Siphos!

Great people at Valve have started evaluation of Sipho compatibility with Steam Deck - that has also prompted us to make improvements to non-mouse controls. Expect even more improvements soon!

[h2]More fully translated languages![/h2]
Sipho has been translated to Ukrainian, Czech, German, French, Japanese, Korean, Lithuanian, Polish, Russian and Chinese! Some of translations were done by volunteers, which we are eternally grateful for. Having someone with actual game knowledge do translations is great as mechanics and other semantics can be translated without losing connections.

There's something special seeing Sipho in foreign (to us) language!

As Sipho is going to get more updates, it is unavoidable that we will have new strings to translate. If you wish to contribute to your language or fix any errors, please join our Crowdin project here.

[h2]Changelog[/h2]
There are many more fixes in this update - check out the full list below!

Version 1.1.0f3
  • Clamp growth mode camera offset to its bounds
  • Positive Strain is ignored when generating Mutations


Version 1.1.0f2
  • Fix polyp referencing wrong Rigidbody
  • Enemy Heads only have 0.5 movement force, while Player's remain at 1.0
  • Fix wacky zooid outlines when they're at an angle
  • Reorder Soul Eater components so it doesn't deal damage to itself when firing its last charge
  • Prioritize currently selected growth point if cursor is exactly above it
  • Correctly rotate dragged zooids with scrollwheel
  • Fix strain damaging extra zooid when strain is more than 1
  • Ensure that polyp attaches to a single object correctly
  • Fix wrong order of time stamp in logs
  • Dot not increase kill count for last damage dealing siphos when zooids die in artificial occasions


Version 1.1.0f1
  • Shortened strings
  • Sort language names by translation status and gray out untranslated ones
  • Update translations
  • Localize missing Aquarium strings - Erasers and Enemy Aggressiveness
  • Gray out unstranslated languages in options menu
  • Add translations and set languages fully translated: German, French, Japanese, Korean, Lithuanian, Polish, Russian, Chinese Simplified
  • Use color codes instead of color names to become compatible with Text Mesh Pro
  • Use larger epsilon value when checking zooid distances to make behaviour consistent with old one
  • Update non-rebindable keys upon loading Input Manager
  • Fix input defaults being incorrectly assigned when loading from save
  • Give a little distance margin to zooids with non-extended connections for easier connectivity
  • Increase Turbine radius to match regular structure zooid radius
  • Change how active buff calculates time remaining - instead of scaling duration, scale its tick. Fixes inconsistent buff durations when new stacks are applied that would have shorter duration.


Version 1.1.0a4
  • Swarmer minions do not trigger friendly mines
  • Polyp updates its buff if held zooid dies
  • Megalocyst correctly shows Cooldown Recovery stat as relevant
  • Caltrop no longer slowly shows decay
  • Polyp tentacles no longer fly around when grown
  • Rebinding skill key in options menu also rebinds skill key in current game
  • Skill bindings support both mouse and controller at once. Entering growth mode remembers what input type was used
  • Environment tweaks
  • Burstopod projectile has twice the health and pulls in things harder when they're close
  • Deep Holes stand out more from the environment
  • Apply environment tint values correctly and tweak them for all areas
  • Level end whirlpools are properly sparse again
  • Tweak some deep obstacles to have better contrast with regular layers
  • Whirlpools appear slower when on screen
  • Fix circle shader changing width at different rotations
  • Cra'Than powerup is brighter
  • Freeroam has zero enemies set to spawn - fix that with 8
  • Tweak Advena and Cra'than areas
  • Fix spawner function texture lookup incorrect scaling - fixes unintentionally denser obstacles in Advena areas
  • Head selection zooid selection menu is controlled by keyboard arrow keys or controller right stick
  • When growing zooids with buttons, try selecting next growth position in the same direction
  • Controller support for repositioning zooids


Version 1.1.0a3
  • Skill binds of dead zooids correctly survive save/load
  • Skill binds are no longer lost when zooids die
  • Pause game if gamepad is main input device and it becomes disconnected
  • Add Select gamepad "select" button glyph
  • Sizzler attack gets cancelled if it gets stunned or dies
  • Add more hole spawners in Cra'Than second boss fight
  • More robust steam achievement intialization
  • Fix some obstacles having unintended holes inside and causing zooids to get stuck
  • More robust and physics based approach to fixing zooids getting stuck in obstacles
  • Instantly check if buff reacts with other buffs when added - enables stacking damage from Muck and multiple Sizzlers reactions at once.
  • Fix Flail not conducting Sizzler attacks correctly


Version 1.1.0a2
  • Snack spawner doesn't use saving
  • Grown zooids destroy dead zooids that they have grown on top of
  • Enemies give up on their targets more easily
  • Burstopod projectiles are slightly "magnetic"
  • Dead zooids do not block placing new zooids
  • Sizzler now has 1 second wind-up effect, instead of shocking instantly
  • Claws, Leeches and Swarmers do not damage friendly faction if there are non-friendly targets available
  • Saenus second Boss disengages if it does not get damaged for some time
  • Frakir minions engage their targets if they're damaged from far away
  • Disable looping for music players - fixes Aquarium songs not changing
  • Only show valid potential Growth Points and snap only to valid rotations when dragging groups of Zooids in Growth mode
  • Voider spits out its contents if it's about to be teleported - fixes strings of Caltroper stretching across the universe
  • Projectiles receive health equal to their penetration and damage multiplied, instead of just penetration. This results in increased Sniper projectile lifetime and makes projectiles a little bit more resistant to Leeches
  • Add threat weight that scales enemy likeliness to attack or ignore siphos that are already targeted by their faction. Child zooids are more likely to attack same targets, while naturally spawned enemies try targeting something else.
  • Tweak Squirter shoot effect color
  • Budling skill costs only 10 energy (down from 100)
  • Improve Squirter spray effects
  • Scale deformable angular drag differently from linear drag
  • Polyps detach when they die
  • Do not display extra skill energy breakdown lines if they are 0
  • Switch all labels to Text Mesh Pro
  • Add Czech language and mark it as translated along with Ukrainian


Version 1.1.0a1
  • Adjust main menu UI scale automatically for small screens