The Sinister Design Forums

Games => Together in Battle => Topic started by: CraigStern on February 06, 2020, 04:37:30 PM

Title: Together in Battle Dev Log
Post by: CraigStern on February 06, 2020, 04:37:30 PM
Now that I've announced the game and its identity is no longer a secret, I'll be continuing the old developer's log (http://sinisterdesign.net/forum/index.php?topic=1769.0) here! (Wow, has it really been more than three and a half years since I started that thing?! Sheesh!)

We'll start modestly:

-- fixed: inventory buttons would inappropriately display in the recruitment screen when a recruit had nothing in their inventory.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on February 07, 2020, 04:21:48 PM
-- created a new visual effect for when character relationships improve! :)

-- changed some log commands that were inappropriately labeling normal outcomes as errors.

-- increased the deployment barks each procedurally generated character has from 2 to 3.

-- fixed: Unity was rounding 0.5 down to 0 instead of up to 1, which is apparently because Mathf.RoundToInt() just uses C#'s default rounding (https://forum.unity.com/threads/mathf-roundtoint.491182/), which was designed for banks and not for games.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on February 09, 2020, 12:42:53 PM
-- added some extra UI sound effects that were missing for the army overview and reserve supplies screens.

-- improved the "relationship improving" visual effect; added a sound effect accompanying it.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on February 10, 2020, 04:33:40 PM
-- new script action: PortraitParticles. Lets you spawn 2D particle effects around a character's face in their portrait. Two parameters: portrait reference name, and particles preset name.

-- continued to improve the "relationship improving" visual effects.

-- added subtle blob shadows below 2D characters and objects.

-- fixed: the swordsman's Shove animation sprite sheet was being compressed inappropriately, leading to it not being palette swapped as intended.

-- fixed: the promotion process would throw a null error when undergone by characters without a Starting Skills stat (i.e. most premade, non-generated units).

-- fixed: save file slots would allow long campaign names to overflow into subsequent lines.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on February 11, 2020, 04:33:18 PM
-- created a new camp activity, Restaurant, in which one or more characters heads into town and spends the evening trying out a new restaurant.

-- added the restaurant activity as a potential outcome to the evening event where a character asks another character out on a date; wrote new dialogue variants for the event.

-- added "relationship improving" visual effects to the variants in all random scripted events where character relationships improve.

-- the game now keeps the existing talk symbol between lines of dialogue where the speaker doesn't change.

-- fixed: the talk symbol would continue to pulse over talking characters even as the dialogue interface disappeared while they moved from a MoveUnit action.

