Skip to main content

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

Now that all features that I wanted are in place I'm going to focus on bug fixes and balance.

The scaling is based on a function that creates a pool of power to distribute based on the formula (roundNumber * 10) * (1.2 ^ round -10), so after the 10th round it starts scaling exponentially.

Once I introduced the "x every y" has this issue on large numbers, I'm going to adjust it to create a single effect with (eg. for 2 power on every 100 damage, if someone deals 1000 damage it generates a single effect of 20 power instead of 10 effects of 2 power). I'm also going to add a delay of 100ms for reactions to trigger, that should stop those loops.

To make units keep their relevance, we can have some effects that allow upgrating the effects/reactions, as if they were being upgraded beyond platinum (maybe even have a label like platinum III, IV etc), something like  the MU online level of infinite scaling. Haste/slow would not benefit as much, unless if I substituted re-haste/re-slow for "every 10s of haste/slow applied" - that would scale on the same factor.

For this week, the priority is improving the gameplay feel, removing remaining wonkyness and buggy behavior.

Edit: Going to address the negative numbers and the inifite loops in a hotfix ASAP

(3 edits)

Haste and slow probably don't need that added scaling. Their effect is a multiplicative scaler on everything already. Doesn't need to be stronger than that. If you have haste, all those other units that just gained scaling will now have twice the scaling because of the haste. And the opposite for slow, halving enemy scaling, effectively. Currently all the re-haste and re-slow abilities are so strong they literally break the game. So they don't exactly need *more* scaling. The fact that you're allowed to reduce CD of units over time kind of automatically makes re-haste and re-slow happen more often. For enemies since their cooldowns stay the same, I'd say the one thing that might be worth scaling is how long their hastes last for. So that eventually your enemy boards are very likely to get perma hasted, making trying to include slow in your own build a lot more incentivized. Currently I only really run slow to abuse the busted re-slow effects. Not for the slow itself, unless you can fit a slow in your infinite loop. It's simply too slow (hah) and too inconsistent at slowing what needs to be slowed, to be worth using for its actual effect.

Edit: The internal cooldown means in combat lag is now completely gone (at least from all the things that used to crash the game). However the load in performance issues still persist. At wave 84 currently and I'm spending more time frozen than not frozen and chrome is starting to throw "this page is not responding" messages just before it finally managed to load in. It's also auto-closing full screen mode every load.


