1. Telepath Tactics Liberated
  2. News

Telepath Tactics Liberated News

Together in Battle has launched into early access!

Greetings, tactics fans! After many years of work, the follow-up game to Telepath Tactics is now available to play on Steam early access!

Together in Battle is a procedural team management strategy RPG that follows the events of Telepath Tactics. Here's the premise:

You’ve come to the island kingdom of Dese with a mission: enter the gladiatorial games, find loyal fighters, and train. But things grow complicated when a sinister conspiracy threatens to throw Dese itself into chaos. Fight deep, turn-based tactical battles; manage resources; navigate random events; watch your characters grow together via a brand-new, emergent social sim system. Your characters, the relationships they form, and the trials you face together will be different every time you play!

[previewyoutube][/previewyoutube]

You can expect the same killer combat mechanics as you saw in Telepath Tactics Liberated, but with more resource management; new in-depth morale, mood, and character relationship systems; random events with multiple possible outcomes; and a blend of bite-sized proc gen arena battles and hand-designed side quest and plot fights.

Because it's in early access, Together in Battle is cheaper now than it will be upon final release. You can currently pick it up for $14.99, with an additional 10% discount for launch week.

Why not give it a try? I'm dying to hear your feedback! 😉


Yours in tactics,

Craig

Patch version 1.0.46: Brighter baddies, cleverer controls!

Greetings, tactics aficionados! Last month's update was small due to how much time I was putting in getting Together in Battle ready for release. Even though TIB releases in just six days, I've decided to set aside some time to push another, larger update for TTL anyway just because I appreciate you all so much. 🙂

Without further ado, here are this month's improvements to the game, starting with AI!

- the AI now recognizes Fire as an environmental hazard it can shove enemy units into.

- the AI now recognizes that flying enemies won't take environmental damage from being shoved onto terrain that flyers can naturally pass over (like water, lava, or chasms).

- the AI now accounts for environmental damage when evaluating the danger of ending its move on a space.

- on the highest AI settings, the game now accounts for collision damage it can cause via knockback skills (i.e. smashing characters into walls, objects, or each other by using Shove, Kinetic Gust, Smash, Charge, etc.)

- the game AI no longer treats skill scripts as rendering a skill inherently useful even though the skill does no damage and imparts no status effects. (This keeps the AI from incessantly using skills like Juxtapose, Trade, and Twirl when it has no better moves.)

- fixed: the AI would simply never complete the turn of a character who wandered into a pressure trigger but didn't actually end up stunned or otherwise unable to act (e.g. from wandering into Caltrops).

- fixed: in some situations, it was possible for the AI to lock up at the start of its turn when BeforeTurn dialogue spawned.

- a major usability buff for the gamepad: attack-tile selection behavior has been rewritten so it now "snaps" to the closest attack tile based on the direction you pressed instead of just cycling through the attack tiles in an arbitrary order! This makes targeting attacks with the gamepad much quicker and more intuitive.

- slowed down the battlefield cursor when playing in gamepad mode to make it easier to avoid overshooting small movements.

- fixed: in gamepad mode, using the cancel ("B") button to exit the main menu after opening it during dialogue would result in the dialogue box not regaining focus.

- upon finishing deployment in a map with fog of war, the game now reveals tiles for the newly deployed characters automatically based on their Perception stat without you having to move them.

- fixed: dynamic palette-swapping during battle (e.g. changing colors when characters switch army allegiances) had been broken by version 1.0.45.

- fixed: it was possible to undo after using Swim.

- fixed an inconsistency in the code that was causing flying characters spawning on spaces with a fly-only object to spawn one elevation level lower than intended.

- fixed: the game had stopped fully dropping flying characters into water or lava when afflicted with the Heavy status effect.

- fixed: the game had stopped fully dropping levitating, land-based characters into water or lava when the Levitating status effect ended.

- fixed: characters being created from premade unit templates had their tags applied twice.

- fixed: the game was including destructible objects on targeted spaces as secondary characters for purposes of Heal and Attack barks, which could lead to situations where the character saying the bark could address the inanimate object by name (e.g. telling "Reeds" that they were going to be healed).

- fixed a bug in which incomplete fading out of dialogue babble sounds would cause subsequent sound effects played in the same channel to play at the wrong volume.