-- fixed: purely narrated, dialogue-free camp activities were not affecting character familiarity, friendship, or romance values.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on February 12, 2020, 04:28:37 PM
-- when displaying a dialogue branch with multiple replies, the replies are now hidden until the text finishes animating (or you click to skip the animation), at which point they visibly fade in over a fraction of a second. (It looks much, much nicer this way, and doesn't block the entire scene from the outset.)

-- new script action: SetNPCAttribute. Lets you change the value for an attribute belonging to a character's NPC (for instance, changing associated feeling from angry to happy, or alive from true to false). Parameters: (1) Character Name, (2) NPC Name, (3) Attribute Type, and (4) New Value.

-- new script action: AddNPC. Lets you add a new NPC to a character. Parameters: Character Name, NPC First Name, NPC Last Name, NPC Nickname, Relation, Species, Gender (Male Female or None), Alive (true or false), Location, and Associated Feeling.

-- broke the test settings interface out from the campaign editor into its own module so that instances of it can be placed within the map editor and cut scene editor for faster testing of scenes.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on February 13, 2020, 04:14:37 PM
-- you can now test scenes directly from the cut scene editor and map editor.

-- when you return from testing a scene, you return to the editor you hit Test in and the scene you were working on is automatically reloaded.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on February 14, 2020, 04:22:57 PM
Sketched out plans for procedural battle generation that builds upon the existing proc gen terrain, player spawns, and randomized enemy spawn code. Drafted up a contract for a programmer to come in and help work on that while I focus on the...everything else.

-- fixed: running a GiveItem action directed at the reserve supplies for the current roster while the shop interface is open in a cut scene would cause the item to never show up in the reserve supplies.

-- fixed: loading a cut scene that calls UnitsToList in the cut scene editor could make the game throw a null error.

-- fixed: a particular snow-water transition tile was incorrectly rotated.

-- fixed: the options screen was calling the wrong function to return to the options screen from within cut scenes.

-- fixed: changes to the dialogue and script editor from a few weeks ago apparently did not populate to the instance within the cut scene editor, causing it to throw null errors when creating new dialogue or scripts.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on February 16, 2020, 09:54:34 AM
-- adjusted the sound effect timing on Wrench, Mind Blast, and most axe-based attacks to more closely match up with their animations.

-- added in some missing interface sound effects.

-- fixed: the spearman's Spear attack animation wasn't getting palette swapped due to incorrect compression settings on the sprite sheet.

-- fixed: compression settings on the Mind Blast animation were causing visual artifacts to appear during the animation.

-- fixed: it was possible for skills granted to characters by life background, personality, or physical traits with placement intended for early on in the skill progression to supplant starting skills, resulting in characters not having access to crucial abilities at level 1.

-- fixed: music tracks that began playing while the game's global music volume was set to 0 would not become louder when going into the options menu and increasing the global music volume.

-- fixed: the "done typing" reply wasn't fading in on dialogue branches with text input enabled.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on February 17, 2020, 04:31:04 PM
Hired the aforementioned programmer; worked on getting the game set up for Unity Collaborate so that said programmer can work on code alongside me.

-- Create skills now create whatever they're creating with timing appropriate to the Build animation.

-- improved a few character barks.

-- improved the "familiarity/friendship up" sound effects, as well as the "mantis gallop" sound effect.

-- fixed: the game was double-counting starting skills granted to characters by life background, personality, or physical traits, resulting in those characters knowing more skills at level 1 than they should have.

-- fixed: dialogue speech bubbles would sometimes fail to appear when they should.

-- fixed: Create and Move attacks weren't queuing up sound or visual effects.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on February 19, 2020, 07:31:35 AM
-- condensed the sprite sheets for Cryo Cross, Dark Vortex and Light Bomb for performance reasons.

-- added visual effects for Cryo Cross, Dark Vortex and Light Bomb into the game.

-- added a height offset parameter to visual effects to adjust the positioning of certain attack VFX which were not displaying in the correct spot.

-- updated the SpawnVisualEffect and SpawnVisualEffectAt script actions with the new parameter.

-- fixed: VFX for Mind Blast spawning too high, Mind Shield spawning too high, and the various stages of each elemental Blast skill spawning either too low or too high.

-- fixed: AOE skills whose last targeted space was empty would register as not hitting anyone for purposes of visual or sound effects, and they would not play any.

-- fixed: the Cryo Cross AOE was misconfigured so that it struck the user as well.

-- fixed: it was possible to click "through" the actions bar in battle.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on February 19, 2020, 02:04:28 PM
-- created a "breathing" idle animation via squash-and-stretch, automatically applied to characters while they are in the Rest state.

-- gave the Mentalist a new Energy-draining skill: Nauseate. Less powerful than the Spirit's Drain skill, but it has range comparable to Terror and Dazzle, and can cause Slowed and Sick. Speaking of which...

-- the status effect Sick can now be caused by skills; it lasts 3 rounds and does the same thing as when it is placed via AddMood (that is, it doubles the energy cost of skills and causes resting to not restore energy).

-- created the Nauseate icon.

-- buffed the Spirit's Drain skill by giving it free targeting and doubling its ability to cause Clouded.

-- added Slowed, Weakened, Clouded, and Sick to the status effects that destructible objects are immune to.

-- the properties of status effects can now be altered on an ad hoc basis by appending |Length:x, |Power:x, and |Chance:x to the status effect name (where x is the new value to use for the status effect's length in rounds, power, or chance out of 100 to take effect). For example:

Code: [Select]
Strengthened|Length:1
This will apply the Strengthened status effect and cause it to last for only a single round (instead of its default length of 4 rounds).

-- the SpawnFloatingText script action is now supported in cut scenes, where it spawns pop-up text over the named character portrait.

-- the game now explicitly states via pop-up text when camp activities and events alter character familiarity, friendship, or romance.

-- new supported pop-up text color: pink.

-- when skills affect stats other than health or energy, the game now explicitly lists the affected stat after the number in the "damage" pop-up.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on February 20, 2020, 03:48:56 PM
-- new skill: Defiant Stance. The unit ends their turn but gets +25% Strength until their next turn (effectively buffing up the power of all their counterattacks).

-- every class that automatically got Preemptive Stance in its skill progression now has a 50/50 chance of getting either Preemptive Stance or Defiant Stance.

-- Dazzle now has a base 100% chance of causing Blinded; Nauseate now has a base 75% chance of causing Sick.

-- the skill editor now lets you copy the sound and visual effects from one of the game's default skills.

-- added support for tabbing between fields to the skill editor.

-- added support for tabbing between fields to the item editor.

-- improved the look of familiarity, friendship, and romance pop-up text.

-- 2D particles can now be set to change color over their lifetime.

-- created and implemented a new "hearts dropping and dying" visual effect for when inter-character friendship or romance values drop due to a camp activity or event.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on February 21, 2020, 03:19:08 PM
-- cleaned up the "Sinister Design" intro sound and improved the "Breaking" sound effect.

-- there is now a sound effect accompanying the "hearts dropping and dying" visual effect when inter-character friendship or romance values drop.

-- new skill: Quick Shot. A half-damage bow attack with slightly reduced range that lets the user keep moving and use another skill afterwards. Bowmen now have a 50/50 chance to learn this in place of Split Shot 2 late in their skill progression.

-- rewrote the way the skill tooltip displays "damage to energy" for skills that affect energy. Instead of just displaying the energy icon in the damage slot, the game now maintains the damage icon and adds the energy icon as well after the number.

-- cleaned up a few of the procedural character dialogue lines.

-- fixed: the text next to the range icon on skill tooltips would sometimes get cut off on some displays.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on February 22, 2020, 05:14:08 PM
Ran a playtest last night to catch bugs and play experience issues before PAX, and today is devoted to fixing as many of them as humanly possible!

-- added a "whiff" sound effect to accompany a dodged attack.

-- added a sound effect to triggering snare traps.

-- applied new pop-up text and "dying heart" particle effects to narrated camp activities as well (in addition to dialogue and random camp events).

-- slowed down pop-up text in cut scenes and just generally improved the presentation of "relationship up" visual indicators.

-- sped up the blinking status effect indicator in battle.

-- halved the delay on displaying "Click to continue" in dialogue and narration boxes.

-- reduced the length of character sickness from random events.

-- renamed the skill Melt to Defrost to make it clear that it's not an offensive skill.

-- the game now changes the text that says "Salary" to "Price" in the recruitment screen when inspecting golems and spirits (who don't have ongoing payroll expenses).

-- adjusted the size of the salary text box to keep text sizing consistent for salaries over 999.

-- updated the mouseover description for the Arena to make it clear that it no longer necessarily boosts team morale.

-- added the "talking" indicator to all of the arena manager's cut scene dialogue.

-- upped the opacity of redded-out buttons in the item expandable options to 100%.

-- fixed a few typos.

-- fixed: due to a misformatted script action, it was sometimes possible to make a character bunk with themselves during a particular camp event.

-- fixed: the event music from plot event 1 would keep playing after it ended.

-- fixed: the game would try to generate bio details and NPCs for spirits and golems, and then throw errors when it couldn't generate golem family members.

-- fixed: drop shadows would display incorrectly on low graphics settings.

-- fixed: the camera would jump when moving the cursor over the Actions Bar while click-and-dragging terrain.

-- fixed: when an attack was canceled from the window warning about attacking an ally or healing an enemy, the character would lose the attack cost in energy as if they'd gone through with it.

-- fixed: load save game slot 4 was directing to slot 0 for some reason.

-- fixed: the game was announcing the same status effect twice via pop-up text under certain circumstances.

-- fixed: the game was sometimes leaving bar spawners in place after a combat exchange, resulting in static health bars appearing (and remaining) in inappropriate locations after moving a unit who had just been in that exchange.

-- fixed: changes to the game's "round float to int" code resulted in negative numbers being rounded incorrectly, causing various scripted events to not escape properly when necessary preconditions were not met.

-- fixed: Mechanic portrait inappropriately remained onscreen when recruiting golems in camp event.

-- fixed: one frame of each elemental Blast attack was misaligned.

-- fixed: when a character reacted to a friend falling in battle, the reaction line would delivered by the attacking enemy unit instead of the friend.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on February 23, 2020, 02:41:17 PM
Created a demo version of the game for PAX East!

-- it is now possible to use a list of characters as part of the stat name parameter for SetStat with the Familiarity, Friendship, and Romance stats. In place of a character name, simply use List:List Name.

For example, this will create a list of every unit other than Larry, name it IntroduceToLarry, then set a familiarity floor of 5 for Larry with respect to all those units in the list:

Code: [Select]
Action>UnitsToList/IntroduceToLarry,,Race:true:Golem|Race:true:Spirit|Name:true:Larry</Action>
<Action>SetStat/Larry,Familiarity List:IntroduceToLarry,f:5</Action>

-- the recruitment interface can now be passed a minimum recruitment value; the player must recruit at least that many characters in order to leave the interface.

-- made the introvert character greetings more interesting.

-- fixed a small typo in one of the blunt character greetings.

-- fixed: it was possible to bypass cut scenes with menus by clicking the background at the exact right moment between when the scene faded in and the menu appeared onscreen.

-- fixed: code for the SetStat with the Familiarity, Friendship, and Romance stats was not correctly set up for the formatting currently used by those actions.

-- fixed: cut scene dialogue in a frame of narration that automatically ran and then closed via EndConvImmediately would lock the player out of clicking the background to advance the narration.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on February 24, 2020, 03:11:01 PM
Designed, ordered business cards. On the development front:

-- added the all-important time-out timer to the PAX demo. (After 1 minute of inactivity, it resets itself to the title screen. Without this, I have to run around manually resetting the demo over and over all weekend!)

-- added email sign-up functionality to the PAX demo. (Signing up adds your name and email to a text file whose contents I can later copy-paste into Excel.)

-- spruced up some more of the proc gen character dialogue; applied a missing personality requirement to the Depressive general response line, applied a sad face to the regretful victory lines for Kind characters.

-- improved the Battle at Grabber's Grove.

-- fixed: characters burning to death at the start of a turn would not actually be removed from the battlefield until someone attacked.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on February 25, 2020, 01:38:49 PM
-- hitting enter when the email sign-up screen is active now checks the contents of the fields and, if they're complete, submits them as if you'd hit the "done" button.

-- adopted some of the pacing changes from the demo into the main campaign to make interesting event variants start appearing earlier and with greater frequency. Gatherings now set a familiarity floor of 5 for all recruits relative to all other recruits; group practice is unavailable the first two days.

-- you can now attach multiple warning conditions and multiple gray-out conditions to the same cut scene menu button! Simply delimit each with a vertical bar (|).
Title: Re: Together in Battle Dev Log
Post by: CraigStern on March 03, 2020, 08:22:45 AM
I have returned from Boston and PAX East! What a whirlwind of a week. I talked to hundreds and hundreds of people over those few days, signed up more than 525 people onto the email list (I'm told that 100 email list sign-ups is more typical for a PAX weekend?!), and gave several impromptu previews of the game to passing games journalists and streamers.

As part of the process of getting the booth ready to go, I had to throw together a rough trailer providing an overview of the game. It came together surprisingly well considering what a rush job it was. I plan to polish it up, add in a few things, and then release it to the wider internet as a "sneak peek" trailer. Hopefully that'll come later this week.

In the meantime, it's back to work on the game itself!
Title: Re: Together in Battle Dev Log
Post by: CraigStern on March 03, 2020, 03:30:23 PM
-- added particularized backgrounds to more camp activities.

-- the game now also checks the actions contained in scripts called by Run actions in the first branch of dialogue for EndConvImmediately, NextScene, and the like when determining whether to pop up the dialogue window. (If any are found, it won't start to open the window.)

-- skills now support separate knockback and impact timing attributes.

-- created a separate Shove animation for the Stone Golem class.

-- fixed: the timing on several abilities (including all of the Stone Golem and Kineticist knockback abilities) was off.

-- fixed the vertical alignment on the Mind Shock visual effect.

-- fixed: Feedback and spriggat breath attack visual effects were not showing.

-- fixed: the game was failing to select variants within certain particularly long proc gen dialogue lines.

-- fixed: the game was sometimes hanging after a character burned to death at the start of an AI-controlled turn.

-- fixed: certain character sprite sheets weren't using the correct compression settings.

-- fixed: skills could appear redded out within the level-up screen.

-- fixed: clicking a non-selectable character in exploration mode without a selectable character selected would result in a null error being thrown.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on March 04, 2020, 04:02:33 PM
Recut the PAX show floor trailer into a version I will release to the wider internet tomorrow! Also:

-- fixed: characters could use items while frozen or stunned.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on March 05, 2020, 10:54:25 PM
Released the alpha teaser trailer (https://www.youtube.com/watch?v=BXwhr1hUnDY).

-- improved the impact timing on explosive attacks.

-- got the Charge, Leap, and Shadowport skill timings to sync up correctly with their respective character sprite animations.

-- fixed: the map editor and cut scene editor load menus were listing loadable and unloadable scenes incorrectly.

-- fixed: status effect icon timing was off, and would sometimes fail to display at all.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on March 06, 2020, 04:24:11 PM
-- started writing a new side quest with accompanying battle.

-- fixed: the "army color" indicators in the map editor's army sub-editor ended up with compression settings that messed up their palette swapping.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on March 08, 2020, 02:45:36 PM
-- fixed a couple of formatting errors that had recently crept into the camp activity narrations xml file.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on March 09, 2020, 03:28:51 PM
-- the game's bespoke 2D particle system now supports multiple distinct groups of particles with different settings all tied to the same particle effect. Laid groundwork to support custom effects.

-- created a new particle type for when characters gain familiarity to better distinguish it from gains to friendship and romance.

-- better error handling surrounding malformed camp activity narration xml.

-- added a "copy skill attributes" function to the skill editor. This lets you select an existing skill (including any of the game's default skills); whatever skill you select, the game will populate every field in the Edit Skill window (except for skill name) with the attributes of that skill. You can then easily edit the values to your liking and save the skill as its own distinct skill.

-- added in Knockback Timing as a field in the skill editor. The skill editor now correctly loads and saves knockback timing for skills.

-- updated the in-editor description for impact timing in the skill editor to reflect the new seconds-based timing system.

-- fixed an annoying little UI thing: when you used a hotkey to select a skill with your cursor was already over the target, the attack tile would spawn without displaying damage or accuracy info, nor would it spawn the hit reticles (because spawning with the cursor already there would not trigger the mouseover listener).

-- did the same for move tiles, as when selecting a character via the "next character" hotkey.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on March 10, 2020, 01:30:14 PM
-- made improvements to the particle system.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on March 11, 2020, 03:29:33 PM
Worked on the Steam page. Additionally:

-- fixed: if you loaded a map with deployment set to true but no deployment tiles, the game would not let you proceed.

-- fixed: due to a dumb typo in the code, particle effects in battle and in the map editor on long, narrow maps could produce null errors.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on March 12, 2020, 03:29:57 PM
I finally finished making the frankly ludicrous array of different graphics Steam requires for a "Coming Soon" page, then submitted the page to them for review! On the "actual game development" front:

-- 2D particle effects now have an optional "enforce minimum distance" attribute that prevents them from randomly spawning clustered too close together (as was happening sometimes with some of the floaty heart and exclamation point particles).

-- improved the look of the exclamation point particles.

-- fixed: chasm tiles no longer have landing particle associated with them.

-- fixed: tile data was missing for the most common cave-chasm transition tiles.

-- fixed: the "select next unit" function would trigger pop-up text over every character it checked who was frozen, stunned, or had ended their turn.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on March 13, 2020, 03:28:51 PM
The Steam page was approved! Got my video editing software set up on my new dev computer so I can improve upon the alpha teaser for the Steam page.

-- added a bit to the list of possible human character names.

-- wrote some more camp activity narration.

-- created a new life skill: gambler.

-- the attributes in camp activities (e.g. fam1, mor1, food, aura, etc.) can now use custom integer variables.

-- fixed: attack tiles registered a click upon mouse down rather than upon mouse up, which could cause situations in which you clicked to attack an ally or heal an enemy, and then--unintentionally, with the same exact click--instantaneously selected a button in the resulting warning pop-up window either canceling or proceeding with the attack.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on March 14, 2020, 01:50:31 PM
-- the attributes in camp activities (e.g. fam1, mor1, food, aura, etc.) now support the use of the RANGE[] special character. For instance, having this attribute in a camp activity narration...

Code: [Select]
aura="RANGE[25-75]"
...will randomly provide the player between 25 and 75 aura when it is chosen.

-- new script action: AddCampActivity. Adds a new activity narration with a particular character to the current camp activity sequence. Three parameters: character name, activity name, and partner name (if it's a partnered activity).

-- fixed some issues with the new gambler camp activities.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on March 24, 2020, 05:35:59 PM
Phew! All right, I'm back. I had to take a little bit of a mental health break there while I adjusted to our new, weird, quasi-apocalyptic real-life circumstances vis-a-vis the coronavirus. But I'm ready to continue development now. Here's what I got done today:

-- wrote new attack and victory barks, focused mainly on characters with the gambler life skill.

-- improved the game's sound and visual effects when characters land on a chasm tile. The impact sound is now a dropping whistle, and they visually fade to black to simulate their fall into the darkness.

-- camera shake values from different sources of damage landing at the same time are no longer cumulative--the largest shake duration and magnitude value from any one source are used, and the other values are ignored. (This fixes situations that have resulted in annoyingly long camera shake.)

-- fixed: multiple different health bars spawned when attacks that dealt damage multiple times landed; the game now consolidates all damage into one health bar (and the same for energy effects).

-- fixed: the impact sound was being played twice upon landing on a space after a knockback or move ability.

-- fixed: it was possible for the dialogue menu to throw a null error under certain circumstances.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on March 25, 2020, 07:47:22 PM
-- fixed: getting thrown onto a bridge or other destructible object sticking out of a chasm would result in the game treating that character as if they'd been thrown into the depths of the chasm.

-- fixed: characters could get knocked onto objects and bridges located over chasm tiles, and the game would still treat the end elevation as if it were the bottom of the chasm.

-- fixed: flying characters would fade to black when shoved or pulled over a chasm tile even though they didn't take falling damage.

-- fixed: it was possible for the same enemy death from a multi-damage-source attack to trigger a victory bark more than once.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on March 26, 2020, 01:26:42 PM
-- improved the the promotion screen design to make it easier to tell what class you're selecting for promotion.

-- proc gen characters with a forced class now derive their available potential species from class info rather than from a hard-coded list.

-- added an appropriate sound effect to the Shove skill.

-- getting moved onto a bridge or destructible object in the middle of a hazard tile now produces smoke puffs as if the character had been moved onto ordinary land.

-- characters that lose Flying status (whether from the Heavy status effect or something else) over a chasm tile now drop in and take fatal falling damage appropriately.

-- fixed: the character generator was not obeying the "force species" restriction for procedurally generated unique characters.

-- fixed: there are no longer impact sparks upon landing in a chasm tile from being pulled, shoved, or thrown.

-- fixed: improper compression settings on certain frost spriggat sprites were preventing palette swapping.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on March 28, 2020, 11:26:13 AM
-- fixed: Gravity Spike and other Heavy-causing skills of element Falling would damage destructible objects with passability of flying as if they were flying characters.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on March 28, 2020, 01:58:30 PM
-- rewrote the placeholder "create ice bridge" routine. Ice bridges are now created at the skill's moment of impact, with an attendant sound effect and shower of snow particle effects.

-- some further aesthetic improvements to "falling into a chasm" moments: status effect icons no longer appear as the character is falling, and the screen shake is greatly toned down.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on March 29, 2020, 12:30:33 PM
-- changed the formatting on serialized character dialogue lines to support vertical bars for use with special characters like PICK{}.

-- fixed the knockback timing on the spriggat Dive skill.

-- fixed a rogue hotkey that was interfering with normal typing in the map editor.

-- fixed: any proc gen dialogue that used formatting within variants would produce strange results.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on April 02, 2020, 03:53:32 PM
Finished up a shorter (1:08 long) Together in Battle trailer for Steam. I've tried to upload it 4 or 5 times now, each time unsuccessfully. Trying one more time...
Title: Re: Together in Battle Dev Log
Post by: CraigStern on April 08, 2020, 09:12:05 PM
After some back and forth with Steam tech support (and two separate fixes on their end!), I finally got the new trailer uploaded!

-- the "random factor" in salary calculations is no longer a one-off black box calculation. Instead, it's now based upon a new, hidden character stat called Materialism. A Materialism value of 100 is "average," in that it won't affect the character's salary. A value of 0 means the character won't get paid anything at all; a value of 200 means they demand twice as much money as average. As a character stat, this can be accessed (and altered) the same as any other stat, so scripted events can take into account how materialistic a character is--or change it.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on April 09, 2020, 08:07:06 PM
-- the effects of class and stats on calculating a character's salary are no longer hard-coded; instead, these can now be manipulated on a per-class basis!

Here's how it works: the  game now looks to two new attributes in each character class in Classes.xml to calculate a character's salary, baseSalary and salaryStatValues.

First, baseSalary, sets the salary for a hypothetical character of that class possessing 100 Materialism and 0 in all other stats. Very straightforward.

Next, salaryStatValues allows stats to factor in. It works like baseStatModifiers, but instead of the value in the key-value-pair being an operation, it's simply a float. The float value is multiplied by the named stat for that character, then rounded to the nearest integer and added to the character's salary. ("Res." is a catch-all key to refer to every resistance a character possesses.) For instance:

Code: [Select]
salaryStatValues="Health,0.4/Energy,0.5/Strength,30/Counter Limit,35/Res.,1"
If a character belongs to the class that uses these salaryStatValues and the character possesses 20 Health, 10 Energy, 5 Strength, 1 Counter limit, and 5 Slash Resistance (but 0 in every other resistance), that character would get +8 to salary from their Health (0.4 x 20), +5 to salary for their Energy (0.5 x 10), +150 to salary for their Strength (30 x 5), +35 to salary for their 1 counterattack, and +5 for their 5 Slash resistance.

Whatever the result, the character's Materialism stat then acts as a multiplier to produce the final salary.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on April 10, 2020, 11:10:29 AM
-- updated all 72 classes in the game's default Classes.xml with appropriate baseSalary and salaryStatValues values.

-- new script action: GetNewSalary. Have the game calculate what a character's salary theoretically ought to be based on their current class and stats. Four parameters: character name, percentage salary multiplier (optional -- if not used, the game will use 100 by default), low morale effect (optional -- increases a character's new desired salary by X% per point of morale below 0 where X is the integer you supply), and variable name to store the value in (optional -- if not used, the game will store the new salary value under _NewSalary).

-- rewrote the Wanting a Raise event to calculate the desired raise as the difference between the new calculated salary and that character's current salary. The event won't trigger if the chosen character's prospective raise is too small; but the event also now gets added to the events list every single week, ensuring that it happens with some regularity. The extent of the low morale penalty used in the calculation depends upon the game difficulty level chosen.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on April 12, 2020, 01:34:16 PM
Uploaded a better seelction of screenshots to the Steam page for its "Coming Soon" publication tomorrow!

-- fixed: the game would lock up upon loading OnLoaded dialogue without a convID.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on April 14, 2020, 06:54:26 PM
-- remade Battle with Gunther to ensure that neutral thief units that loot treasure chests work correctly in the new engine. (They do!)

-- added support for -ANY- as the item name in an OnGrab dialogue trigger.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on April 16, 2020, 08:05:03 PM
Finally added a Together in Battle banner to the main page of the website! :)

-- thought up a new event to script.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on April 20, 2020, 04:17:12 PM
-- began writing and scripting the new event.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on April 23, 2020, 06:54:18 AM
-- remade the Lift Weights camp activity as a project with multiple potential outcomes each time it's chosen. Upon successful completion, it now increases the character's Strength stat by 1 or Health stat by 2.

-- camp activities now support the runScript attribute. Place the name of scripts accessible to camp activity scenes that you wish to immediately run upon a character performing this camp activity.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on April 24, 2020, 02:26:07 PM
-- new supported attribute types for the script action SetStringByNPC: himer, hiser, and heshe. Returns the appropriate pronoun of the specified type.

-- used the new capability above to improve the writing (and add new variants) to the letter event.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on April 26, 2020, 01:44:40 PM
-- there is now more space between lines in the dialogue window.

-- shops now support a mixture of items that cannot sell out and those which are in limited supply within the same category.

-- improved the writing and scripting for the lift weights camp activity.

-- improved the layout of Battle at Grabber's Grove somewhat.

-- fixed: the game was not choosing from between alternate like text explanations.

-- fixed: a couple of small typos.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on April 28, 2020, 08:53:00 AM
-- worked on a new event/side quest.

-- fixed: a null error could occur with procedural character generation under certain circumstances.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on April 28, 2020, 05:00:18 PM
-- unique portraits can now be assigned a species attribute to ensure that eye-palette swapping is handled correctly for shadowlings and spirits.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on April 30, 2020, 07:16:53 AM
-- finished creating a rough draft of the new side quest's battle.

-- fixed: if you capitalized the facing of a portrait in the AddPortrait or AddSpeakerPortrait script actions, the portrait would always face right.

-- fixed: the dialogue editor would inappropriately create two dialogue boxes in the editor when validating a new dialogue tree.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on April 30, 2020, 05:11:10 PM
-- worked on the side quest battle a bit more.

-- fixed: the new "unique" boolean on portraits wasn't accounted for in the save and load routines, leading to unique portraits not loading in some situations.

-- fixed: the dialogue editor would sometimes have to edit you edit the wrong dialogue or script when clicking a dialogue or script box after narrowing the available options via the search box.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on May 02, 2020, 07:00:27 PM
-- the first of the species-specific side quests is now done! Completing it successfully results in shadowlings becoming recruitable. :)

-- fixed: Feedback animation timing and positioning were off.

-- fixed: the game would demand that the player deploy a Protect Char unit even if that unit wasn't in the player's roster, preventing them from continuing the game.

-- fixed: mid-battle saves didn't take account of changes to the music mid-fight.

-- fixed: using a condition with a missing parameter could cause the game to throw a null error when saving mid-battle.

-- fixed: loading a mid-battle save that was saved on the turn reinforcements spawned would result in the reinforcements being duplicated.

-- fixed: the game was mishandling OnVictory dialogue triggered at the same time as a character level-up, popping up both simultaneously.

-- fixed: shadowling psy users were being generated with speed values appropriate for humans.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on May 05, 2020, 04:33:04 PM
Corresponded with an artist about the possibility of improving the look of the game's UI, and and talked to a potential programming intern who could help me out. Meanwhile, in actual development:

-- improved crossbowman Crossbow animation positioning.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on May 06, 2020, 02:51:22 PM
More artist correspondence. In the meantime:

-- implemented a handy little interface feature I'd long been wanting: when characters get new items in their inventory, a little symbol now appears over them indicating that they are new. The item remains marked with this symbol until the player mouses over (and off of) the item. This happens both to items characters grab off the battlefield and to items that are given to characters in the reserve supplies screen. This feature makes it extremely easy to tell what a character's gotten from grabbing an item sack, or which weapon or piece of armor you just gave them.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on May 09, 2020, 07:07:50 AM
Ran another virtual playtest over Discord on Wednesday.

-- began refactoring the bespoke 2D particle system code so that 2D particles will be framerate-agnostic. (This should eliminate that annoying effect where 2D particles spawn and move way too fast on fast machines, and way too slow on slow machines.)

-- you can now mouse over a character's class in the character screen to get a tooltip description of their class just as you can in the recruitment screen.

-- there is now a "shop guide" overlay to introduce new players to the various features of the new shop interface. It can be called automatically with a 4.5 second delay using a new boolean parameter in ShowShop, or the player can access it themselves by hitting the new '?' button in the shop interface:

(http://sinisterdesign.net/_TogetherInBattle/_Promo%20Assets/Together%20in%20Battle%20-%20Shop%20Guide%20%28Small%29.gif)

-- advice events no longer foreclose Gatherings.

-- added a pop-up animation to the New Turn box in battle.

--  fixed: the dialogue box wasn't using the smooth disappear animation in battle, and instead relying on an outdated "instant disappear" function from early in development.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on May 10, 2020, 01:49:30 PM
-- finished reimplementing the bespoke 2D particle system!

-- recreated all the particle system presets with new values that create the intended effect within the new framework.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on May 13, 2020, 03:47:54 PM
-- you can now click to skip through the "day changing" animation in the calendar.

-- improved the click-and-drag camera panning code. It now takes account of the framerate and zoom-out level, and adjusts click-and-drag-pan distances proportionally. This makes click-and-drag camera panning feel much smoother and more related to your inputs.

-- the cursor now changes to a grabby hand while click-and-drag panning the camera around.

-- there is now a "recruitment guide" overlay to introduce new players to the various features of the recruitment interface. The player can access it themselves by hitting the new '?' button in the recruitment interface.

-- added a damage fall-off tutorial to Battle at the Oasis.

-- added appear and disappear animations to the terrain inspector when it's toggled on and off to make it easier to see what change is occurring.

-- added the star icon alongside character level in the character screen, level-up screen, and recruitment info displayer in order to be consistent about its usage and ensure that the player can more easily infer what the icon refers to.

-- fixed: scaled-up instances of the bespoke 2D particle system spawned particles at the larger scale, but their velocity remained unchanged, causing them to appear to move much too slowly relative to their size. (Their starting velocity and gravity values are now scaled proportionally to fix this.)

-- fixed: it was possible to trigger part of an earlier tutorial in the qualifier fight after effectively skipping it.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on May 17, 2020, 08:41:31 PM
-- created a new game setting UI element for changing the game's control scheme based upon a list of Mouse and Keyboard plus whatever gamepads are connected.

-- the game now saves your choice of controller based on your selection and loads it upon restarting the game.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on May 22, 2020, 10:03:38 PM
Oof. It turns out, coding gamepad controls for a ton of different menus is a real pain. Still, I'm making progress, slow as it may be!

-- you can now navigate the title screen's main menu, new game menus, and load game menu entirely using a gamepad. The left joystick and D-pad move from UI element to UI element, the confirm button selects, and the cancel button closes out the current menu.

-- you can now navigate cut scene narration entirely using a gamepad by using the confirm button to advance.

-- you can now navigate dialogue trees entirely using a gamepad; the selectable entries reflect the number of replies available. The left joystick and D-pad move from reply to reply and the confirm button selects.

-- you can now navigate custom cut scene menus entirely using a gamepad; the selectable entries reflect the number of buttons shown. The left joystick and D-pad move from button to button, prompting their pop-up tooltips, and the confirm button selects.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on May 23, 2020, 08:20:37 AM
-- fixed some issues in the gamepad movement behavior, including (but not limited to) tweaking timing and dead zones and detecting when the player likely intends to only move vertically or horizontally and locking out diagonal drift. The player can now easily just hold down in a direction to go through a menu quickly without sacrificing the ability to easily tap to go one entry at a time. Due to all this, the gamepad controls now feel much, much smoother and more predictable.

-- the game now systematically detects when page-advancing arrows are not present in the UI and disables their associated menu elements so the player doesn't end up selecting non-existent arrows with the gamepad.

-- record a little "tick" sound effect for moving the cursor to a new UI element in gamepad mode; it's now implemented in-game and working nicely.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on May 24, 2020, 10:26:17 PM
-- you can now navigate the recruitment interface using a gamepad.

-- the mouse cursor is now locked and invisible when in gamepad control mode.

-- fixed: the game was sometimes ending up with the last menu element in a menu selected in gamepad mode when said element was disabled.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on May 26, 2020, 05:06:35 PM
-- more work on gamepad navigation of the recruitment interface today, primarily focused on getting navigation behaviors consistent with what I would expect. Made good (but annoyingly slow) progress.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on May 28, 2020, 04:21:07 PM
-- further improved gamepad navigation behaviors through menu elements laid out non-linearly in 2D space.

-- finished up the recruitment interface--you can now navigate around and inspect all of the character stats, skills, and inventory items for each recruit before hiring.

-- you can now navigate to the settings screen on the title screen, and can navigate the settings screen itself and change settings, using the gamepad.

-- the gamepad can now be used to skip the game's intro movie.

-- began work on gamepad controls for battle.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on May 29, 2020, 04:25:52 PM
-- received new, painterly interface art from Franklin Chan that better matches the aesthetic of the cut scene backgrounds. Spent all day incorporating it into the game's battle interface.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on May 30, 2020, 08:48:24 PM
-- got revisions to new interface art; still integrating.

-- fixed: the game would display fake cursors on interface elements even when not in gamepad control mode.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on June 01, 2020, 05:44:02 PM
Submitted a build of Together in Battle to indiecade! As my last acts prior to doing so:

-- continuing to integrate new interface assets into the game; all of the main game menus, tooltips, cursors, etc. are now converted to the painterly interface art.

-- got the main campaign editor screen converted over to the new interface art, along with the the item editor, skill editor, and dialogue tree editor.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on June 02, 2020, 06:33:02 AM
-- fixed a wide variety of bugs and small graphical glitches that I don't feel like individually documenting here.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on June 04, 2020, 09:21:35 PM
-- spent the past few days modeling, texturing, and animating cloth banners in Blender, then importing them into the game. They now appear on the new turn box, and in my opinion, they look pretty fantastic. :)

-- fixed a silly little bug where the hourglass cursor would inappropriately change back to the default cursor early on in AI army turns.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on June 08, 2020, 11:05:09 AM
-- created alternate colors of the new turn box banners for each possible army color; the game now selects the animated cloth banner of the color matching the army whose turn it is.

-- created animated cloth banners for the victory screen with alternate colors for the victorious army.

-- improved the look of the victory screen victory fireworks.

-- you can no longer create an ice bridge in a space where a character is currently swimming.

-- doubled the strength of qualifier opponents in the Qualifier when playing on challenging difficulty.

-- the player now starts off with 5 bandages already in reserve supplies when playing on relaxed difficulty.

-- reduced the ringleader's strength in the "save grandpa" battle when playing on relaxed difficulty.

-- fixed: the "save grandpa" battle wasn't using death rules appropriate to the chosen difficulty level.

-- fixed: the character screen inventory sub-window was obscuring character physical attributes.

-- fixed: the sub-menus for each item button in the character screen inventory sub-window was missing its background image.

-- fixed: the shop tutorial had become misaligned.

-- fixed: terrain inspector could appear below victory screen.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on June 08, 2020, 04:43:06 PM
-- fixed: the global lighting in each level was affecting the appearance of the 3D animated banners on the turn and victory UI elements.

-- fixed: particles in the bespoke 2D particle engine weren't retaining their z axis position, resulting in issues when used in canvases set to World Space mode.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on June 10, 2020, 05:29:12 AM
-- increased grandpa's health in the "save grandpa" battle when playing on relaxed difficulty.

-- wrote a new set of greeting responses for imaginative characters.

-- created a separate boolean variable to track whether a game demo is an online demo or a convention demo, then switched on/off various behaviors as appropriate to the setting.

-- fixed: there wasn't a yellow hue variant for the turn box and victory banners.

-- fixed: the friendly greeting approach lines described the character smiling, but the portrait did not actually smile.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on June 11, 2020, 04:55:17 AM
-- added some code to the procedural character generator to prevent the game from randomly generating more than a few recruits of the same class in the recruitment interface at any one time, ensuring the player always has a good variety of classes to choose from.

-- tweaked unit placement in Battle at the Oasis for Brutal difficulty and for the online demo.

-- wrote new approach line variations and info response line variations for proc gen character dialogue.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on June 12, 2020, 04:20:48 PM
-- updated the map editor with all the new interface art!

-- finally, definitively fixed the issue where unit tooltips could show up partially offscreen in battle. (I hope.)

-- fixed a spot in the AI code where a divide-by-zero error could occur, freezing the game.

-- fixed: the victory banners would sometimes appear momentarily when loading a mid-battle save.

-- fixed: mid-battle saves did not capture the currently playing sound loop, resulting in the sound loop's absence upon reloading mid-battle.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on June 15, 2020, 06:38:26 AM
-- you can now make only one mid-battle save per round. (Previously, you could fill up as many slots with copies of the current round's save as you wanted before proceeding, which opened the door to opportunities to cheese the game's RNG.)

-- new script action: WaitForDialogueEnd. This is a timing action that pauses the execution of all subsequent actions until the current dialogue text has finished animating onscreen.

-- placed WaitForDialogueEnd before animated status bars and pop-up text actions in camp activity dialogue; this should make it much easier for players reading the dialogue to catch the effects of the conversation.

-- added a new, optional integer "spawn delay" parameter to the PortraitParticles script action.

-- added to the camp activity narration for sewing to make it clear that the character's morale was increasing.

-- darkened the grayed-out tint on shop equipment no one can use a bit more to make it more easily distinguishable at a glance.

-- fixed: the scene transitions in the demo weren't adjusted to account for the extra battle I'd thrown in.

-- fixed: the end-of-demo scene was still displaying the (local to the machine) email sign-up form from PAX.

-- fixed: if the last AI-controlled enemy died of environmental hazard or status effect damage before their move processing had completed, the game would stall forever as it waited to finished processing moves for that now-nonexistent character.

-- fixed a null error that was accidentally introduced by an earlier code tweak.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on June 16, 2020, 12:07:29 PM
-- updated the character creator and the cut scene editor with all the new interface art! That's the last part of the game that needed the new UI art implemented.

-- made the Awkward personality trait mutually exclusive with Narcissistic due to wild inconsistency in outwardly expressed character self-image in the dialogue associated with each.

-- placed WaitForDialogueEnd before animated status bars and pop-up text actions in random event dialogue.

-- added confirmation windows to the shop and recruitment interface when the player selects the Exit button, warning them that if they leave they won't see those characters or items again.

-- added a dedicated Exit button to the Reserve Supplies screen.

-- fixed a typo in the card games hobby "like" dialogue text.

-- fixed: a null error could result when using a one-use item that was still marked "new" within a character's inventory as the game tried to mark the item no-longer-new after it was removed from the inventory.

-- fixed: GoTo-type actions would not remove themselves from the action queue until after going to a new branch, which would clear the actions queue and repopulate it with other actions. Since the original actions no longer existed in the queue, these new actions from the destination branches would be inappropriately removed from the actions queue instead.

-- fixed: the female spearman's shove sprite sheet was compressed, leading to failed palette swapping during the animation.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on June 17, 2020, 08:24:46 AM
-- caught and fixed some missing tooltip textures in the item and skill editors.

-- caught and fixed some missing cursor textures in some of the editors.

-- fixed: a null error when randomly generating a generic character in the character creator.

-- fixed: a null error in the cut scene editor.

-- fixed: the confirm and cancel buttons in the load scene menu in the cut scene editor had broken.

-- fixed: the confirm and cancel buttons in the load scene menu in the cut scene editor had been reset to load battles instead of cut scenes.

-- fixed: the title text overlapped the sub text in the "save before creating new character?" pop-up window in the character creator under certain circumstances.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on June 18, 2020, 03:04:42 PM
-- added support for the player reference string to the character creator. The game can now successfully save that value to XML and will load it from XML when loading a premade unit.

-- caught and fixed a few remaining missing UI textures hidden in a few nooks and crannies of the character creator.

-- caught and fixed a few remaining missing UI textures among the map editor's army sub-editor's button tooltips.

-- added mouseover tooltips to the music selection submenus in the map and cut scene editors.

-- improved tooltip placement in the cut scene info bar.

-- improved tooltip scaling and placement in the army overview window.

-- the game now checks premade characters to see if they're lacking a default skill animation; if they are, the game now attempts to find and plug in the default skill animation for their class.

-- fixed: the game was accidentally deleting all of the item templates when generating characters for testing within the campaign creation suite, causing characters to all spawn without the items and equipment assigned to them in the character creator.

-- fixed: characters in the character creator were not having their default skill animations saved during the save process.

-- fixed: the character creator was failing to remember that randomly generated generic characters had generic portraits, and then therefore saved their portraits incorrectly.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on June 22, 2020, 09:01:21 PM
-- the time that combat barks remain onscreen now changes based on the length of the bark. The longer it is, the longer it remains onscreen before disappearing.

-- fixed: changing the sound effects volume wasn't affecting the volume of currently playing sound loops.

-- fixed a typo in one of the camp narration variants for word games.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on June 23, 2020, 09:33:30 PM
Sent out contracts to voice actors; gave feedback to artist and composer.

-- fixed: the space selector was remaining onscreen during combat exchanges.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on July 04, 2020, 03:54:33 PM
I had to give myself a little break from development there--I didn't want to burn out after that big push for the summer Steam Game Fest event. But I'm back!

-- scripted a custom effect for Create Bridge and Create Barricade skills: the max health of the object created now depends upon the combined strength and psy of the character creating it. (Weapons are taken into account--an Engineer with a more powerful Wrench will build sturdier battlefield constructs.)

-- scripted a similar custom effect for Solid State Shield, but it only takes into account the character's Psy.

-- fixed a graphical blemish on the male engineer portrait background.

-- fixed: a seemingly innocuous change in code order had caused the game to cease respecting false Kill-All Victory conditions.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on July 08, 2020, 05:05:22 PM
Gave my voice actors feedback. In the meantime:

-- incorporated six new cut scene backgrounds from Franklin Chan into the game; put the new daytime docks background into the introductory cut scene.

-- the AI now scores moves involving a character standing still and using a turn-ending Shield skill a lot lower to discourage enemies from wasting entire turns just buffing themselves.

-- fixed: the AI was weighting status effects way too heavily when scoring different moves.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on July 20, 2020, 12:44:14 PM
-- created a new "drowning"  sound effect that triggers when a character takes drowning damage in water.

-- fixed: it was possible to click outside of yes/no screens in the reserve supplies screen without resolving the question posed.

-- fixed: null errors could result when characters died from status effect damage during an enemy turn on certain Death Rules settings.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on July 22, 2020, 10:50:51 AM
-- fixed: the Axefighter ability animations weren't getting palette swapped.

-- fixed: you sometimes couldn't swap items in the reserve supplies screen during deployment in battle.

-- fixed: the AI would grab an item sack on the destination space after using Swim.

-- fixed: a range error could occur when the AI used Swim to self-target a unit on a water tile and the game checked for ice bridge creation.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on July 26, 2020, 07:12:47 PM
Received the last of the "generic" voice over performances!
Title: Re: Together in Battle Dev Log
Post by: CraigStern on August 04, 2020, 11:55:37 AM
-- fixed: shoving a character into the edge of a map would sometimes throw a range error.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on September 21, 2020, 10:26:24 PM
Hey folks! I'm back. If you've wondered where I've been, I've been struggling pretty hard with keeping up the motivation to continue developing games lately, what with American society teetering on the brink of complete collapse these past few months. I'm here now, though, and I'm working on procedural battle generation.

To that end:

-- I finished up the map editor's map generation window interface for generating enemy (and allied) armies.

-- the game now stores up to 3 groups of units for each army in the interface. It now remembers them and re-displays them when switching between armies in the interface.
Title: Re: Together in Battle Dev Log
Post by: Sythion on September 21, 2020, 11:25:16 PM
I'm glad to hear you're ok! Remember, personal well being matters more than this.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on September 22, 2020, 02:49:33 PM
Thanks Sythion. :)

More progress:

-- the battle generator now successfully spawns one or more enemy armies onto the map. Unless the map is too small for all the units on it, all (or nearly all) enemies will be placed out of immediate move-and-attack distance of any human players.

-- a graphical improvement: lava tiles now have emissive materials (meaning they appear to be self-lit regardless of surrounding lighting conditions, and without you having to manually place lights over them). They also actually emit light and softly pulse.

-- the map editor now auto-adjusts the global lighting to either Night or Cave (depending on whether the cave tileset is being used) by default when lava tiles are used as the hazard tile to generate new terrain.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on September 23, 2020, 04:25:34 PM
-- updated the map editor's map generation window interface for generating destructible objects on the battlefield.

-- the procedural battle generation algorithm can now spawn destructible objects around the battlefield, and can probabilistically place items within subsets of those objects (e.g. chests or barrels) to drop upon their destruction.

-- improved the army placement algorithm for proc gen battles featuring more than two armies. Armies now "clump" together more in their starting positions, and are now less likely to spawn scattered amongst enemy armies.

-- fixed: the game was ignoring other units spawned within the same group for purposes of determining available spaces.

-- found, fixed a couple of incorrect or missing dirt tile transitions in the snow tileset.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on September 24, 2020, 02:22:46 PM
-- proc gen armies generated in the map editor are now formatted with extra data to allow them to be saved successfully into map files and loaded in-game with the same spread of levels and classes that were chosen in the map editor.

-- proc gen destructible objects generated in the map editor are now formatted with extra data to allow them to be saved successfully into map files and loaded in-game with the same spread of types and inventory that were chosen in the map editor.

-- tweaked the default map generation values to ensure that you can produce interesting maps easily without too much work.

-- fixed: the deployment space placer needed to be tweaked to account for the new proc gen destructible objects.

-- fixed: the Generate Map window wasn't auto-closing when opening a different menu in the map editor.

-- fixed a bunch of little null and range errors that can occur when attempting to load improperly formatted units into a battle.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on September 25, 2020, 03:30:32 PM
-- you can now flag a battle as "proc gen"; if you do, the map editor will save the most current "Generate Map" settings in the map file itself so the game can use them to generate a new map whenever the scene is loaded.

-- the game can now save proc gen settings to XML and parse those settings upon loading the level.

-- the game can now randomly place items into the inventories of characters within proc gen armies in a manner similar to that of proc gen destructible object groups.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on September 27, 2020, 11:38:09 AM
-- you can now load a level marked as proc gen within the map editor, and it will both generate a new map within your specifications and also auto-populate the Generate Map window with those same settings for editing.

-- chests are now treated as having move-and-attack range of 5 to ensure that they never spawn within 5 spaces of the player on a proc gen map.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on September 27, 2020, 04:47:59 PM
-- the battle generator can now place bridges onto proc gen maps!

-- the battle generator now defaults toward orienting player deployment spaces vertically when they are closer to the left or right edge of the map than to the top or bottom edges.

-- the battle generator will no longer spawn characters on spaces where they have no moves available.

-- all characters placed by the battle generator now spawn facing their closest enemy rather just facing the center of the map.

-- reduced the maximum health on trees to make chopping them down less slow and burdensome.

-- fixed: it was possible for destructible objects to spawn on the same space as a deployment tile.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on September 28, 2020, 09:01:23 PM
-- got proc gen battles generating and loading in the main game (as opposed to just the map editor).
Title: Re: Together in Battle Dev Log
Post by: CraigStern on September 29, 2020, 09:33:07 PM
-- destructible objects created in proc gen maps are now automatically tagged so that the AI will consider them viable attack targets if a) they contain items, or b) they have health of 12 or less.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on September 30, 2020, 05:02:34 PM
-- fixed a bunch of bugs in procedural battle generation.

-- adding "threat" to objects and units can now be accomplished via the BaseThreatRange tag. For example: BaseThreatRange,6 will make it so that the tagged unit or object will never spawn closer than 6 spaces away from the player in proc gen maps.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on October 12, 2020, 09:46:12 AM
Continued AI work!

-- fixed a typo in the AI code that was responsible for making units run toward healers when low on health.

-- optimized the base target value lookup routine in the computer AI code.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on October 12, 2020, 05:10:14 PM
-- I've got a new, important AI feature working; when a unit has no moves available to them because they're blocked in by destructible objects, the game will now "sniff out" multiple blocked paths that the unit could take to a desired target; the unit will then target those destructible objects with attacks to open up a path! (They will do this even with objects that are not player-created or tagged with TreatAsArmy.)

See: https://twitter.com/sinisterdesign/status/1315806939037790214 (https://twitter.com/sinisterdesign/status/1315806939037790214)
Title: Re: Together in Battle Dev Log
Post by: CraigStern on October 13, 2020, 11:08:47 PM
-- renamed the shopkeeper from Ghani to Nihal based on feedback.

-- new parameter added to the NewBackground/ChangeBackground script action: skip transition. A boolean that either causes the background to transition normally (if left false), or to flip instantaneously (if set to true).
Title: Re: Together in Battle Dev Log
Post by: CraigStern on October 14, 2020, 12:09:09 PM
-- you can now mouse over physical attributes in the character screen for a tooltip explanation of what each does.

-- you can now mouse over physical attributes in the recruitment screen for a tooltip explanation of what each does.

-- updated physical attribute descriptions to be more accurate and comprehensible.

-- fixed: the game no longer waits until a cut scene has finished fading in to run dialogue actions, thereby allowing the "lights to come up" on a scene that's already been altered by script actions.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on October 19, 2020, 11:44:08 AM
-- added the first true proc gen arena battle to the level progression.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on October 20, 2020, 09:49:30 PM
-- fixed: the game was initiating the first turn prematurely in battle after running OnLoaded dialogue.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on October 21, 2020, 06:45:32 PM
-- the proc gen map algorithm now favors placing player deployment spots closer to the edges of the map.

-- proc gen maps now support an integer range for the variables hazard frequency, hazard area, maximum elevation, elevation smoothing, and number of deployment spawns, allowing for a greater variety of possible results from any given map.

-- added a new "grouping size" parameter that periodically reverses the "proximity to allies" placement bonus to encourage enemy clusters in distinct locations around the map.

-- fixed: the proc gen map algorithm was inappropriately disregarding player deployment spots when placing enemies in-game.

-- fixed: the proc gen map algorithm was failing to consistently test proximity to all player deployment spots when placing enemies in-game.

-- fixed: the game was inappropriately placing hazard tiles at the same elevation as the bridges above them when generating proc gen battlefields in the main game.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on October 22, 2020, 03:53:10 PM
-- player deployment spawn points are now factored in when determining initial enemy facing in proc gen maps.

-- fixed: player deployment spawn points weren't being assigned a facing direction in proc gen maps in the main game.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on October 27, 2020, 11:16:03 AM
-- worked on the AI some more.

-- wrote a little in-battle event for flavor and plot in Battle at Double Bridge.

-- fixed a visual glitch that was causing the victory box banners to appear onscreen for a fraction of a second at the start of battle.

-- fixed: the "background chatter" sound loop from the Adelbrae tavern scene was continuing after the first encounter with Gunther began in The Vengeance of Emma Strider.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on October 28, 2020, 07:04:40 AM
-- the AI will now attack destructible objects to clear a path to targets who would otherwise be within immediate move-and-attack range. (Among other things, this makes the Zash and Red battle much more interesting if you go for the chest!)
Title: Re: Together in Battle Dev Log
Post by: CraigStern on October 28, 2020, 06:29:40 PM
-- the AI will now consider more alternative routes to a target when testing out path-clearing moves. (See e.g. the swordsman in the bottom-right here (https://twitter.com/sinisterdesign/status/1321509944613605376).)

-- added facial expressions to Zash's combat dialogue.

-- improved the look of bottom-row chasm tiles.

-- fixed: if an AI character got themselves killed during their turn, the AI move following it would not take into account that character's death (e.g. assuming that that character's space was still blocked).

-- fixed: stopping all sound loops via a global StopLoops action would not clear the "active loops" reference list, resulting in those loops remaining saved as the active loops for mid-battle saves going forward into the game.

-- fixed: there was a missing background on one of the dozens of tooltips in the character screen.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on October 29, 2020, 08:26:26 PM
More work on recreating Telepath Tactics in the new TiB engine!

-- began recreating the Rescuing Meridian battle along with the cut scene leading into it.

-- fixed some facial expressions in the Silithis and Ambuur Sang cut scene

-- fixed: the Silithis and Ambuur Sang cut scene no longer leads an "end of demo" scene.
Title: Re: Together in Battle Dev Log
Post by: CraigStern on October 31, 2020, 10:03:48 AM
-- implemented the AddTagToArmy action; it behaves exactly like AddTag, but it takes an army number as its first parameter instead of a character name. Whatever tag you want to add, with its attendant parameters, becomes the remaining parameters of the script action. That tag gets added to every unit in the specified army. (You can achieve the same thing now with ForLoop and AddTag, of course, but AddTagToArmy is just plain faster and easier.)

-- AI tweak: improved scoring for path-clearing moves to exponentially weight the relative damage the character can do to an object, thus preventing the AI from attacking objects it'll take many turns to break (e.g. using swords or bows on boulders) unless there are really no better moves available.

-- fixed: the space selector could appear and move around onscreen in dialogue during a MoveCam action.