That's what my CPU load looks like, the slope is actually playing the game. The plateau is trying to load into the next fight. And that ss was from like wave 82, it's getting much much worse every wave at this point. Also I'm getting integer overflow on all my regen units dropping them to 0 regen. But since they have put up aroung 700,000,000T regen by the time it happens. That's not so much of an issue. But sometimes they manage to pump enough regen/s that it too overflows to 0. Which might eventually kill me (but the game will crash before that point on load i'm 99% sure) also the scientific notation on the end of fight screen doesn't kick in until 10^21, which might be a bit too late, and when it does it doesn't cut off fractions. So the number still goes outside the tooltip by a lot.

Edit: New bug, when you get into this lategame stage the sound effects won't play during the fight. It's completely silent, then at the end of the fight it plays every single sound effect that should have played at once, over the top of each other. And as is often the case when the same sound effect plays over itself, it increases the volume. I damn near blew out my left eardrum as a result. So for now I'm playing full muted.

Edit2: Calling it quits at wave 90. The freezes are now several minutes long. Wanted to go for wave 100 since the enemies has literally no shot at touching me. But the lag is just too much.

(1 edit)

I'm going to look into those lategame issues today. Honestly I never went that far, but I can replicate that. I will check if there's a memory leak when loading/unloading units, which might be happening in longer sessions. I can also hardcode some units with 100t power and see if that influences the game speed.

Only thing that I still didn't address was the multiplicative effects in things that can be spammed. removing that will probably mean not being able to go past wave 40/50, but for now that might be better until things are stable.

Edit: I found a bug in the system that generates the enemy team. Basically on large round numbers a loop would run billions of times to distribute upgrades. Instead, I'm going to batch those operations and run only per unit.

(11 edits)

Good find. That will hopefully fix the remaining performance issues. And yeah, currently the gameplay experience past like wave 40(ish) doesn't really change in any way. So if that's where things cap out for now. It's probably a good thing. Your build is more or less complete by then and you're mainly just clicking "skip" 3 times between every wave, unless you luck out and get an "upgrade" option. Since once you get either one 1.1x to x allies and one crit to allies on x. Or two 1.1x to all allies. Upgrading your core is what pushes you into overflow territory very, very fast on upgrades. I'd say if you intent to keep the 1.1x effect, which you probably shouldn't. Make it like at most 1.05x and never scale that number with upgrades, only make it hit more targets with upgrades. And I'd also say it's probably a good idea to make those reactions "unique" as in, if you get one 1.1x reaction the others are removed from the pool for that run. Same with the crit ones (until crit scaling is fixed, and probably even then Edit: Just noticed that crit has been fixed and now does basically nothing past 100%). The flat numbers on those  +x per 10y reactions also get really really out of hand. So the formula for that needs to be toned waaay down.

For unit balance that one Phantom Knight or w/e it's called that steals column power for itself is a scheduled loss until like wave 10(ish) when on the enemy team. For player units the really big problem units are:

Prot Core: It's already basically a top 2 shield unit, then the 5* or 10* from wave 1 is just absurdly powerful.

Water Elemental: Part of what makes the infinite "T" work. Also the +6* to regen units is super overtuned and give you basically infinite regen early.

Arcane Anomaly: The other part that makes the infinite "T" work.

Growth something something white dog with regen and charge row: You put this on the same column as Water Elemental and Arcane Anomaly and you get 2 free infinite slots to do whatever you want and infinite regen all in one.

Crystal Dog thingy with +4* to Column on Row Haste: This thing gives you all the scaling you'd ever need for most builds early. Then you yeet it later to put in something like that when left units does any +7 crit to right unit, since that works well on the infinite row as the middle unit.

Currently you do actually kinda need all these trouble units and you need to do degen stuff to beat the insane power level of early boards with unlockable gold units on them. But once those get fixed to only spawn later game, the above units will make you literally unbeatable. Going full tank is still largely OP. But Poison Core poison unit spam with picking only +health to core is surprisingly effective. Since the core itself is only there for the +5* on slow. You literally don't care about upgrading its power or lowering its CD. You want the scaling and the level up reactions. Then you stick the core itself in the corner and let it cry itself to sleep, or something.

Edit1: The every 100 heal do x is currently broken. It was working at first giving +10 to my Prot Core over and over, but after a few upgrades it shot up to +3600 per 100 healing and as far as I can tell it either isn't giving any +power at all, or it is giving so little that it's a rounding error that won't show up in the UI.


Edit2: Upgrading Destiny Balancer makes it objectively worse. Goes from -100 power from max ally and adding 1.5x to weakest ally. To -200 to strongest ally and 1.2x to weakest ally.

Edit3: The Re-Slow all allies of shield gain is also broken, doesn't do anything. The Every 10 Poison one does work however.

Edit4: The power curve of enemies has been almost entirely flattened. Instead of having 160m power enemies around wave 83 you have 93k power enemies. So, they pretty much can't do anything against my build despite 2/3 of my reactions being broken to the point of not working at all. On the plus side, no performance issues so far.

Oh and power share is still completely broken as is permanent +10% power and +10% crit. The latter two get wiped as soon as you hit the next "shop phase". The former will sometimes last 1 fight, sometimes 2, sometimes more. But it will eventually disappear. I think the only way I've gotten shared power to ever stay was when I shared power from my Water Elemental buffed Mana Source to my Prot Core, then next shop phase I upgraded Core power. This seems to have at least locked in the +power from the shop upgrade. Thus starting the exponential growth of my core with a nice base.

Edit5: Two QoL things that would be appreciated. First having thousands dividers on the numbers in the end screen, so 9,000,000 instead of 9000000. Really helps with readability, and secondly some kind of ability to filter/skip shops. Currently the only option I care about is picking +power to my core and then any random upgrade option I get. Everything else is an auto-skip. So the vast majority of shop phases I just click skip 3 times and end up taking longer to go through those than I do in the actual fights. Soulstone Survivors has a relatively neat way of handling their "shop phase". Where you have a few toggles, one to skip active skills (skip unit shops here). One to skip unit upgrades would also be nice. Then one to skip power sharers too. That way you'd be able to only populate a single shop per wave instead of 3 if the player has both those options ticked. And that shop would either have 1 upgrade, 2 upgrades, 3 upgrades, or it would be empty and just send you straight to the next fight.

Edit6: The Every 10 Regen give all regen allies +x power and the similar damage/shield versions should probably be reconsidered, as they give all units of that type exponential growth. I ran into an enemy with 4 regen units and a Platinum Lifegiver. The enemy had about 1.2b regen by the end of the fight and it went until the game auto-killed both of us and I won the tie.

Edit7: Another nice QoL would be to make the order of the upgrades in the Core specific shop be consistent. Currently the order is random, but I want to pick power every time. So instead of just being able to click that same spot, I have to see which option it spawned as every single time.

Edit8: The game appears to simply stop offering force upgrade options in the shop after a certain point. Either that or I'm insanely unlucky. I'm on wave 202 and I swear I haven't seen an upgrade option since around wave 100.

Edit9: I retired the run after wave 300. The power scaling caps out at 1k per wave and I was at 1000T power on my core and obviously gaining 10% of that every wave. So losing is literally impossible.

Did some fixes to power sharing/absorb, the upgrades given by "improve unit of type x", some tooltip inaccuracies, upgrading Destiny Balancer,  removed the limiting on the enemy team power, core upgrades should appear in the same order, 

Also redesigned the units of type x that were giving bonus power on every_n of that type. They should now do something closer to that type flavor (the intention was having them as the "leaders" of those types, as they are the unlocked based on amounts).

As for the large numbers, I don't think that long term we are going to have extremelly large numbers around, if we can keep each session time around 30 minutes.

About the skips, one thing that I activelly avoided in the game was having a currency to purchase stuff. But now that we have units of different tiers and demand for skips, a currency would help balancing that. I'm going to reflect on that.

(8 edits)

That's not really the type of skip I meant. More like once you get past a certain point (though once balance gets more in line this will be less relevant) all you do between waves is just click "skip" 3 times on the shops. Because none of them do anything anymore. So more like it would be nice to have a few things added both to the "fight" screen and the "shop screen". In the fight screen I'd like the game speed slider from the menu to instead be like 1x 1.5x 2x speed (or w/e) values you desire in the fight screen. So that you can see what is actually happening at 1x when building a board. Then swap to 2x or more when you already know what's happening with your board and just want to see how far you can go in infinite. The other thing(s) I'd like to have be present both in the fight and shop screen is just a few tickboxes:

1. Skip unit shops. So if you already have all the units you want at plat, you don't get shops that you would never pick.

2. Skip unit upgrade shops. So once your units are all at 1s CD (the ones you care about) you don't get shops you'd never pick. If you fixed +10% crit and +10% power actually working. You'd never want to skip these, so that would make it probably pointless to add.

3. Skip "power share" shops. Again, if these actually work now, you'd probably never want to skip them. But previously you very much wanted to skip them.

That way once you're just zooming through infinite, you only get given the shops you actually care about and you don't need to click through 3 screens to get to the next fight every time. An option to set something like "auto pick +power" or "auto-pick +health" for your core would also be nice QoL to skip that screen in infinite mode. Since really there is 0 choice there in infinite. Since both those options give exponential growth you pick one and then pick that every time. There is 0 reason to mix and match.

Personally I'd honestly be okay with it working such that if you ticked the "skip unit shops" and you've gone into infinite mode. You always just get the one shop that has some combinations of 3 picks between "upgrade unit" "improve x unit(s)" and "power share". Just to speed up the process and lower session length. But I have to try playing again with the scaling having been fixed and see if we just lose fast enough that none of that matters anymore. Last patch when I went for Wave 300 I was just reviewing footage on my main monitor and clicking skip skip skip ready every wave on my 2nd monitor without paying any attention. Because the session length was getting pretty insane and there were literally no choices for me to make anymore.

Edit: Made it to Wave 53, lost every single round to Warbringer. To the surprise of no one, a unit that makes the opponent effectively instantly hit, isn't balanced. It's even more insane from a player perspective, since you can just go Arcane Anomaly + Warbringer and go instantly infinite at 0s. So yeah, that is not a particularly great design. My reactions worked (the -power on crit meant that unless I got instantly oneshot all enemies had 0 power for the whole fight, so numbers are a bit insane), and the one time I used power share that worked too. But I got a super early Lifegiver that just juiced my whole board nonstop since I was running a Quick Core in one corner, Row charger in the corner above it, Water elemental in the corner to the left of that setup. Which meant I had 3 free infinite slots and basically infinite scaling from the overheal that provided. Doesn't matter if Warbringer just one-shots you 2s into the fight before you have any time to scale though. Same issue as old Shadow Assassin, except you can't counter it by not running heal. So it just literally kills you no matter what at 2s, have fun.

Edit2: Yeah, Warbringer as player is...disgusting. I'm on Wave 120-something and the enemies can do absolutely nothing. Also once your own units hit e21 power their tooltip still shows their real power, but their board power becomes 2. When your actual applied shield hits 1,000,000,000T (however much that is) it also becomes 2. For QoL it would be nice if the "improve x type" also had persistent ordering of %damage, CDR and Crit. No performance issues so far.

Edit3: It's only a visual bug. The units still have their power, and I still have my shield/regen. It's just that e21 and above I think you just get nothing but the leading number. Or it's how many e over 21 it is. It's kind of hard to tell, cause it's acting really weird. At Wave 221 the enemies health becomes 1, but that's actually 1 e21. And you do need 1e21 damage to kill it, not 1. The -power on crit is so dumb, combined with Warbringer I put every enemy power to 0 (from 100,000,000T) before they get to do anything.

All the "improve type x" seem to work, except +10% power to heal. That one keeps resetting every single wave. But crit to damage works, %damage to damage seems to work, hard to tell with my setup, crit and +10%power both appear to work for regen, crit works for shield, haven't tried 10% power cause it would do literally nothing with my setup as I gain +INFINITY flat power to shielding per regen then use the big rock dude that spreads 50% of his power to row to put that onto a regen unit as well as a damage unit. So my infinite shielding turns into infinite regen that turns into infinite shielding, except doesn't matter I just hit the enemy for e32 damage before they got to hit me (with 0 power anyways).

Edit4: Nvm, +10% power doesn't work on regen either, just applied it then instantly upgraded the unit and it went 2.1B->2.3B->2.1B. So it just gets overridden. Crit works though.

Edit5: Yeah, it's the leading number that shows, only. Enemies went to "1" when they had 1 e21 Power on Wave 245, then up to "2" when they reached 2 e21 and "3" when they reached 3 e21 power. Their tooltip still has the correct value (though with A LOT of decimals). End screen also has the correct values, but again, with a lot of decimals causing it to spill over onto other UI elements.

Edit6: Wave 257 and Wave 266 both had the same bug, several enemy units wouldn't load in. It would freeze up, with the ready button not being clickable (but without any notable CPU usage) then after like 20 or so seconds the missing units would load in and I'd be able to click "Ready".

Edit7: Calling it quits at 300 again. Enemy cannot possibly catch up with my scaling, so losing would be impossible.

(My Core reduces enemy power by e28  to all enemies 10x per second and enemies have about e25 power)

Oh and Happy Holidays! I'm Swedish so we celebrated yesterday.

Happy holidays! And thanks a lot, your reports are very important: )

