Version 0.7.90: new balancing, new investigation, new battle, new ending!
Greetings, tactics fans! As October draws to a close, I've updated Together in Battle with another month's worth of progress. There are new investigation scenes, a new plot battle, a new ending, balance improvements, AI improvements, bug fixes, and more. There's a fair bit to cover, so let's get into all the changes!
[h3]First up, here's the new content:[/h3]
[h3]Next, we've got balance changes to keep runs from capsizing due to excessively bad luck:[/h3]
[h3]We also have a variety of miscellaneous improvements, including several to the game's AI:[/h3]
[h3]And of course, we have bug fixes! (Shout-out to Titanium Legman and Koankitsune, our top bug hunters for this month!)[/h3]
[h3]And finally, we have new goodies for people making their own custom campaigns in the campaign creator:[/h3]
And that about covers the changes for this month!
[h2]Featured coverage![/h2]
I'm now going to shout out Titanium Legman again here for his delightful coverage of Together in Battle over the past month, including
As the kids say: what an absolute king! 😃
[h2]What's next[/h2]
We're on track to hit the full version 1.0 release in Spring 2025; and as it happens, that is precisely when I was hoping to release the game. So I'm feeling pretty good about that!
For our final updates leading up to that launch, my goal is to get the last investigation mission completed; get the last bits of new art and music into the game; create the final plot battle; write the good ending; write the scene with the big post-championship speech to your team; and add in one last event that can occur with Ishita Svaamee if you cross her. (Needless to say, I will also keep polishing the game with balance tweaks and bug fixes, and may throw in some new random events and dialogue as well if the mood strikes.)
As always, feel free to help me out by sending in reports of any bugs you run into, and--if the spirit moves you--by giving the game a nice Steam review. Such things are immensely helpful to a small indie dev like me! Until next month, my friends.
Tactically yours,
Craig
[h3]First up, here's the new content:[/h3]
- created a new investigation scene where you must scour an empty palace under time pressure! Where will you search, and in what order? Your choices affect the outcome!
- created a new plot battle where the outcome affects the scenes to follow!
- created a new, branching cutscene following the plot battle!
- created a new, second "bad" ending to the game!
- created two new conspirator enemy types: Silent Serpent and Silent Rider.
- created a new scene that occurs if you visit the recruiter after you get locked in to the game's first bad ending.
- new achievement: A darker fate.
[h3]Next, we've got balance changes to keep runs from capsizing due to excessively bad luck:[/h3]
- during caravan battles, the game now dynamically adjusts the number of AI-controlled ally guards on the battlefield based on how many characters you're fielding, making it much less risky to send only two characters.
- made some tweaks to the "numerous" condition in caravan guard battles to make it less likely to generate scenarios where the player is quickly overwhelmed by enemies.
- when "thieves" are chosen as the condition in arena battles, the enemy team now ignores chests. (This keeps arena opponents from busting open chests and thieves immediately swooping in, grabbing the loot, and vanishing before the player can react.)
- during buyout offer events, Ishita Svaamee will now specifically offer to buy out either your highest-salary or your lowest-level character(s) rather than just choosing a character purely at random.
- scheduled league matches now award extra money to the player relative to pickup matches, provided the player wins. The further up the ranks the player rises in a given league, the more the scheduled-match prize for victory increases (+45 aura per scheduled match won in Monkey League; +60 aura per scheduled match won in Gharial League; +75 aura per scheduled match won in Snow Leopard League; and +100 aura per scheduled match won in Tiger League.) This is intended to provide a cushion to help players afford a replacement if they should lose a character during the course of any given league.
- the game now tracks if you lost the last qualifier match and--if it finds that you did--it won't grant the victory bonus for repeating scheduled league matches prior to re-attempting the qualifier. (This is to avoid a situation where losing qualifier matches becomes economically optimal.)
- late-night battle events (currently, Thief Attack and Thief Attack 2) will no longer occur if both (1) a battle event already occurred earlier in the evening, and (2) a scheduled league match either occurred earlier in the day or will occur the following day. (Three forced fights in a row without time to recover is simply too much to put on the player.)
- when initiating the first late-night thief attack event, the game now checks to make sure you have at least 6 characters available; if you don't, it aborts the event.
- when initiating the second late-night thief attack event, the game now checks to make sure you have at least 8 characters available; if you don't, it aborts the event.
- increased the minimum available characters necessary for the smuggler's den event to occur from 5 to 6.
- when counting the characters available for the smuggler's den or thief attack events, the game now only counts characters who have at least 50% of their health and 25% of their energy. (Previously, if a character could be fielded at all, then they would be counted toward the minimum number of characters.)
[h3]We also have a variety of miscellaneous improvements, including several to the game's AI:[/h3]
- AI improvement: when an AI-controlled army is tasked with protecting a unit as part of their victory/loss conditions, the AI will now prefer moves which bring its characters closer to the unit they must protect (with the strength of the effect scaling off the defense weight for that army's AI profile). Among other things, this means caravan guards are now more likely to actually stick around the caravan wagons they're supposed to defend.
- AI improvement: the AI now scores moves which bring characters closer to their allies somewhat more highly.
- AI improvement: character sensitivity to the danger a space represents now scales down proportionally based on much health the character has left, with full-health characters factoring it in at roughly 1/10th its normal strength. (This makes enemies at or near full health far less likely to simply run away on their turn.)
- when in town, the game now warns you if you try to visit the recruiter with your roster already full (18 characters).
- added a dialogue choice during the interrogation of Prince Ajit wherein the player considers attempting a scan.
- cleaned up the dialogue in the Finding Malatose cutscene a bit.
- added multiple new family background dialogue variants for characters who (a) were raised by both a mother and father, and (b) feel sad about one parent and anger toward the other.
- added a loading screen tooltip about the effect (and value) of surrendering arena fights.
- updated the ending credits.
[h3]And of course, we have bug fixes! (Shout-out to Titanium Legman and Koankitsune, our top bug hunters for this month!)[/h3]
- fixed: if a character had less than 40% health left, they would always rest instead of performing a forced camp activity (including activities they were ordered to perform via a one-on-one).
- fixed: when surrendering a match while playing with a gamepad, the game would inappropriately switch gamepad focus from the defeat window back to the battlefield, effectively freezing the game.
- fixed: when surrendering a match while still in deployment, the deployment window would remain onscreen and obscure the defeat screen, as well as any OnVictory dialogue triggered by the surrender.
- fixed: when surrendering a regular arena match prior to reaching Monkey league, the game would inappropriately show a little dialogue box that read "Defeated..." prior to showing the actual defeat screen.
- fixed: the game could freeze when checking for terrain properties after removing a character from the battlefield as part of OnReachingArea dialogue.
- fixed: thieves in the arena had such an overwhelming preference for attacking chests that they would always choose to bust open another chest over simply grabbing loot from a chest that had already dropped.
- fixed: custom, player-created spirits and golems possessed an ongoing salary after being recruited.
- fixed: the game could trigger a heatwave during the day (or, conversely, could untrigger an existing heatwave) if the player visited someplace and then left without using up a time point.
- fixed: preemptive strikes were not working properly against Charge and other move-to-target attacks.
- fixed: text overlay messages about preemptive strikes were being cut off early by text overlay messages with the name of the preempting attack.
- fixed: if the team leader in the Monkey League qualifier was generated with Stimulate or another buffing ability, they could prematurely move toward the center of the map to buff an ally, immediately making the battle far harder than intended.
- fixed: attacking a target tagged with Pursue would cause the game to remove Passive tags from the target as intended, but not Immobile or Inactive tags; instead, the game would remove Immobile and Inactive tags from the attacker.
- fixed: characters created via script actions at the start of a battle could spawn on top of deployment tiles, blocking characters from being deployed there.
- fixed a scripting error in the revenge quest battle impacting the team morale penalty for attacking a civilian bystander.
- fixed a graphical blemish in the generic male and female swordsman portraits.
- fixed: the bodies on generic portraits were getting base scale variations not matched by the hair layer.
- fixed: changing a unit's army color mid-battle would cause their hair and skin palette to reset to default values rather than their actual skin and hair color.
- fixed: hair and skin palettes for characters from older saves were not getting set based on their portrait values as intended.
- fixed: opening and closing the battle menu during deployment would cause the game to inappropriately show the actions bar.
- fixed: when switching between multiple successive dialogue branches where the speaker is left blank, the game would begin to inappropriately play babble speech sound effects alongside the dialogue text.
- fixed: the game would detect displayable dialogue (and therefore show the dialogue window) despite detecting an immediate conversation-ender in branch 0 even if there was no speaker and no dialogue text, just so long as there existed a single reply with any characters in it at all.
- fixed: the game would not copy knockback timing values when cloning AttackInfo data.
- fixed: localized text for participation aura awarded after losing an arena match had a spacing error.
- fixed a typo in the Trailing Malatose cutscene narration.
[h3]And finally, we have new goodies for people making their own custom campaigns in the campaign creator:[/h3]
- created a turquoise variant of the in-game rug object.
- new sound effect added: Drawer.
- new sound effect added: Prison Door Close.
- new script action: ScalePortrait. Allows you to adjust the size of an existing character portrait at runtime. Two parameters: portrait name and scale. (By default, most portraits have a scale of 1.0, though this can vary for proc gen and custom portraits.)
- new script actions: HighestStatUnitsToList and LowestStatUnitsToList. Gets the characters in the specified army or roster tied for the highest or lowest value in the specified stat, then adds their name to a custom list. Parameters: list name, roster or army number, and stat name.
- new script actions: HighestStatUnitsInList and LowestStatUnitsInList. Pulls the characters from an existing list who are tied for the highest or lowest value in the specified stat, then adds their names to a new list. Parameters: existing list name, new list name, and stat name.
- the SpawnUnit, GenerateUnit, and GenerateUnique script actions now accept integer ranges for their x coordinate and y coordinate parameters, letting you randomize character spawning within a defined area.
- fixed: documentation for the NextFrame action was missing from the campaign editor guide.
And that about covers the changes for this month!
[h2]Featured coverage![/h2]
I'm now going to shout out Titanium Legman again here for his delightful coverage of Together in Battle over the past month, including
- this lovely overview video (I quote: “It makes for a very compelling, one-more-battle type of feeling that I haven't gotten from a strategy RPG in a good long while”) and
- this SRPG tier list video where (spoilers!) he ranks Together in Battle in A-tier alongside Fire Emblem Three Houses, Fire Emblem Awakening, and Fire Emblem Path of Radiance--even in its unfinished, early access state! (I quote: "Phenomenal.")
As the kids say: what an absolute king! 😃
[h2]What's next[/h2]
We're on track to hit the full version 1.0 release in Spring 2025; and as it happens, that is precisely when I was hoping to release the game. So I'm feeling pretty good about that!
For our final updates leading up to that launch, my goal is to get the last investigation mission completed; get the last bits of new art and music into the game; create the final plot battle; write the good ending; write the scene with the big post-championship speech to your team; and add in one last event that can occur with Ishita Svaamee if you cross her. (Needless to say, I will also keep polishing the game with balance tweaks and bug fixes, and may throw in some new random events and dialogue as well if the mood strikes.)
As always, feel free to help me out by sending in reports of any bugs you run into, and--if the spirit moves you--by giving the game a nice Steam review. Such things are immensely helpful to a small indie dev like me! Until next month, my friends.
Tactically yours,
Craig