August 1, 2013

Telepath Tactics July 2013 Update

Hello, folks, and welcome to another monthly update on my progress creating Telepath Tactics! I’m now 3/4ths of the way into my first month of working on this full-time due to my sabbatical from work, and I’m pleased to report that it is awesome. I love the freedom of setting my own schedule–but more than that, I love how much I’m getting done each day. It’s terribly satisfying. I consider this tentative proof of my long-standing suspicion that full-time indie dev would be great for me.

Now then, without further ado: the last month’s progress!

  • We’ve got more character portraits done and are forging ahead with the rest. Here we see the Assassins, Engineers, Mentalists, Psy Healers and Cryokineticists:
  • We’re close to finishing the (rather complicated) Spriggat attack animations. A couple of examples:
  • Lorne Whiting has completed a ton of new destructible object graphics, approximately doubling the number of destructible objects in the game! Included among the new objects are switches, buttons, pressure plates, spike traps, pit traps and “open” variations of each of the game’s doors (see below).
  • Move abilities now animate as they execute.
  • Unit deployment at the start of battle is now supported. You can rearrange your characters, and if you have more characters than there are spawn points, you can swap characters onto the battlefield from your roster as well.
  • Fire Emblem-style weapon degradation is now supported.
  • The OnTalk trigger now supports player-initiated conversations with unallied characters as well as allies.
  • There’s a new trigger type, OnStat, which triggers dialog as soon as the named character’s stats match the parameters set in the trigger.
  • New script action IfItemGoTo advances dialog based on whether a character (or anyone on the team) has a particular item (or has it equipped).
  • DoorsDoors now support fully visible open, closed and locked passability states. Characters next to a closed or open door will have the option to open or close the door, respectively; this action costs no energy, but counts as an attack. Locked doors can only be opened if the character possesses a key. The game will prompt the player if he or she wishes to use a key; doing so will open the door. (Without a key, the player will have to bash down locked doors.)
  • New dialog actions Lock and Unlock allow you to (what else?) dynamically lock and unlock doors around the level.
  • The game now supports Scripts, reusable bunches of dialog actions grouped together under a single script name. (Programmers: think “functions.”) Unlike regular dialog, scripts don’t depend on what branch a dialog tree happens to be on. Scripts can be run an unlimited number of times from just about anywhere using a wide variety of new dialog actions: Run, IfStringRun, IfValRun, IfValsRun, IfStatRun, IfGoneRun, and IfItemRun.
  • You can now program destructible objects with “pressure” triggers that will stop a moving character mid-move and then run a script. This means the game now supports programmable pressure plates–and consequently, traps are now supported as well:

  • Relatedly, there are two new script actions specifically for traps: DamageChar and DamageCharAt.
  • There are now special characters useable in dialog which act as a placeholder for the name and coordinate position of whichever character triggered the dialog/script. Respectively, these are: -NAME-, -LNAME-, -FNAME-, -Y- and -X-.
  • All special placeholder characters now work within replies and actions as well. This means that you can now have scripts and dialogs that dynamically tailor themselves to the specific character who triggered them. (For obvious reasons, this is used with traps.)
  • The game now supports custom string variables, allowing for easy tracking of non-numerical game states (like who the player has allied with or flirted with or betrayed or what have you). The contents of custom string variables can be displayed in dialog using the new -STR:- special character.
  • The game now supports terrain effects, granting bonuses or penalties to characters who stand on any given tile. These can be assigned within TileData.xml, or using the new Space Bonus condition.
  • Tile InfoTiles now have a description attribute containing its “type.” Holding shift and mousing over tiles will now display all relevant information about the tiles (including type, elevation level, damage effects, and stat bonuses / penalties, if any)..
  • During dialog, character portraits have been repositioned so they now sit along the bottom edge of the screen.
  • You can now set starting character Energy on an army-by-army basis using the new Fatigue condition.
  • New condition Post-Battle Looting will enter exploration mode after the player wins a battle if the game detects any item sacks lying uncollected around the battlefield. The player will then be able to run around collecting the loot, then exit the battle at their leisure.
  • The game will now prompt you for confirmation after you click the End Turn button. (See here.)
  • FrozenFrozen characters now turn blue; burning characters now turn burnt-orange.
  • The game now supports static “slide show” cut scenes in addition to scrolling text cut scenes. In addition to changing text and background between “slides,” you can actually run fully functional dialog trees within static cut scenes.
  • The map editor now lets you assign elevation levels up to 99 (previously, it would cap out at elevation 9).
  • I’ve made big improvements to the way random item drops work in multiplayer.
  • The title screen now displays a version number.
  • I fixed a ton of bugs. (But what else is new.)

Phew! So, as you can see, that’s a much longer list of completed features than we’ve had in previous months. Going on this sabbatical was clearly a good choice; personally, I can’t wait to see what I accomplish in the next two to three months!

And don’t forget, folks: I post regular updates on Twitter and on the Dev Log, just in case you want a more regular stream of information about the development of Telepath Tactics. Until next time!