Hello everyone!
A bit of a different update this time. I've been focusing on bosses this past week. I've got a few in various stages of development, vague ideas, paper designs, actual implementation etc. The short term goal right now is to get at least 3 bosses in every zone. So this means each of the Branch-1 and Branch-2 zones needs at least one more boss. I'm also reworking a number of the older, simpler boss fights along the way.
Half way through some of the implementation, while doing a bunch of testing of the fights I suddenly realized that last updates Danger School suddenly gives us an amazing avenue for testing this sort of content. In the past, I'd test and balance these fights myself and then drop them into the main game at which point you guys would maybe encounter them once every 10 games or so and barely be able to give any meaningful feedback.
So instead with this 'update' I'm adding a new 'Test Levels' course to the Danger School where I'll be dropping boss fights as I get them implemented. My hope is we can all take a few runs through each fight with a number of different characters and really rapidly iterate and refine these fights before dropping them into the main game. So I'm treating this update as a 'rolling update' where every few days I'll add a new boss and tweak existing bosses based on feedback. The goal is that a few weeks of this should easily get us the 6 new bosses we need as well as reworking some of the old ones.
You can post your feedback on bosses here in this update thread or else there will be dedicated threads on Discord in the Focused-Feedback forum for each of the bosses. I'll continue to update this post with new bosses which will be released every few days as numbered 'hot-fixes'.
UPDATE 1.23
Danger School Updates
I've slightly changed the structure of the Course.js files so that we can include some new properties. I've updated the ExampleCourse.js file to reflect these changes. If your working on a course you will need to restructure it to fit this new format. I'd also highly advice keeping backups of your work outside of the Course folder for when I inevitably break something :P
- Courses now have a niceName property so that you can format the names with spaces and numbers.
- Courses also now include an author and description property for when we start passing these around.
- Lessons now include the same niceName property
- Lessons now include a 'hint' property where you can include a... hint that will only show up after the player has failed once and clicked the hint button.
- I'm creating a bunch of dummy characters at various levels to test the boss fights and courses can now give the player the option to choose one of these characters.
Danger School Submissions
For players who have created courses that they'd like to submit and have hosted as part of the base game I figured I should create some kind of basic user agreement for how this would work. I highly doubt this counts as a legal agreement but at least we have something concrete to point to. Just message me on Discord if you have something you'd like to see added to the game.
- You retain full ownership of the content you create and can ask to have it removed from the game at any time including after final release.
- Whatever name you put in the author field will be shown in game so your work will be attributed to you.
- You cannot claim any ownership over the rest of the game i.e. you can't show up years later and demand some percentage of game sales.
- I can change or remove your work at anytime in the future. I'd obviously prefer to let you edit your own work and resubmit it but this covers the case where something breaks in the future and I can't get a hold of you.
Bright Shadow the Construct
A totally new boss for The-Core. The main idea is that this should be a fight centered around kiting and controlling the bosses movement.
- A big chunky tank: Slow, High-HP, Protection and Heals in Lava.
- Very dangerous melee: High damage and Grab (constrict)
- Stomp: he stomps and creates a line of lava towards the player. Over the course of the fight he will cut up the arena with these lava lines which restricts the players movement and obviously he will heal in this lava.
- Animate Statues: there are a bunch of inert statues around the level that will animate into Obsidian Golems if the boss comes within melee range of them. They will revert to inert state if the boss and golem get more than 2 tiles apart.
The Efreeti Lord
A total rework of this boss fight. Implementing some brand new NPC-Controller code that I'll be adding to a number of different boss fights in order to add phases/states to boss fights. This is a super common feature in boss fights in other games. Instead of having a single ability set we can now create different states each with its own abilities and potentially different behaviors, properties, sprites etc. The boss can then cycle through these states, change states at different HP % or even perhaps different situations could trigger special state changes. Lots of things that could be done with this system in the future.
- State #1: Summoning Flame-Vortex for about 5T
- State #2: Summoning expanding flames all over the level for about 5T
- State #3: Summons a Flaming-Battle-Sphere with very low HP but high range/DMG (1T)
- He has a chance to Escape-Blink and reposition at every state change.
- Most of his states he can also use his basic fire projectile attack.
UPDATE 1.23.1
Rethilt the Rotten:
First draft of a new sewers boss available in the Test Levels. Shoutout to Rethlit for helping really hammer the design into something tight. The main idea here is that the boss himself has a pretty fast regen rate (troll) but he is also raising water zombies which quickly build into a hoard. The player needs to split his attention between avoiding/cutting down the hoard while also bursting down the boss himself.
- Fast regen (see the new regen mechanics)
- Basic poison projectile
- Poison Cloud - we talked about keeping him with just a basic attack since the rest of the fight is pretty elaborate but I think from my first round of testing that he needs a little something extra to stop the player from easily cornering him and bursting him down.
- Raise Water Dead: he will raise 1,2,3 zombies as you knock his HP down 75%, 50%, 25%. A number of other bosses already use this gradually growing power mechanic.
NPC Health Break Points:
A first attempt at a new system that will allow us to keep enemies with super high regen or high healing without making them impossible. The current problem is that with a quickly healing enemy if the player cannot burst it down in [x] turns then the fight basically resets when the player needs to stop to regen, grab an energy shroom, dodge some attacks etc. I'm hoping to maintain this idea of 'bursting' as the solution for quickly healing enemies while still allowing the player to chip away at the fight.
The mechanic is as follows: Damaging an enemy below certain break points will effectively reduce the max HP that he can be healed/regen to.
- <75%HP => 90%Max
- <50%HP => 75%Max
- <25%HP => 60%Max
The Efreeti Lord:
- Orbs are now summoned on platforms that are close to the player. They should generally not summon out of sight.
- The flames will no longer spread as this was hard to predict and keep track of. Instead he just spawns a lot more flames on each cast.
- He will also use his flame ability even when far away and out of LoS.
Random595 Courses:
Random has created some absolutely excellent courses demonstrating many of the more advanced and obscure mechanics/tactics. I'm honestly floored by the quality of these. Not only is the information super valuable (I learned a bunch myself), but the presentation/setup itself is just so tight and professional. I think he's hit a near perfect balance between making them tutorials but also fun challenges you can try to figure out. Thank you very much Random for letting me include these and great work!
Bugs and Crashes:
- Fixed a crash on the main menu after you had completed a school lesson (when switching the background map).
- The pits in the danger school will no longer crash if you click on them.
- The Efreeti Lord level will no longer launch into a test level.
UPDATE 1.23.2
Rethilt the Rotten:
- New sprite by Rethlit himself!
- Higher HP
- Less summons: 1, 2, 3 => 1, 2, 2 @ (75%HP, 50%HP, 25%HP)
- Starts with two troll allies
- Removed his Poison-Cloud ability to make the fight more streamlined. Its supposed to be a balancing act of dealing with his zombies and dealing with his regen and high HP pool.
The Efreeti Lord:
- Trying out starting him with 2 Fire-Elementals. This should drastically increase the initial difficulty.
Bright Shadow the Construct:
- Starting him out with two golems in range and active.
- Shrunk the arena a bit and removed some of the small loops where he doesn't have room to stomp.
Kocha the Controller:
The bare bones of a new boss for The-Arcane-Tower based on a suggestion/idea from Kocha in Discord. The idea is that the boss is a disembodied spirit (or something) that jumps between and animates 3 totally different statues. I'd like for each statue to have a very different flavor and challenge associated with it but otherwise be relatively simple. The complexity of the fight should arise from the switching mechanic. The switching should occur quite frequently so that the player is constantly having to change attention.
If a statue is killed while animated then Kocha herself is revealed for a single turn after which she will quickly animate the next statue. This gives characters with burst damage a potential quick end to the fight. Otherwise you will need to fight each statue down until there is no where else for her to go.
The current 3 statue stats are just placeholders. I'll be creating a discussion thread on Discord for suggestions of what might work here or feel free to reply to this update post.
Random Danger Courses:
Got the labyrinth course copying and loading correctly.
UPDATE 1.23.3
Just a quick fix to game crashing on startup if files in the CustomCourses directory were missing.
UPDATE 1.23.4
Kocha the Controller:
Following testing and discussion I've decided to narrow the focus of this fight to center around the idea of forcing the Kocha spirit thing out of the various constructs and then dealing quick burst damage before it jumps back into the next one. So the fight is more of a classic weak point boss fight with the spirit acting as a weak point that can be exposed by the player taking various actions. Actually grinding down all 3 constructs should be very inefficient and we can continue to balance the fight assuming that the player is not doing this.
The coding on this fight has been pretty tricky with all sorts of weird edge cases regarding turn order. Need to get this all working perfectly as the whole fight revolves around countering the Spirit in the single turn intervals where its exposed. I'm currently just forcing the whole turn order to reset whenever Kocha is ejected or animates a construct. This guarantees that the player always has a turn to act/react.
MELEE CONSTRUCT:
- Fast moving (perma haste) with a very powerful melee attack and constrict.
- No has Lunge on a short cool-down
- When it lunges and crashes into a wall Kocha is ejected for 1T.
RANGE CONSTRUCT:
- Has a overheat/charge level that starts at 0 and increases each turn.
- If it is able to make a projectile attack, the charge is reset to 0.
- If the charge reaches 5 then the construct overheats and ejects Kocha for 1T.
- This will get a sprite thats something like a test tube, flask, crystal etc. with a liquid/energy level thats rising towards the top.
SUMMONING CONSTRUCT:
- As soon as it becomes active it will summon 8 swords. We may make this something else depending on theming.
- Killing all 8 swords will force Kocha to eject for 1T
KOCHA THE ENRAGED:
To highlight the idea that actually grinding down all 3 constructs is the 'wrong' solution, doing this will force Kocha out in an enraged state at which point she will fire projectiles every single turn until killed. Given the massive HP pools of the 3 constructs this fight has the potential to be absurdly long and grindy if the player just tries to brute force it so I want to really obviously discourage this.
Bugs and Crashes:
- Fixed a ton of crashes during the Kocha boss fight.
- Fixed a bunch of cases where turn order was weird. Either player had no time to react or Kocha or one of the Constructs would wait for 2 turns. There are probably more instances of this.
- Fixed Click-Clock-Keep train boss fight not completing properly.
UPDATE 1.23.5
Celtius the Dragon:
I thought I was so close to getting this working a few days ago but then the bugs and little special cases kept piling up and it ended up taking a lot longer than expected. I've been wanting to do multi-tile bosses for ages and have been putting it off since I knew it was going to be tricky. Despite the delay, overall I'd say it actually went a lot smoother than I had anticipated. Its still hard coded for this particular boss but I'm planning on doing at least one more multi-tile boss as part of this update so I'll be able to generalize everything while its still fresh in my mind.
The boss itself is most of the implementation suggested by Dragon_of_Celts himself.
HEAD:
- Bite: a very high damage melee attack
- Ice Breath: a 3 wide bolt of Freezing-Clouds cast along the orthogonal axis. The cast has a 1T delay and will target even if the player is not directly in the line of attack. The clouds last for 10T so this ability partially functions as a way of zoning off parts of the arena.
- Killing the head will kill the whole boss.
BODY:
- Does all the actual movement and rotation.
- The boss must be mostly facing the direction he wants to move. He can move sideways though he tends to rotate after a few steps but he cannot move backwards.
- This gives the boss a pretty slow overall movement speed and he is reasonably easy to kite around.
- Killing the body will kill the whole boss.
TAIL:
- Tail-Swipe: a big knock-back melee attack with a bit of extra range behind.
WINGS:
- Wing-Blast: causes all Freezing-Clouds to fling Ice-Shards in the direction of the wing blast.
MISC:
- Damaging any component of the body will create Freezing-Clouds
- The dragon itself is immune to Freezing-Clouds.
MY ANALYSIS:
While the basic mechanics of multi-tile bosses are now working I don't think the boss fight itself is working. The dragon himself is a slow moving tank with strong melee that forces the player to constantly kite. This works nicely. The problem is with the Freezing-Cloud / Wing-Blast interaction which I think should be the main 'theme' of the entire boss fight.
I think its a great idea in theory in that it forces the player to be aware of his position relative to the boss and all clouds on the map while accounting for changing rotation of the boss. The problem here is that with the boss both moving and rotating its difficult to keep track of this and the boss is rarely in a position where these Ice-Shards are a threat to the player. I'm almost never actually hit by this ability and when I am it comes as a surprise.
I mentioned early on when first deciding on this implementation that if it didn't work here it almost certainly would with some kind of immobile tornado enemy that sits in the center of an arena throwing out clouds in some kind of radial pattern and constantly knocking the player outwards. Keeping the boss immobile would make it easier to track the direction of upcoming Ice-Shard blasts and the whole fight would consist of circling this centrally located boss.
So I think we will save this mechanic for just that sort of fight and go back to the drawing board for designing the dragon itself. With all the lower level code now working I think we can pretty quickly come up with and test some more viable ideas.
Misc Stuff:
- Added the Lesson property 'allowExp' so that lessons can give exp on kills. Updated Random595s two levels with the change.
- Water-Logged-Zombies are no longer unstable in water.
- Changed the Troll-Warriors to Troll-Necromancers in the Rethlit-the-Rotten boss fight (I'll be returning to this one before finishing this update).
UPDATE 1.23.6
Really quick and dirty adjustment to Celtius. Going to be moving him away from the Cloud/Shard mechanics (save it for another boss) and focus in on just making him a tough kiting challenge.
- Uploaded updated version of Randoms courses
- Removed freezing cloud onHit from Celtius-the-Dragon
- Removed the Wing-Blast from the wings
- Gave Celtius the Summon-Ice-Bomb ability as a quick and dirty way of testing out how adding Ice-Bombs might feel. Initial testing indicates that this might work really well.
UPDATE 1.23.7
Celtius the Dragon:
Still not happy with this one yet so will continue to tweak and adjust. Focusing on simplifying this fight. Going to save the cloud + wind mechanics for another fight entirely and try to just make this one really big and tanky. This should really just be a 'kite the giant deadly dragon' fight.
- Dragon can now rotate and move as a single action (makes him more mobile)
- Dragons body now moves him before the other body parts take their turn. This allows the head for example to bite you if you are kiting him 1-tile away.
- Made his Ice-Breath a large cone shape
- Gave him a lunge/swoop ability so that he can more easily close range with the player. It will destroy any objects it comes into contact with (stalagmites, rocks etc).
Bugs and Crashes:
- Made Telescopic-Goggles unenchantable as range stat is currently not boostable.
- Fixed crash with Scuttle (Rethlit)
- Concussive Strike will now correctly knock-back enemies (Rethlit)
UPDATE 1.23.8
Celtius the Dragon:
- Dragon is better at moving and rotating at the same time (his overall mobility is a bit better).
- Removed the separate Rotate ability so that he will always move if he can. He was previously wasting 50% of his turns just rotating.
- The rotation is now part of his general movement so that he will just rotate if the player is already in range without moving.
- Fixed Bug: there were places the player could stand where the Dragon would then stop moving.
- Fixed Bug: Moving away from the dragon at different angles would sometimes force a rotate and sometimes not (it was not symmetric).
- Fixed Bug: The dragon would sometimes turn the long way around.
- Removed the Dragon head attacking on the same turn as movement as this is quite unexpected for an enemy that is not otherwise fast.
- Wing-Blast: Now creates 3 Frost-Vortex and throws them outwards from the wing. These Frost-Vortex have a 'drunken' AI where they mostly just mill about. They don't last very long. The point here is to act as hazards to interrupt the players kiting and movement.
- Wing-Blast: not currently implemented but presumably this should knock the player back as well in a cone shape.
- Ice-Breath: only targets the player if he is actually in the AoE.
- Ice-Breath: turns tiles to Ice so that there is a permanent change to the arena
Bugs and Crashes:
- Fixed the crash when the player dodges an enemy Life-Spike (Rethlit).
UPDATE 1.23.9
Finishing up work on the dragon boss fight. I feel like I'm starting to run out of steam working on these bosses so I'm planning to try to wrap everything up this week. 5 diverse and complex boss fights is enough for one update. I'm mostly just aiming for 'good enough' at this point with the plan being to come back later after we've all had some time to play with them in the main game.
Celtius the Dragon:
- Multi-tile movement is now handled at the point in the code where normal NPCs perform their movement. This makes it animate smoother and also stops the old Move ability from interfering with Lunge (the dragon should Lunge more frequently).
- The Dragon head will no longer try to Ice-Breath when we are already lunging.
- Dead body parts are now taken into account when the dragon is moving, rotating and lunging.
- Even when body parts are destroyed the dragon will still perform pathfinding as if he had the full + shape. This is to guarantee that he is always able to rotate himself. I spent a bunch of time exploring various ways to get this to work and it seems that the only full solution would be a completely unique pathfinding routine that takes into account all the living body parts, their collision, rotation etc. I'm not willing to devote a few weeks to solving this problem at this point. This will eventually need to be solved when we start doing more oddly shaped bosses.
- Added a failsafe move in case he finds himself in a position where he cannot rotate and path towards the player. He just moves forward, back, left or right, to a position where he has his + shape all clear.
- Increased the HP on the head and body. We might possibly need to increase it even more. If there was ever a boss that needed a big fat HP pool its a DRAGON.
- Shrooms will now apply their effects to all body parts. So a healing shroom will heal all body parts.
- Added a Trample ability to the body so that he has a 2nd melee attack and has the ability to force the player into corners. He will trample if the player is in front of any of his living body parts. Haven't added it yet but this would be another good place to add smashing objects.