- fixed: upon changing scenes in the middle of a fade-out of music or a sound loop, if the scene transition finished before the fade-out did, the game would reset that sound's volume to the default and prevent the fade-out from finishing.

- fixed: the game would lock up when attempting to start a new game while not connected to Steam.

- fixed: space selector appeared in the top-left of the map, not aligned to any space, prior to the start of turn 0 in battle.

- fixed: victory fanfare could sometimes start playing before the appearance of the victory box at the end of battle.

- fixed: the game still displayed "-0" damage popups for skills that don't normally deal damage when those skills were used by the AI.

- fixed: the game was creating proc gen golem characters without assigning them the golem babble sound set.


Finally, we have some improvements specifically for campaign creators:

- new destructible objects are now available in-game: Thorn Vines, Ice Spikes, and Explosive Tree.

- Fire now deals ongoing environmental damage each turn a unit stands in it.

- the AddCondition script action now supports the Set Army Alliance condition.

- new stat supported by UnitsToList: Health Left. This automatically calculates the character's current health by deducting Damage from Health.

- new stat supported by UnitsToList: Energy Left. This automatically calculates the character's current energy by deducting Drain from Energy.

- shuffled the AIHandicap values around a bit to account for the AI's new capabilities. They are now 0: full intelligence. 1: disregards space safety. 2: disregards backstab. 3: disregards lethal hits. 4: disregards knockback. 5: disregards attack effectiveness. 6: doesn't rotate to avoid backstabs. 7: doesn't prioritize healers or 'Protect Char' units. 8: actively avoids backstabbing. 9: disregards counterattacks and on-death attacks from enemies.

- fixed: the -NAME- and -CHAR2- special characters would remain unchanged if the target unit had no name. These now display its class name in that circumstance.

- fixed: destructible objects in proc gen maps were being created with a blank facing instead of a facing of "None", which in turn would interact with the game's logic in such a way that attacks from assassins against them would be counted as sidestabs.


And that's about it! Together in Battle now comes out in early access in just six short days. I'm going to be primarily focused on developing that for the time being, but I'll still be keeping an eye on the TTL forums for any bugs or other issues that need addressing. Thanks once again for all your support! It means a lot to me. 🙂


Yours in tactics,

Craig

Versions 1.0.45a - 1.0.45e

Hey folks! Just a small update on versions 1.0.45a through 1.0.45e here. I've been uploading these sub-versions as I run into and fix a few unusual edge cases with gamepad controls (almost all of them involving hitting the Start button to call up the main battle menu at unexpected times).

As a consequence of continued development on Together in Battle, some other improvements to the game engine accompany these gamepad fixes:

- golems now have a short "Stomp" animation that is used for self-targeting skills like Engine Boost and Self Repair. This speeds up the use of these skills considerably.

- gasul now have dedicated Shove and Pull animations, with shove doubling as a casting animation for most psy skills.

- TTL now supports looping pixel art animations for destructible objects! As the (so far, one and only) example of this used in the engine, TTL now has an animated Fire destructible object. Walking into (or more likely, being shoved or thrown into) fire causes 15 heat damage; attacking fire from melee causes the attacker to receive a 10 burn damage. (Note that Fire isn't used in the main campaign; it's purely a new toy for player-created campaigns.)

- improved the appearance of lit tent objects.

- fixed: tall grass objects did not actually apply a dodge bonus to units standing in them.

- various improvements to fog of war: the game no longer displays the names of skills being used under fog of war; the blinking status effect displayer no longer appears when the corresponding unit is under fog of war; impact sparks, static visual effects, pop-up text and animated health/energy bars no longer appear over spaces covered by fog of war when the AI attacks scenery or another army. In general, fog of war now legitimately obscures everything about AI character actions except for the sounds, allowing you to guess based on audio cues.

- the LightBackground action now works for backgrounds in battle as well.

- created a new Crowd Murmuring sound effect.

- reduced the volume on the Rain and Wind sound loops, preserving the old high-amplitude versions as Rain Loud and Wind Loud.

- fixed: characters changing classes did not adopt the default skill animation of their new class's sprite set.

- fixed: the game would not trigger OnVictory dialogue for any army that was not player-controlled.

- fixed: surrendering would not trigger OnVictory dialogue for any enemy armies.

- fixed: item button menus for the rightmost items in the reserve supplies screen had their positions reset, requiring me to once again go in and reposition them by hand so they wouldn't go offscreen.