Here's a key for the Steam version for you GCMIK-KY657-GMIQQ  - hohoho! 🎅

I'm looking at those issues, they should be fixed for good now. As most features are already in place I can now focus on making the existing stuff better.

I didn't think about the scenario of someone having a "finished" board - never expected someone to play the game that much lol. Some things that may compensate for that are:

- consuming shop units (like demons in hearthstone)

- consuming party units (creating demand for replacement)

- having events/skills to boost units available in the shop

Another thing that I'm considering is rewarding unit upgrades more. Like getting a bronze unit into a gold one makes it "awaken" and you can choose 1 out of 3 random powers for it.

(9 edits)

Thanks for the key! And yeah that awakening type mechanic does sound like it would add a fair bit of replayability. Currently most replayability comes from how often you're patching stuff. I've rarely played more than 1-2 games per patch. Because I'll have a couple ideas for what I want to try, and once I've tried them I know that run #2 of that same setup would be identical for all intents and purposes. So I feel no need to play it again.

I haven't actually played HS battlegrounds, I stopped playing before they added that mode. So not 100% sure what demons do. But for the consuming party units, it depends on how it would be implemented. But most of the time that would feel like a very "unfun" mechanic. You spend 50 rounds slowly but surely decreasing CD of and increasing crit of a singular unit that is 100% required to make your combo work. Then *poof* it's gone, and you instantly lose. Because it would take 40+ rounds to replace it, especially with how rare force upgrades become after level 100. I've gone 80-200 waves with 0 upgrades in the store post L100. But I know they *can* spawn after L100 because I got a few last run. Just didn't get a single one between around 100 and 187.

