Skip to main content

On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
(7 edits) (+1)

Nice game! The gameplay is quite engaging while not being overly complicated.
Also thanks a lot for including a downloadable version that works for Linux!
And bonus thanks for succinct output of noteworthy events in the terminal.


After playing – with serious performance issues – I had an idea of what might cause the slowdown. The test runs seem to confirm my suspicion.
Maybe this helps you make the game even more enjoyable.
(See future comment below.)

(Long) Run with Browser Version

The first few runs were utter failures, but after getting accustomed to the – not overly complicated – game mechanics I had much more fun.

First I tried the browser version, but after a few minutes the game slowed down more and more. (Other comments already mention this.) And the sound became somewhat distorted.

The misconception that there are only a total of 1001 beings in this world (zombies/cured + 1 Ferret; not all inside the fence at once) kept me going past 500 rescued people since this should result in less performance issues, right?
Wrong. The horde kept growing … and the framerate decreasing.

This had one positive aspect: I had a bit more time to react to respawning masses of zombies and not get cornered – time dilation ;-)
After reaching the "Story End" the framerate was so low that I did not notice much of a difference going further. At 2000+ rescued people I quit.

(Even Longer) Run with Downloadable Version (Linux)

Then I tried the downloadable version in the hope of it having less performance issues.

The slowdown started later and was less severe but still quite noticeable.
It was more fun and I got much farther before making more and more mistakes and finally quitting at 5000+.

At the end some of the higher upgrades I had in the browser run were still missing, but with a lot more total upgrades the build was obviously really powerful none the less.


Notes

  • This first item is not really important, but might be nice to have:
    • I prefer [Tab] to pause the game since it is much closer to WASD. (This is also more convenient in the browser version due to fullscreen mode being terminated by [Esc].)
    • However opening the "Actions & Consequences" list with [Tab] is only possible after the first upgrade – from level up, item or zombie mutation.
    • At the start of a run this does not work and can cause Dr. Ferret serious bodily harm.
    • Could you perhaps also enable showing the empty list? (Maybe containing a hint like "no … yet[, do … to unlock them]".)
  • Getting the choice between 3 Syringe/Health packs can be quite beneficial at times, but with 25+ Syringes + Lucky Dice III + Dual Wield II and Personal Shield II + Death Defying III not so much. Grinding for the last few missing upgrades becomes a bit too tedious.
    • Maybe you could tweak the randomness a bit more for the endless stage of the game? (E.g. enforce getting a "real" choice between three distinct items/upgrades at least every few level ups … as long as there are still real upgrades missing.)

Weird observations regarding upgrades (these could be bugs)

  • In the browser run I unlocked Lucky Dice III before II. But I did not count the syringe reuses, so I'm not sure whether II overruled III.
  • In the downloadable version I somehow unlocked Rally II twice.

Final unlocked "Actions & Consequences"

  • All 6 Zombie buffs … only their unlock order can be influenced.
  • I + II + III of Lucky Dice, Bless You, Death Defying
  • I + II of Rule #1: Cardio, Zoomster Energy, Personal Shield, It's Spreading, Second Wind, Dual Wield, Portals
  • only I of Can't Touch This
  • Rally I + II + II – Yes, "II" twice.
  • Curenicorn – Is this upgradeable, too?
  • Bunker Key, Shed Key
  • Syringe Pack x 15, Health Pack x 14

Apart from the upgrades/items the terminal output also contained this:

  • Elite Zombie cured x 10
    • Just curious: Do they have a cured form? Or do they completely transform into a supply bag? I never saw them turn human … too many zombies with less cure resistance in the horde blocking the view.
  • Failed to find a position free of bounds x 104
    • Not sure whether this is a problem that needs fixing.
    • A few cured people got stuck "in" the lower fence … getting turned into zombies seemed to help – or maybe being teleported to safety? Is that related to the failure?
    • (This failure also seems to be possible without any use of the cure … but lots of zombies: Observed in test run #2.)

And some Warnings of Godot Engine:

  • Sometimes between runs there are multiple identical warnings. I counted 3, 10, 12 and 0 occurrences. (No idea, how I can reproduce this exactly.)
WARNING: Target object freed before starting, aborting Tweener.
     at: start (scene/animation/tween.cpp:548)
  • When closing the game:
WARNING: ObjectDB instances leaked at exit (run with --verbose for details).
     at: cleanup (core/object/object.cpp:2208)
(2 edits) (+1)

Slowdown hypothesis:

The growing mass of glowing green auras is the main problem.

The green aura of zombies is a visually agreeable indicator of an active cure effect.

However, hundreds of (stacked) glowing effects at the same time can't be good for the game's performance.

Can you use some better way of handling this visual indicator for hordes?
Maybe a suitably composed glow effect for the entire group instead of individual effects? (You can not really target individuals in the center of a horde … so a less specific indicator should suffice here.)

For isolated zombies and small groups it should not be that much of a problem and those also benefit more from having an individual indicator.

Test run #1: "Lots of glow – lots of slow"

  • Strategy: Play the first few minutes trying to cure a growing horde without actuallly getting any cured people to the rescue places. You can still use the Elite Zombies for some upgrades.
  • This accumulates a large mass of zombies and (temporarily) cured really fast while keeping the onslaught reasonably managable.
  • There are loads of the glowing green auras since the closely grouped zombies keep infecting each other and turning the cured people into zombies again.
  • Result: The slowdown is noticable relatively soon after starting and gets worse quite fast. The sound becomes distorted.
  • Stacks of the advanced aura (super spreader) might make the slowdown even worse, but that was not part of this test.

After about 07:00 I led the horde to the shelter. This resulted in hundreds of cured people disappearing (and lots of level ups) in a really short time, but this did not improve the performance much.

The screenshot on the left shows the horde shortly before this "rescue" happened.
(The screenshot on the right shows the end of test run #2.)

Test run #2: "No glow – no slow"

  • Strategy: Do not use cure – not at all (!) … just try to survive as long as possible while the horde grows and gets buffed. :-(
  • The spawn rate seems similar to test run #1, so this should accumulate beings on the screen at a similar rate.
  • However, there are obviously no glowing green auras apart from the safe zone … EDIT: … and the highlighted border of your current cure target (as seen in the screenshot).
  • Result: There does not seem to be any slowdown nor any sound distortion.

Without any non-zombie upgrades nor (temporarily) cured people to occupy the horde this is quite difficult. Almost made it to 04:00 …

Conclusion

While this comparison is no irrefutable proof of the hypothesis, it should at least indicate a very promising "point of attack".

Thank you so much for the, in depth, analysis and feedback. It is hugely appreciated!

The performance issues are very much at the top of the priority list and, while we're still hard at work on our other project, this will be something I'll tackle as soon as we return to this game.

There are many, many improvements still to be made when it comes to performance: Object pooling, reduce object count as the horde gets bigger (like the blue glow you mention in your testing), sound optimization when the horde gets bigger, etc.

However, from my testing, the biggest culprit is the current code that handles zombie/cured collision detection. As the game goes on, a number of zombies/cured get stuck around the map or begin "clumping" significantly which causes the unoptimized code to take way too long per frame.

I absolutely cannot wait to return to this project and, after dealing with the performance issues, have some good fun adding a ton of features we currently have on our plan. Meta Progression, unique zombie types, more upgrades, ability upgrades such as a dash or teleport, equipment upgrades that modify how you apply the cure, more maps... It's gonna be a fun time.

Thank you again for your comments, you're an absolute legend! <3