- fixed: music volume would reset to a level multiple times higher than the global music volume level under some circumstances.

- fixed: units would sometimes fail to become tinted when spawning after deployment under alternate global lighting conditions.

- added an invariantculture argument to game's various float.Parse() calls to avoid issues with the game failing to parse decimals for European users.

Patch version 1.0.45: Greater gamepad support, more vivacious visuals!

Greetings, tactics fans! February may be the shortest month, but as you'll soon observe, I've been incredibly busy racking up a ton of welcome changes to Telepath Tactics Liberated.

This month sees lots of small graphical improvements; a lot of fixes and improvements relating to the UI (with a special focus on gamepad support); new AI capabilities; miscellaneous bug fixes; an improved Disarmed status effect; and lots of new tools for campaign creators. Let's get into all the changes!

First up, we have graphical improvements, equipment usage by the AI, and more:

-- adjusted the height of the Pyro, Cryo, Shadow, and Light Blast explosion animations to properly align with their projectiles.

-- fixed a graphical glitch involving the left- and right-facing visual effect animations for Light Breath and Light Breath 2.

-- cleaned up the graphic for the 2D particle "Sparkle."

-- finally fixed that annoying bug where stray 2D particles could end up "stuck" at the top-left corner of the battlefield.



-- improved the look of the game's rain particles in battle.

-- fixed: it was sometimes possible to see the "corners" of the weather particle emitter box in battle under certain conditions.

-- improved the shop tutorial; it is now nicer-looking, spread across two pages, and provides more relevant information.

-- the game now remembers if you've completed the shop tutorial and won't show it automatically on subsequent playthroughs.

-- fixed: things which caused a character to be instantly placed on a specific space in battle (e.g. undoing) could sometimes mess up that character's z-sorting.

-- the AI will now equip weapons, armor, and other items if its characters (a) have something equippable in their inventories and (b) they have the relevant equipment slot unused.

-- successfully switched the cut scene backgrounds over to an asset bundle streaming system. This sort of thing is supposed to reduce build times, and can theoretically help with memory management on more resource-limited systems.

-- improved background image compression; converted the background asset bundle to use chunk compression.

-- fixed: the Escape button would not act as a click on the report screen in cut scenes.

-- fixed: in the character screen in battle, you could start the process of giving an item to an adjacent character by selecting Give for an item, then immediately reopen the character screen, use or drop the item, and finally return to the battlefield and click the red give tile to give a pristine copy of that item to an ally.


There are a lot of gamepad improvements and fixes:

-- created sprites for the A, B, X, and Y gamepad buttons; integrated them into the engine as text sprites.

-- updated the game's various tutorials to now use gamepad button glyphs and instruct the player on gamepad-specific controls if it detects the player is using a gamepad (or playing on Steamdeck).

-- the game now uses "Press (A)" instead of "Click" for continue prompts in the dialogue menu and cut scene narration box when the player is using a gamepad.

-- fixed: the gamepad cursor was misaligned for the screenshake adjustment buttons in the settings menu while on the title screen or in battle.

-- fixed: the gamepad cursor had become misaligned for character screen elements while in cut scenes.

-- fixed: after using the start button to open the main menu in cut scenes, the game incorrectly treated game settings as the current menu for purposes of gamepad navigation.

-- fixed: the gamepad cursor could navigate to the "switch page" buttons in the reserve supplies screen even when they were invisible.

-- fixed undesirable gamepad cursor behavior when switching between dialogue branches with multiple replies and those without multiple replies within dialogue trees.

-- added gamepad controls for the options menu and settings screen in cut scenes.

-- added gamepad support to the info bar.

-- fixed: in cut scenes, gamepad focus would not be restored to custom menus when backing out of other gamepad menus.

-- made the options button selectable with the gamepad when in a custom menu.

-- fixed: the game treated invisible custom menu elements as selectable with the gamepad cursor.

-- fixed: gamepad controls for the report screen did not function properly in cut scenes.

-- fixed: upon returning to the title screen from a game, remaining on the screen in a submenu for the length of the intro movie while using gamepad controls would result in the game inappropriately pulling gamepad focus onto the main menu.


And finally, we have more goodies for campaign creators, including an overhaul of the Disarmed status effect:

-- the NewBackground script action now allows you to load backgrounds in battle! They will appear behind the battlefield.