As for having something that can benefit a max rank unit in the shop that'd be nice. Something as simple as the random chance to get a +1 tier upgrade to it from the store itself would be 100% worth trying to roll for, even with relatively low odds.

Edit: My Steam version is borked for some reason. Install folder is 0B and verifying game files says it's all verified. But it's just an empty folder.

Edit2: The heal reaction still doesn't work.


The on crit -power (which is gamebreakingly OP) works, the Re-Haste (which is also gamebreakingly OP) also work. The Every 100 Heal does nothing (but if it worked it would be gamebreakingly OP).

A nice QoL would be to have the hero shops and upgrade shops have visually different icons. Something like the exact same icon as the hero shop, but with 2 gold chevrons and a gold outline or something like that. So you could instantly see if you're getting an upgrade, or a hero shop, at a glance.

Edit3: List of various new bugs.

-The unit that gives 2x power to the unit to the right as well as the enemies lowest power unit actually gives power to the unit to the left.

-When you have infinite Shield, the "insta kill" at the end of the fatigue doesn't kill you. It only removes all your shield (I hit what the game refers to as "infinity" on both regen and shielding at Round 35 using only 3 units all in the same column).

-It is possible to get the exact same reaction multiple times, sometimes this is just boring. Sometimes it's very broken.

-It is possible to get Every 10 Regen +x Shielding and Every 100 Shielding +x Regen in the same run as reactions. This should be made for impossible for all similar loops, as it's what let me go infinity at wave 35.

