1. Together in Battle
  2. News
  3. Version 0.6.00: cavern puzzles, SteamDeck support, new skills and events!

Version 0.6.00: cavern puzzles, SteamDeck support, new skills and events!

Greetings, tactics enthusiasts! February may be the shortest month, but I sure didn't let that stop me from adding in a ton of cool stuff to the game.

[h3]The biggest changes this month:[/h3]

  • the game now has a virtual keyboard, allowing text input when playing with a gamepad! With this change, Together in Battle now fully supports gamepad--and along with it, SteamDeck. 🙂



  • in the shop, when mousing over equipment, the game now immediately clues you in to the biggest reason why each character who wants that piece of equipment wants it. If the reason is an increase in a particular stat, the game will display the stat change the new equipment would produce:



  • improved auto-move-and-attack behavior: when double-clicking or shift-clicking an enemy, the game now heavily favors skills for which the target is already in range. (If the character moves, it will generally be because there is no skill that's in range, or because there is a much more effective skill that requires the character to move.)
  • caverns now have a second floor with free exploration that can be accessed by finding the stairs down! (Characters don't regain energy or recover from being Stunned while in free exploration mode, making the navigation a bit of a puzzle.) Cavern depths are generated with one of three different puzzle types, each of which leads to a big treasure if solved.
  • the funeral scene is now complete, with new cutscene art to match!
  • new random event sequence that begins in the arena, has multiple cut scenes, capped off with a dramatic hand-designed battle.
  • new random event: Birthday Fan. This one can play out a variety of different ways depending on the personality of the character you select to participate in it.
  • new skill: Create Fire. Creates Fire on an open space within 2 tiles of the character. Pyrokineticists now learn Create Fire later on in their skill progression.



  • new skill: Create Ice. Creates Ice Spikes on an open space within 2 tiles of the character. Cryokineticists now learn Create Ice early on in their skill progression.
  • new skill: Quick Twirl. Behaves just like Twirl, but the character can both move and use other skills afterward. Costs 2 energy. Characters generated with the dancer background are now set to learn Quick Twirl when they reach high levels.
  • new item: Flower Garland. Worn on the neck; boosts morale by 1.


[h3]Miscellaneous improvements[/h3]

Next up, we have new dialogue, new portrait art, new NPC sprites, improvements to character generation, improvements to procedural battle map generation, combat UI improvements, and more!

  • incorporated new sprites for Dese civilians into the game, replacing the placeholder sprites used in Save the Travelers.



  • proc gen characters are now created with some natural variability in their portrait size--some larger and some smaller--with human women on average a bit smaller than human men.
  • increased the consistency of physical trait effects on character stat growths.
  • increased the maximum number of life skills and personality traits the game will track over the course of a playthrough to avoid duplicates from 12 to 18.
  • when tracking life skills with alternate names (e.g. author/novelist, farmer/gardener, lawyer/judge, etc.), the game now accounts for all variants, not just the variant chosen, thus foreclosing the other variant from being chosen by another character.
  • added a commonality attribute to various life skills so that ones with duplicative effects (like historians, professors, lawyers, and judges) are now collectively no more likely to be chosen than any other.
  • wrote new background dialogue for pickpockets, burglars, and bounty hunters. (Previously, they shared the same background dialogue as gamblers.)
  • it is now possible for a camp activity to involve a second character without that character physically showing up (or having their own activity used up).
  • characters who have a crush on someone now gain a potential camp activity where they spend the evening fantasizing about their crush.
  • artistic characters with a crush on another character can now sketch drawings of their crush at night.
  • reduced the daily chance of a character with -10 morale resigning from 35% to 25%.
  • updated the Mustebeast Tent event so you can now pick a bunkmate from among everyone else in the roster, not just a selection of 4 random characters.
  • the engine now supports changing character clothing within unit portraits (as well as disrobing).
  • new portrait added to the game: town crier.
  • new portrait added to the game: Specter.



  • UI improvement: for moves smashing an enemy up against the edge of the map, the collision damage preview now displays the collision just off the edge of the map instead of layering it under the ordinary damage reticle.
  • UI improvement: removed the "you have already done this today" warning from the Jobs Board button in Kalkerapur, as it is now commonplace to get multiple job opportunities in a given day.
  • you can now talk to Explorers while on a Cavern Exploration job.
  • you can now talk to Caravan Guards while on a Caravan Guarding job.
  • increased the difficulty of caravan guard battles slightly.
  • made Ice Spikes a bit more dangerous and durable, and made Fire a bit easier to extinguish.
  • if you choose to people watch during the Festival of the Ascendant Lights, Gurdeep now has a bit more dialogue and you will now have an opportunity to buy a Flower Garland for 5 aura.
  • you can now ask Rohit for a more in-depth explanation of the Psy Clash rules during the Festival of the Ascendant Lights if you opt to play games.
  • added some animated portraits to the narration before meeting Gurdeep during the Festival of the Ascendant Lights.
  • added Black as a battle background for dark spaces (like caverns and such).
  • new background art for camp activities involve a character discovering or going to a temple!
  • new background art for the riverbank!



  • new background art for the Dusht random event and the gambling camp activity!



  • did a bit of code optimization for when the game checks for whether spaces are solid land.
  • optimized the game's internal operate() function for increased performance.
  • the game's procedural map generator can now generate bridges across large stretches of hazard tiles, not just one-tile gaps.
  • the game's procedural map generator can now generate bridges across gaps between cliffs.
  • characters and objects can now be forced to spawn within a specific range of distances from the player in proc gen maps.
  • the game now properly supports stairs which appear to lead down below the map; there is a now a "StairsDown" variant of all existing stairs objects.
  • improved proc gen map logic for placing stairs (they can now only be placed at elevation 1, and not adjacent to environmental hazards).
  • status effect immunity messages now only pop up if the target is a character. (The player doesn't really need to hear about how boulders and trees are immune to, say, Blinded or Enthralled status.)
  • removed the log and one of the bushes from Battle at the Overgrown Garden to make movement around the map less restrictive.
  • wrote another variant for narration during rainstorms.
  • added a couple of kitten name variants.
  • added animations to the portraits of characters reacting to the player's choices during the Beggar event.
  • improved the sound effect made by floor buttons when they are stepped upon.
  • cleaned up the "Grab" sound effect a bit.
  • added the number of the current save slot to generated log files.


[h3]Bug fixes[/h3]
  • fixed: characters returning from cavern exploration would inappropriately remain on the cavern exploration roster going forward, allowing them to participate in cavern exploration while also remaining available for everything else.
  • fixed: clicking on a bridge or on stairs while moving in exploration mode would cause the selected character to move adjacent to (rather than onto) the clicked object.
  • fixed: when ending dialogue in exploration mode, the game would select the next character in the army rather than re-selecting the last selected character.
  • fixed: the land movement sprite had become misconfigured in movement tiles during Exploration Mode due to (what else) changes to the code made when adding localization support.
  • fixed: shoving an object while in exploration mode could result in the game displaying that object as the current selected unit in the actions bar.
  • fixed a null error that could occur when clicking to Use a triggerable object when in exploration mode.
  • fixed: in the deck viewer, you could accidentally click on cards by clicking in the empty area below them.
  • fixed: triggering an on-death attack for a destructible object (such as Explode) would not grant experience to the character who destroyed the object and triggered the attack.
  • fixed: due to a typo, the game was unable to grab the item template for Fur-Lined Cloaks.
  • fixed: the game was sometimes overwriting proc gen equipment materials values for Together in Battle with old placeholder values, resulting the game not loading material names correctly and therefore failing to generate the correct names for weapon and armor images.
  • fixed: when shown in battle, the info bar was layering on top of UI elements that should have taken priority over it.
  • fixed: AI-controlled characters would not open a closed door during their move onto the door's space if that space happened to be the last space in their move.
  • fixed: flyers who were dunked into water or lava by virtue of being Heavy would, upon swimming to an adjacent tile of liquid terrain after Heavy status wore off, immediately resume flying. Such units must now swim back to land (or a bridge tile) to recover Flying movement.
  • fixed: the AI could use Swim with characters suffering from Immobilized status when in water or lava.
  • fixed: when switching months in the calendar, the game ceased to display the current day correctly.
  • fixed: it was possible (albeit mathematically unlikely) for one or more of a character's NPCs to be generated sharing that character's same first name.
  • fixed: the Poltergeist promotion for the Spirit effectively nerfed Juxtapose by changing it from an after-attack behavior of Use Once to Can Move.
  • fixed: narrowing down a tag by its parameters for RemoveTag was only working in cut scenes, not battles.
  • fixed: when talking to Caravan Guards in a caravan battle, the game referred to them as Explorers.
  • fixed: on rare occasions, the proc gen map algorithm could generate more than one bridge tile on the same space.
  • fixed a range error that could occur when generating spawn positions for destructible objects in proc gen maps.
  • fixed: the gamepad navigator code could sometimes fail to enable navigation to some of the reply buttons in dialogue branches with multiple responses once the reply options finished fading in.
  • fixed: using the StopMusic script action and then resuming the track that was playing prior to StopMusic with PlayMusic would not work, as the game would think that track was already playing.
  • fixed: characters undergoing the second Lost Kitten event were not gaining the new Play with Kitten camp activity as intended due to a scripting error.
  • fixed: character dialogue would animate, with accompanying babble sounds, even as a report covered the dialogue menu onscreen. In a branch with a ShowReport action, the game now initiates dialogue animation and babble sounds only after the report is closed.
  • fixed: one of the "talk" camp activity variants for hot-tempered characters was not setting character facial expressions appropriately.
  • fixed alignment on the floor button object.
  • fixed: the Crickets and CricketsAlt loops were not looping cleanly.
  • fixed: localization-related changes to the code over the past few months caused the game to stop displaying the name of the status effect in "[Status effect] wore off" pop-up messages.
  • corrected an error in the description for Medicated Bandages.
  • fixed: Create skills with particle effects did not produce their particle effects as intended.
  • fixed a few awkwardly worded dialogue variants where characters talk about their life backgrounds.
  • fixed: when shown in battle, particle effect velocity for the info bar was not scaled properly.
  • fixed: one variant of one of the hot-tempered victory barks was ungrammatical.


[h3]Campaign creation suite improvements[/h3]

Finally, we have a ton of improvements to the campaign creation suite, including a brand-new tileset, improved battle map generation, support for editing proc gen equipment materials, multiple new script actions, and more!

  • new tileset added to the map editor: Castle Sandstone! It's the same as the Castle tileset, but sandstone-colored (and thus more appropriate to sandy or arid environs).
  • you can now edit the properties of different materials used in procedurally generating weapons and armor in a custom campaign! When creating a new custom campaign, the game now saves a copy of Materials.xml, which you can manually edit to alter the effects of different equipment being made of--for instance--Steel instead of Bronze, or Boiled Leather instead of Leather.
  • new script action: KnockbackUnit. Pushes the unit in a specified direction for a specified number of spaces, as if they'd been shoved or subjected to a kinetic gust. Three parameters: unit name, direction, and number of spaces.
  • new script action: ChangeClothing. This works like ChangeExpression, but instead of changing facial expression, it changes the body graphic being used in an existing character portrait. Supports all base classes usable by characters of that species. Optional third parameter: if set to true, this will permanently change the clothing used in the named character's portrait wherever it appears throughout the game.
  • commissioned new clothing for human proc gen character portraits, settable with ChangeClothing: Villager, VillagerDese, VillagerDese2, Merchant, MerchantDese, RoyalGuard, Slave, and None.
  • new script action: ReactToDeath. Causes all characters in the specified roster(s) to behave as though the named character died while in their roster. They will suffer a morale penalty based on the strength of their Friendship and Romance with the named unit, will gain a memory of the event, and may become depressed or go into mourning for a period of time. Two parameters: character name, roster number(s).
  • new script action: SetStringByClosestCharacter. This grabs characters based on how close they are in a relationship sense. Sets a string variable equal to the name of the character in the specified army (if used in battle) or roster (if used in a cut scene) who scores as "closest" with the named character: 1 pt per Familiarity level, 15 pts per Friendship level, 20 pts per Romance level. Parameters: Variable Name, Army or Roster Number, Character Name, Exclude Characters In List (optional).
  • when calling LoadConv, the new conversation now keeps the existing trigger character and secondary character of the prior dialogue or script by default for easier scripting.
  • you can now leave the name parameter blank in the AddNPC script action, and so long as the NPC being added is a relative of some kind, the game will auto-generate a name for them (as well as procedurally filling in all the other parameters you left blank).
  • new tag used to affect randomized battlefield placement: AvoidOwnArmy. This causes the game to weight placement of the tagged unit so that members of the unit's own army are treated as enemies, enforcing minimum distance rules.
  • new tag used to affect randomized battlefield placement: AvoidArmyObjects. This causes the game to weight placement of the tagged unit so that destructible objects belonging to various armies are treated as characters, including them when calculating minimum distances.
  • new sound effect: Button Click.
  • new sound effect loop: Running Water.
  • new combat visual effects: CryoCast and PyroCast (used in the new Create Ice and Create Fire skills and adapted from existing visual effects for Cryo Blast and Pyro Blast).
  • new text sprite symbols: Backspace, Confirm, and Arrow White L.
  • the map editor successfully loads and saves the "forced spawn distance from the player" attribute of army groups in proc gen maps.
  • reorganized the army group fields in the Generate Map window of the map editor, added fields for specifying forced spawn distance from the player.
  • within the Generate Map window of the map editor, shifted the player deployment options over to the leftmost column to make better use of space.
  • created a 5th set of object fields in the Generate Map window of the map editor.
  • the map editor will now let you select more than just 2 terrain tilesets, and more than just 1 hazard tileset. (It will still pick only 2 tilesets and 1 hazard set at a time when it generates an instance of the proc gen map, but those will be will pulled from every possible tileset you selected.)
  • added "force spawn distance from player" fields for destructible objects to the Generate Map window of the map editor.
  • the map editor successfully loads and saves the "forced spawn distance from the player" attribute of objects in proc gen maps.
  • improved the game's detection of premade unit load IDs (as opposed to actual class names) for army group units in proc gen maps.
  • added parameter count error-checking to a bunch more script actions.
  • improved in-game documentation of AddCampActivity and LearnCampActivity to better distinguish them.
  • the game now supports Species as an alternative to Race among string stats.
  • fixed: using RemoveTag to strip a unit of its scriptID would remove the tag, but not the associated scriptID marker used to find it by the game.
  • fixed: upon loading proc gen maps, the map editor would strip out colons from any premade unit load IDs within army groups.
  • fixed: the map editor was not setting terrain check boxes correctly within the Generate Map window of the map editor to match the sets used by existing proc gen maps upon loading them.


And that's about the size of it!

[h2]So where are we now?[/h2]

This update brings the game up to version 0.6.00, meaning that I now regard the game as being more than halfway done! I numbered our last update 0.4.500 mainly because the funeral scene wasn't complete yet--but with that now finished and everything else that's been added alongside, I feel comfortable saying that we're now 60% of the way to a version 1.0 release.

I'm very happy with how the game's systems have come together to create a rich and replayable core game loop. By my count, Together in Battle is now up to 176 character skills, 4 job types on the jobs board, and 57 random events (not counting guaranteed plot events, investigation scenes and battles, events exclusive to the arena, or systems-driven character activities and interactions in camp). This is already quite a lot of content--more than you'll find in many games at version 1.0!

Remaining tasks consist largely of adding plot scenes, hand-designed plot battles, and endings. I also have a wish list of new random events I want to write, time permitting. This is a self-financed game, so I've had to be very judicious about what art assets I invest in. I would dearly like to add proper rest animations and hair/skin palette swapping to character sprites, but this would involve a big financial outlay on my part. We'll see about that one.

In summary: the path to version 1.0 is clearer than ever. I want to thank everyone who has been here and walking this path with me: your feedback, bug reports, and general encouragement have been more helpful than you know!

[h2]Reviews and the Discord[/h2]

Leaving feedback isn't the only way you can help: if you're enjoying the game, I do hope you'll leave a review as well. That makes a huge difference to a solo developer like myself! Getting to 50 reviews, in particular, will really boost the game's discoverability. (You see, 50 reviews is the point where Steam stops describing a game's reception as just "Positive" and starts describing it as "Very Positive" or "Overwhelmingly Positive.")

In addition, make sure to come follow along on social media! The Sinister Design Discord is small but friendly, filled with the sort of people who love to discuss tactics, debate which classes are best, or just give helpful advice. If you're here, I'd love to have you as part of our community.

That's all I've got, friends. Until next month!


Tactically yours,

Craig