-- new background added: Arena_Interior.

-- prettied up heart portrait particles.

-- the Run reply type now supports passing multiple parameters.

-- new script action: LevelUpArmy. Works like LevelUp, but it affects an entire army at once instead of just one character.

-- the skill editor now has a checkbox that can be used to toggle whether a skill is considered a weapon skill by the game for purposes of the Disarmed status effect.

-- the game can now distinguish between weapon-based skills and non-weapon-based skills, and will now prevent characters from counterattacking with weapon-based skills while subject to the Disarmed status effect even if they don't have a weapon explicitly in their inventory.

-- created a Disarmed icon; the game now displays the Disarmed status effect for the rest of the turn when an enemy is disarmed.

-- changed the Disarm skill's element from Mental to Slash, increased the base chance of success to 100%, changed the cost to 4 and made it end the turn.

-- new skill: Disarming Strike. Deals basic sword damage with a 60% chance to disarm the target; can be used once per turn and doesn't end the turn, but it costs 6 energy.

-- the spirit's Possess skill now causes the user to become Hidden until their next turn.

-- fixed: the game would strip Hidden status from attackers at the conclusion of an attack even if the skill they attacked with was the thing that gave them Hidden status to begin with.

-- fixed: the -ATTACKER- special character was inappropriately referencing the attack target instead of the attacker when used in skill scripts.

-- in skill scripts, the skill target is now treated as the triggering character and the user of the skill is now the secondary character.

-- new special character: -ROSTERNUM-. Gets changed to whatever the number of the current roster is.

-- fixed: head 12 in lissit portraits was missing data for mouth 8.

-- improved documentation of the LoadConv reply type.

-- fixed some outdated info in the in-game documentation relating to generate unit-type actions, specifically with respect to the first salary parameter.

-- fixed: a Wait action queued up after a WaitForDialogue action would cause the wait timer to run concurrently with the wait-for-dialogue condition; and if the wait timer counted down to zero before the dialogue finished animating, the game would proceed with executing actions anyway! The game now waits for dialogue to conclude if a WaitForDialogue action was executed before commencing the countdown for a subsequent wait timer.

-- fixed: SkillProgToList would not always generate the list in ascending numerical order of the level the skills are learned.

-- fixed: the game was not recognizing when a dialogue branch was marked for input text within PersistentDialogue.xml.

-- new script action: GenerateItemName. Causes the game to randomly generate a (hopefully) cool-sounding name for a unique weapon, then sets custom string _UniqueItemName with the name generated.

-- greatly improved documentation for the CreateUniqueItem script action.

-- fixed: a typo in the logic for CreateUniqueItem was causing it to disregard mandatory tags.

-- new script actions: ShowCalendarButton and HideCalendarButton, which can be used to toggle visibility on a button the player can use to examine the in-game calendar during cut scenes.

-- you can now scroll through characters in the character screen while within the army overview screen using the mouse wheel (or, if in gamepad mode, the shoulder buttons).

-- fixed: the reverse match method in CullListByList was not working properly.


Annnnd that's about all for now when it comes to TTL! I've been working extremely hard getting Together in Battle ready for its April 25th launch, as it has to be ready to go out to reviewers next month. It's been a real whirlwind of rounding up things that I've been putting off completing and then getting them good and done.

I really think you all are going to love Together in Battle; it has nearly everything that makes Telepath Tactics Liberated special, plus a much more open structure with a lot of latitude for player choice and (gasp) actual role-playing. This time, we've got loads of character customization via the in-game trainer, and tons of replayability via the...well, everything.

You see a lot of "strategy roguelikes" these days, but they're mostly just card games focused on short "runs." It's rare to get one that leans into providing a true long-form role-playing adventure, and pretty much unheard of to get one that's also a deep SRPG at its core. I think that makes TIB pretty special.

Anyway, enough of my blabbering--I have a game to prepare! See you all in a month or two. 😉


Tactically yours,

Craig

Patch version 1.0.44: Prettier particles, better balance!

Greetings, tactics fans! Over this past month, I've made some further improvements to the engine, prettying up some more aspects of the game's visual presentation and adding a variety of other improvements to boot.