-Core reactions don't actually work until 2s into the fight. I had already seen something similar with the on crit -power reactions. But it was now confirmed. I had a 2.1s CD shielder who got buffed with +260B of shielding when my Regen core went off. The core went off at 1.0s and 2.0s. It should obviously have buffed it both times. But the shielder would shield with "only" 260B or so on the first shield. When I used -CD on that Shield unit to reduce it to a 1.9s CD. It would shield with 235 at 1.9s. Then right afterwards it would get buffed to like 360B or so and go off at 3.8s for that amount.

-The "an ally" definition is not consistent. Lifegiver's Every 10 Regen give +40 to the lowest power Ally can't target itself. Destiny dude's 1.5x Power to the lowest power Ally CAN target itself. Also not sure how the "an ally" triggering factor is supposed to work. But usually I feel like most units need another unit to do that thing for their reaction to trigger. But cores can trigger their own reactions as if they were "an ally". I kind of like that they can do that, but it's also very, very powerful. They can not however buff themselves.

-Settings menu is currently bugged in the web version. Background changes from blue to orange. But the menu never appears. Forcing you to refresh the page to get back to the main menu

-Plague Sovereign slows 4 targets at Gold, but only 2 targets at Platinum.

Life Weaver is still insanely OP. Basically an auto-include in every setup, as is whats-his-face war golem who shares 50% of his power to row. Oh btw, he's bugged. If you power share to him, even if he never goes below his post power shared amount of power as a result of using his ability. He will still revert to his pre-share power after the fight. Anyways, Since Every y give +x Shield is absurdly OP. You just get infinite shield on him, and then he shares it to the damage dealing and regen unit on his row, since you're usually able to get a unit with the "y" trigger on that row. It causes their power to go to infinity very fast, since he will buff that unit which will buff him etc. Not that it matters since the damage unit will just hit for like e32 damage and oneshot the enemy. But the ability to share the already grossly OP +x reactions to your whole row is just disgusting. Destiny Balancer would be OP if Life Weaver and row dude weren't just even more OP currently to steal his slot. You just stick him in your infinite row or column, depending on which actual good core you're running (prot or quick). Then he gives free exponential growth to everyone.

