Early Access-versary! Version 0.6.20: new battles, events, and arena conditions!
Greetings, tactics fans! Today is the one-year anniversary of Together in Battle being out in Early Access. What a difference a year makes!
[h2]What Changed Over This Year[/h2]
I went through and counted: over the past 11 months, I pushed 19 updates to Together in Battle (21, if you want to count the hotfixes). These updates included:
And that's only 11 months worth of changes--I haven't even talked about the changes I made for this month's update yet! So let's get to that now...
[h2]Update #20: Version 0.6.20![/h2]
This month's update includes new random events, new battles, new special conditions that can appear during matches in the arena, a long-requested new feature in the mid-battle save system, the ability to auto-generate your starting team, and more! Let's get right into it.
[h3]More battle variety![/h3]
The primary focus of this month's update has been adding yet more to the game's battle variety, with four new hand-designed, scripted battles tied to random events and two new "fan request" conditions for the game's arena battles:
By my count, this brings the game to 22 hand-designed fights accompanying the bevy of proc gen battles--and with more still to come!
[h3]We have a variety of other improvements as well![/h3]
[h3]A whole bunch of bug fixes![/h3]
[h3]Improvements to the campaign creation suite![/h3]
This month, we have no fewer than 7 new script actions(!), a new dialogue trigger type, a new tag type, and fixes to bugs in the map editor that had been bugging me for years now--and more! The details:
And that wraps up everything new and improved in this month's update. For next month's update, I'm going to be focused on main plot stuff: at a minimum, one more interrogation scene and one more main plot battle. More to come!
[h2]How can you help?[/h2]
As I continue to move the game toward completion, here's a little reminder that if you're enjoying Together in Battle, leaving a nice review would do a lot to help the game out! More reviews means Steam's algorithm shows Together in Battle to more people; more people seeing Together in Battle means more sales; and more sales mean more of a budget for me to commission new art.
Also: if you happen to follow any cool streamers who enjoy SRPGs and tactics games, feel free to suggest Together in Battle to them! Anything that helps spread the word about this game, really, would be most helpful.
All right, enough of that. I'll be back with our next update in May! 😉
Yours in tactics,
Craig
[h2]What Changed Over This Year[/h2]
I went through and counted: over the past 11 months, I pushed 19 updates to Together in Battle (21, if you want to count the hotfixes). These updates included:
- a flexible time points system for daytime actions;
- loads of balance improvements (including much more forgiving rules surrounding broken weapons, payroll shortfalls, and camp cleaning);
- two new arena leagues (Snow Leopard and Tiger Leagues), each with their own "biomes" and hand-made qualifier battles;
- the arena championship fight (with its own accompanying events);
- a variety of new arena battle conditions (such as 4-on-4 and Defend the Idol);
- twenty new random events (most with multiple outcomes and many with associated hand-designed battles);
- eight more "palace intrigue" main plot events, including five witness interrogations and three hand-designed plot battles;
- the first of the game's endings;
- numerous user interface improvements (such as pre-visualizing knockback effects and previewing the benefits of each piece of equipment for characters within the shop);
- countless improvements to the AI;
- two new difficulty levels, including a custom difficulty mode;
- full gamepad and SteamDeck support;
- a card-collecting mini-game (Psy Clash!) with a dedicated deck management screen;
- a jobs board with four types of jobs (manual labor, proc gen caravan guarding missions, proc gen cavern exploration missions, and proc gen card tournaments);
- an infirmary where you can send wounded characters to recover;
- a blacksmith where you can repair items;
- character renaming;
- weapon renaming;
- the ability to give characters bonuses or send them on vacation for a morale boost;
- a variety of new skills (including Create Fire, Create Ice, Quick Twirl, Kinetic Surge, Mega Charge, Shield Bash, Fire Breath 3, Frost Breath 3, Dark Breath 3, and Light Breath 3);
- a ton of new items, including weapon-modifying consumables, permanent stat boosters, and weapon repair kits;
- new equipment modifiers (such as Stylish, Beautiful, Gorgeous, Visored, and Calming);
- new environmental conditions, such as heat waves and rain storms that spawn puddles around the battlefield;
- new weather effects (such as fireflies, falling leaves, and flower petals);
- new skill visual effects (such as overheat and spike trap);
- new battlefield objects like ice spikes, exploding trees, puddles, trapped chests, rugs, jugs, and planters;
- additional character portrait variety;
- lots of additional character dialogue;
- additional narrated character camp activities;
- the ability to make characters' relatives appear in-game as full-fledged characters themselves;
- new character sprites;
- new battlefield backgrounds;
- new cut scene backgrounds;
- gorgeous new music (such as "Drawing Blades" and "Contest of Blood");
- tons of new features, functionality, and assets for the campaign creation suite;
- the ability to download and play other players' custom campaigns right in-game;
- approximately one zillion bug fixes; and
- more stuff I probably missed.
And that's only 11 months worth of changes--I haven't even talked about the changes I made for this month's update yet! So let's get to that now...
[h2]Update #20: Version 0.6.20![/h2]
This month's update includes new random events, new battles, new special conditions that can appear during matches in the arena, a long-requested new feature in the mid-battle save system, the ability to auto-generate your starting team, and more! Let's get right into it.
[h3]More battle variety![/h3]
The primary focus of this month's update has been adding yet more to the game's battle variety, with four new hand-designed, scripted battles tied to random events and two new "fan request" conditions for the game's arena battles:
- new event: a second nighttime thief attack battle (much larger in scale than the first)!
- two new "inter-team sparring" events, each with an associated battle sporting a special (and unusual) victory condition!
- a new "revenge quest" event chain, plus a new associated battle!
- new arena fight condition: Skill Request. A fan requests that you use a specific skill (known by at least one of your deployed characters) during the battle; if you use that skill a certain number of times and go on to win the fight, you'll gain an extra reward! (This condition can appear beginning in Monkey League.)
- new arena fight condition: Skill Avoid Request. A fan requests that you avoid using a specific skill (known by at least one of your deployed characters) during the battle; if you do not use that skill at all and still go on to win the fight, you'll gain an extra reward! (This condition can appear beginning in Monkey League.)
By my count, this brings the game to 22 hand-designed fights accompanying the bevy of proc gen battles--and with more still to come!
[h3]We have a variety of other improvements as well![/h3]
- a much-requested feature is now in-game: when playing with manual saves, you can now create a mid-battle save right after deployment but before taking your first turn!
- you can now have the recruiter auto-generate a balanced starting team for you on Day 0! This lets players jump into the game quickly without having to make sense of the recruitment screen (especially helpful for new players who haven't experienced combat yet).
- improved recruitment UI behavior when mousing over other recruits with a different recruit selected: you can mouse over other recruits normally, but the selected recruit will pop back up upon mousing off of them for ease of comparison.
- AI improvement: the AI now does a much better job of appropriately balancing the value of reaching a preferred area versus the value of moving toward a character it would like to attack (but cannot yet reach).
- AI improvement: the AI now imposes an internal scoring penalty for any move that would take a character who is already inside their preferred area outside of said area.
- AI improvement: reduced the minimum calculated value of usage before enemies will use items, avoiding situations where enemies won't use bandages even though it's optimal to do so.
- AI improvement: AI-controlled units now value Defending status proportionally more as they become more injured, and more based on their ability to counterattack.
- wrote new tutorial text about fruit trees, explaining why AI-controlled enemies sometimes attack them. (Because they drop health-restoring fruit when destroyed.)
- reduced the odds of a late event occurring on any given night.
- further boosted the likelihood of characters who are already friends or romantically interested in one another choosing to interact with each other over other characters.
- added two new "life background" dialogue variants.
- character dialogue can now be made available (or excluded) for a character based on their family's socioeconomic class.
- new mood added to the game: Determined.
- particular proc gen character lines can now be assigned greater likelihood of selection.
- the game now accounts for characters temporarily off working, training, in the infirmary, or on vacation when spawning the number of tents in the thief attack battles.
- shifted the timing of the Brother Leader Revenge event chain; it can now no longer occur until Gharial League at the earliest.
- updated the "tent looted" conversation in the thief attack battles so the game shows you the info bar with the money being lost.
- updated the Strikebreaking event so the game shows you the info bar with the money being added if you complete the job.
- completing Jiti Sone's job now has a downside: spriggats will refuse to appear in recruitment, and any spriggats actively on the team when the job is done will suffer a huge morale hit.
- added portrait animations to the "ignore" options for the Ishita Svaamee events.
- added a portrait animation to the first traveling merchant event.
- the game can now process custom strings used as part of a scene's display name.
- laid the groundwork for the engine to support looking at specific aspects of the skills that characters are using as parameters for dialogue triggers.
- the Together in Battle Steam demo has been updated! (The demo was last updated in August 2023, so this was long overdue.)
- added in version 0.6.20a: the game now displays gameplay tips on the loading screen when transitioning scenes.
- added in version 0.6.20a: when playing with the gamepad, switching to the actions bar with 'X' now defaults to selecting the first available skill.
- added in version 0.6.20c: increased the number of loading screen tips to 43.
- added in version 0.6.20c: the game now tracks the last 20 loading screen tips displayed to avoid having repeats too often.
[h3]A whole bunch of bug fixes![/h3]
- I pushed a small "hotfix" update at the start of the month, so part of my bug-fixing progress for April is chronicled there. As for the rest...
- fixed: bridges below the level of the terrain could cause the game to use the bridge's elevation instead of the ground's for purposes of calculating movement and elevation bonuses.
- fixed: bridges below the level of the terrain could cause the game to use the bridge's elevation instead of the ground's for purposes of calculating which spaces are moveable for a non-flying unit.
- fixed: under some circumstances where the AI had a character move and use a non-turn-ending skill, the AI could queue up further actions for the character where they moved and used a skill, but then fail to execute the "actually moving" part, resulting in the character attacking outside their normal range.
- fixed: if an army in a battle was completely neutral by way of being allied to every other army, the game would treat them as having vanquished all enemies and immediately end the battle with them as the victor.
- AI fix: the retreat AI algorithm was not accounting for area preference or patrol tags, causing characters with no usable skills to retreat without regard for the areas they were supposed to be moving towards.
- fixed: if any of an AI-controlled unit's skills could affect a target worth affecting, all of that unit's skills would be marked as worth using as part of short-range moves toward a preferred area, leading to the unit potentially inappropriately attacking scenery.
- fixed: changes to the code made it so generalized character death barks could again get queued in addition to specific OnCharDeath dialogue for the same character upon falling in battle.
- fixed: proc gen battle map names were not being saved in the "battle start" save files used when restarting a battle, resulting in the map's internal file name displaying instead.
- fixed: the "force species" attribute could be used to create proc gen characters of a species not compatible with the chosen class, resulting in issues like missing portraits and sprites.
- fixed: door-affecting script actions such as Lock could trigger OnDoor dialogue when used in OnLoaded dialogue.
- fixed: mousing over a unit and then immediately mousing over the deployment window thereafter without ever mousing off the unit could cause the unit's mouseover tooltip to become "stuck" onscreen for a time.
- fixed: it was possible for cavaliers to charge across a path with an elevation difference of 2 or greater, just so long as they effectively charged off of the cliff rather than up it.
- fixed: in some circumstances, the game could save (and reload) past instances of generic templated units in a way that would reintroduce tags placed onto those unit types in past battles.
- fixed: a misformatted script action parameter in the event where a character asks the player for money to gamble with resulted in the event proceeding even if the player lacked the minimum amount of money to gamble with.
- fixed in version 0.6.20a: on certain buttons, selecting them with the gamepad could double-invoke their methods, leading to errors (up to and including the game freezing).
- fixed in version 0.6.20a: when playing with gamepad, at the very start of battle, the selector was spawning in the very top-left of the map instead of over someone in the player's army.
- fixed in version 0.6.20a: actions bar button tooltips were displaying strangely in gamepad mode.
- fixed in version 0.6.20a: the virtual cursor was not visible when choosing between yes or no in any in-battle warning pop-up windows.
- fixed in version 0.6.20b: in some circumstances, the "avoid skill" arena battle condition would turn out blank.
- fixed in version 0.6.20b: if you got the bad ending while having a character possessing the "serious" personality trait among the first 7 units of your team, the scene on the docks would get stuck in an endless loop of character reactions.
- fixed in version 0.6.20c: a couple of typos were present in the loading screen tips.
- fixed in version 0.6.20c: if you managed to kill every enemy on the blacksmith rescue map, the battle would end prematurely and not give you the blacksmith option going forward.
- fixed in version 0.6.20c: the blacksmith would show duplicates of weapons in reserve supplies when showing potential items to rename or repair.
- fixed in version 0.6.20c: when shoving a unit onto a space with an ornamental bridge tile below the terrain, the game would use the bridge for the destination elevation instead of the terrain, sometimes inappropriately causing the target to take damage and/or become stunned.
- fixed in version 0.6.20c: during the initial meeting with Manbir Raksha, his dialogue was still incorrectly referring to the attack "last night."
- fixed in version 0.6.20c: a visual issue with the spot where the necks meet the ears in most of the male "NPC" portrait clothing sets.
[h3]Improvements to the campaign creation suite![/h3]
This month, we have no fewer than 7 new script actions(!), a new dialogue trigger type, a new tag type, and fixes to bugs in the map editor that had been bugging me for years now--and more! The details:
- the final two army palettes that were supported in the original Telepath Tactics (Orange and Pink) have now been added to the engine!
- new script action: AddNickname. Gives a character a new nickname to be used by a second character (or by every other character) in dialogue.
- new script action: HideDialogueBox. Allows you to manually hide the dialogue box during dialogue.
- new script action: ShowDialogueBox. Causes a hidden dialogue box to reappear.
- new script action: HideActionsMenu. Allows you to manually hide the actions bar during battle.
- new script action: ShowActionsMenu. Causes a hidden actions bar to reappear.
- new script action: StripItemsFromUnit. Removes all items from the named character's inventory and places them directly into a roster's reserve supplies.
- new script action: AddTriggerCharPortrait. Adds the portrait of whatever character triggered the dialogue, without regard to whether their name is used as speaker for the current branch. Has the same parameters as AddSpeakerPortrait.
- new dialogue trigger type: OnSkillUsed. Triggers dialogue when a given skill is used. To satisfy the trigger, the skill usage must be effective in some way (i.e. not just attacking an ally or healing an enemy). Parameters: skill name, user army, and user name.
- new tag: RemoveAll. This tells the game to remove all existing tags from the unit.
- new condition: Drop Items On Death. Lets you set a particular army to not drop items when a character in that army dies. Parameters: army number, drops items (boolean value--true by default).
- three new special string stats are supported for SetStringByStat: First Name, Last Name, and Nickname. (These are read-only, so don't try using them as a parameter with SetStat.)
- added last name as a supported attribute value for the SetStringByNPC script action.
- the LevelUpArmy script action now works in cut scenes.
- new option for the IfInArea script actions: you can now use an army in the Character Name parameter (e.g. "Army 0", Army 1", and so on) and the game will check for any character belonging to that specific army.
- TargetPreference tags now support the use of custom string variables for their target name parameter.
- changed the runScript attribute in CampActivities.xml to runScripts to make it consistent with the rest of the game.
- updated in-game documentation for the IfBioDetail-type script actions and the -BIO:X- special character with the default bio detail types.
- fixed: the Delete Row and Delete Column algorithms in the Map Editor were faulty, with their use potentially causing the game to lose track of where units should be until the map was reloaded.
- fixed: in the Map Editor, adding a new column to the very rightmost edge of a map would secretly cause the game to add a second column, invisibly offsetting mouseover coordinates and making the selector appear in the wrong spot when mousing over units.
- fixed: in-game documentation for the AddNPC script action was missing the tenth parameter, Blood Relative.
- fixed: in-game documentation for the SetStringByNPC script action was missing blood relative among the supported attribute values listed.
- fixed: getting a unit's load ID via the SetStringByStat script action would return an empty string for proc gen characters. (It now returns the unit's name, which can stand in for its load ID in virtually every use case.)
- fixed: bridges below the level of the terrain would cause the map editor to set the cursor elevation (and the elevation of further objects placed on the space) to the bridge's elevation instead of the ground's.
And that wraps up everything new and improved in this month's update. For next month's update, I'm going to be focused on main plot stuff: at a minimum, one more interrogation scene and one more main plot battle. More to come!
[h2]How can you help?[/h2]
As I continue to move the game toward completion, here's a little reminder that if you're enjoying Together in Battle, leaving a nice review would do a lot to help the game out! More reviews means Steam's algorithm shows Together in Battle to more people; more people seeing Together in Battle means more sales; and more sales mean more of a budget for me to commission new art.
Also: if you happen to follow any cool streamers who enjoy SRPGs and tactics games, feel free to suggest Together in Battle to them! Anything that helps spread the word about this game, really, would be most helpful.
All right, enough of that. I'll be back with our next update in May! 😉
Yours in tactics,
Craig