Here's a little patch release that fixes some of recent feedback on the game:
Version 1.2.3f1
Add Zooid health bar display options - control how long they are shown and if they are shown in Growth Mode
Leech renderer gets proportionally much less segments when scaling with stats - improves performance late epoch
Fix stacked Budlings sometimes erroring out when detached
Cache particle graphics settings so they are not read every time particles are spawned - improves performance in late epoch
Sipho 1.2.2f2 hotfix
Fixed game considering mouse as constantly active - that caused Controller aim input to stop working
Sipho 1.2.2 bugfixes are here!
Welcome old and new players! With new player influx we have noticed several issues popping up more often than would be normally acceptable. Therefore, while working on new content, I wanted to gather a bunch of fixes and improvements to the game bit earlier and release that in this small update:
Version 1.2.2f1
Do not scale boss battle spawners in higher levels and epochs - fixes lag in late game
Handle input device timings better. Fixes PS4 controller being regarded as "used" at all times
Out of bounds areas in boss arenas appear black
Fix Zooid award effect despawning bit too early
Respect grid spawner Seed value when calculating random nudge offsets - fixes overlapping food and powerup spawns
Leech uses epsilon to check for pull distance instead of zero
Cra'Than boss 3 null ref guard - the boss should handle killing its parts while its growing better
Fix pacifist achievement erroring out in first level - might fix black screen issue for some players
Budded-off Siphos apply Mutations correctly
Fix caltrop activation sprite being visible after being ejected from Voider
Skin flowers aren't that shaky anymore when they get moved
Fix breed unlock progress not showing up correctly in Main Menu
As always, if you experience an issue, have suggestions or would like to share your creations - let us know! Also, the Daily Deal sale will persist throughout the week - if you like Sipho, let your friends know!
- Dominas
Sipho is on -20% sale!
Hello future Sipho players! Sipho is now on historically high sale - 20% off! We have some bits of information of what to expect in the game:
Get new Zooid parts by slaying bosses!
Bosses get harder and drop increasingly more rewards. Don't get scared - most bosses have weaknesses!
Make powerful builds!
Parts have various synergies - be sure to experiment with what you get!
Recompose in Aquarium!
If you're feeling stuck, be sure to wind down in Aquarium. You can explore various existing creations to seek for new build strategies!
Beyond your Epoch
Once you beat the game, you won't beat it just once - be sure to dive further away from Open Waters and start new Epochs. Wild Mutation combinations await you!
Join the community!
Share your strategies, builds and skill-related inconveniences on our Discord! And be sure to share your creations on Workshop!
Something's being cooked - Dominas
Our NinjaKyat's Antipaint is out now!
Hello Siphonophoreans!
One of the fathers of Sipho, NinjaKyat, has released their solo project called Antipaint! It is a roguelite action-shooter where each levels becomes a painting. The game features an awesome soundtrack from real live bands, really juicy effects that make popping enemies super satisfying and wacky items that parallel Sipho Late Epoch Gameplay™️.
From my personal experience, I've been playtesting the game and it hasn't gotten old yet - it's a really nice way to let off steam after day's work. It feels like I can still break the game in different ways and while doing so, I have started putting my attention to the level's dynamic canvas - some intrusive thoughts come in tell you to try manipulating your playstyle just to draw on it. There are some creative gameplay parallels with Sipho for sure.
So while waiting for the next Sipho update, I recommend trying Anpaint out, it has a free demo after all!
Yours, Dominas
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
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!
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!
Controller improvements
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!
More fully translated languages!
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.
Changelog
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