Perhaps the biggest graphical change this patch is a fix to something that was holding back 2D particle effects: namely, shader settings for different particles were transferring between particle materials, leading to inconsistent (and sometimes glaringly incorrect) emissive lighting. This was the culprit behind victory screen fireworks abruptly not glowing anymore partway through the animation, as well as spark particles during level-ups not glowing as intended. If it moves and glows and it's part of the UI, it now looks much nicer!



Apart from that, I added a new setting to tone down (or turn off) screenshake for players who dislike that effect, made a few more balance improvements, added some further graphical flourishes, and fixed a few obscure bugs. Here's the list of changes:

-- added a new setting to the Settings screen that lets you halve the strength of the game's screen shake effects (if you prefer them to be subtler) or to just turn them off entirely.

-- toned down the magnitude of default screen shake for some of the heavier attacks.

-- level scaling now works more aggressively in favor of characters who are behind the level curve, making it easier to train up underleveled characters. (Characters who are overleveled compared to their opponents still get a 10% penalty per point of level difference, but characters who are underleveled now get a much higher 15% experience boost per level that the opponent has over them.)

-- raised the cap for each instance of scaled experience to 300% of unscaled experience. (For instance: if a move would have granted the character 45 experience normally, experience scaling can now cause it to grant as much as 135 experience.)

-- massively increased the power of Defiant Stance: it now gives +100% strength until the user's next turn, making it much more viable as an alternative to simply attacking.

-- increased the base chance of applying Frozen status with Cryo Cross from 50% to 75%, making it less dangerous (and more beneficial!) to use near large groups of enemies.

-- boosted the spread of sparkle particle effects on the supplies button upon acquiring a new item in the shop interface, making it harder to miss.

-- reduced the speed of the "spending money" animation in the info bar so it's more satisfying (and harder to miss).

-- fixed: the game would default the gamepad cursor to the dialogue box on branches with multiple replies.

-- fixed: members of army 99 (i.e. most destructible objects) with status effects, upon reloading a mid-battle save, would inappropriately step their status effects an additional time.

-- fixed: a character receiving both non-Shield damage and Shield damage (typically, healing) from multiple sources simultaneously would cause the game to lock up. (For instance: at the start of the turn, a character with both Burning and Regenerating status effects active at once would make the game throw an error.)

-- fixed: the level-up screen was keeping "None" onscreen as part of equipment mastery text even after first learning an equipment mastery.

-- fixed: tooltips for physical attributes in the character screen were not displaying correctly when playing in gamepad mode.

-- fixed: it was possible for custom list data to bleed over from a saved game when starting a new game.


That covers the changes that impact the main campaign, but there are some treats here specifically for custom campaign creators as well!

-- new script action: InterfaceArmyColor. Lets you change the default army color used in cut scene interface elements like the recruitment screen or the reserve supplies screen from Blue to any other supported color.

-- the game now supports creating arbitrary stats for characters using the SetStat action! These won't appear in the UI, but they can be used to invisibly store integers specific to each character (e.g. enemies they've slain, days they've been on the team, etc.) These, in turn, can then be referenced by other script actions.

-- now supported: a reply UI for dialogue where instead of showing text options, the game displays a list of the player's characters by portrait. Clicking a character will immediately set them as the trigger character for the dialogue going forward, then register a click on "reply 0" for dialogue tree navigation purposes. (To make use of this, use the special character -ShowUnits- as the text of the first reply in the dialogue branch where you want this special reply UI to appear.)

-- Run (and all IfXRun-type script actions that support passing script parameters) can now take an unlimited number of script parameters; just keep adding more name-value pairs onto the end until you're done!

-- added support for passing script parameters to IfItemRun.

-- added support for a new dialogue trigger type: OnPanCam. This triggers dialogue as soon as the player pans the battlefield camera using the mouse or keyboard and releases the relevant mouse button/key. One optional parameter: turn number.

-- added Species to the attributes supported by the IfAttribute script actions.

-- the game now processes special characters in the warning messages for custom menu buttons.

-- created a new "WhistleDown" sound effect that's intended to signal a character's worsening emotional state (rather than signal a character falling down a bottomless chasm).

-- new skill available to use: Trade. It's essentially Twirl, but it only works with allied characters (whereas Twirl can be used on enemies).

That's all for TTL this month, folks. In other news, I just announced Together in Battle's release date yesterday: it's coming to Steam April 25th, so mark your calendars. It's gonna be a doozy! 😉

Until next time...


Yours in tactics,

Craig