Edit4: Start of combat effects do not actually trigger at the *start* of combat. They trigger roughly 0,4s after combat starts. I think this is due to effects not happening when they "trigger" but rather after the squiggly line projectile it launches hits, and it appears to have a 0,4s travel time. This causes all kinds of non-sense and broken combos and timings that don't make sense. I'll take the "optimal" player build vs. "optimal" enemy build as an example.

As the player we have only two units, we don't need any others, they won't do anything (if things weren't bugged). We have Warbringer and we have Crit Core. We also have the on crit all damage allies get +e36 power. What should happen is this:

0,0s: Warbringer charges both the core and itself, the core hits, out core has 100% crit chance and will instantly buff Warbringer to 100% crit chance. We have purposefully left Warbringer at 2.1s CD. This crit from the core should add +e36 power to the Warbringer.

0,1s: The Warbringer hits for e36 damage and one-shots the enemy. We win.

That is not what happens however, what happens is this.

0,0s: Warbringer casts his reaction to charge all damage allies by 2,0s.

0,4s: The cast hits both the Warbringer and the Core. Both hit, order of operations means the crit from the core will be applied to the Warbringer so it will crit. Neither the core nor the Warbringer will be buffed with +e36 power at this time. Even though the Warbringer should be.

1,4s: The core hits again and crits. Still hasn't been buffed with +e36, neither has the Warbringer.

2,5s: The core now gets buffed with +e36 power and one-shots the enemy. However, let's see what happened on the enemy side. Why is this hit delayed by 0,1s? I don't know, but it is. (There was some haste involved that I think made this actually launch at 2,1s but hit at 2,5s. Leading to the frame perfect tie).

0,0s: Enemy Warbringer casts his 2s Charge.

0,4s: Enemy Warbringer charge hits either Spellblade or Glass Cannon.

2,1s: Enemy Spellblade or Glass Cannon launches their attack(s) at us.

2,5s: Enemy Spellblade or Glass Cannon attack(s) actually hits us. We get one-shot on the exact same frame that we one-shot the enemy and we win the tie.

So in a case where according to units read as written we should one-shot after 0,1s, and the enemy should one-shot us after 2,1s. We actually kill on our 4th crit total after 2,5s. So our +power on crit reaction is so delayed that we have time to attack 3 times before it actually even does what it says it does. Same thing with -power on crit, it also doesn't trigger until around then and just barely removes all Spellblade/Glass Cannon power in time to let us take 0 damage.

Edit5: Haste on start of combat, and probably haste in general doesn't stack at all. I know we have re-haste. But I was expecting to also have haste work somewhat like in The Bazaar where if you add haste to a unit with haste, it increases duration. At least with the start of combat reaction haste that's not the case.


For me the expected outcome here, keeping in mind I'm doing a "1 column challenge" so I only have two eligible units for it to be cast on. Is that the 8 instances of 1s of haste would be randomly assigned among the two units eligible them, for example 3s of haste on one and 5s of haste on the other. What actually happens is that after the customary 0,4s delay. Both units got 1.0s of haste. Which seems like that shouldn't be how that works.