News:

Welcome to the new Sinister Design forums!

Main Menu

A new engine!

Started by CraigStern, June 05, 2016, 05:39:11 PM

Previous topic - Next topic

CraigStern

All right, to heck with it--giant progress dump incoming! :)

-- prettied up the title screen with the game's new logo, as well blowing dust animations across the bottom and animated "sparkles" on the logo.

-- finished coding unit-by-unit AI decision-making mode (i.e. the way it used to work in Telepath Tactics). To avoid slowing the game down, the game turns to this decision-making mode automatically so long as more than 8 enemies remain on the field to make decisions for, but then reverts to the smarter consider-all-moves-for-everyone mode once it's worked through the list enough that eight or fewer units remain to move.

-- doubled the speed of fade-in and fade-out scene transition animations.

-- reduced the programmed delay after enemies finish moving from 3 seconds down to half a second, and the delay after enemies rotate from half a second to one-fifth of a second. This speeds up larger battles considerably without sacrificing comprehension of what the AI is doing by too much.

-- there is now an individualized Staff item graphic and Staff attack skill.

-- the Practice Staff weapon can now be used only by characters with a melee weapon mastery of some kind.

-- the steps number and path arrows that appear over move tiles when mousing over a destination are now always displays on top of whatever may appear in the space, be it tile geometry or destructible objects.

-- animated bars (for health, energy, experience, and morale) appearing over characters in battle are now organized in a fashion similar to the bars in cut scenes, ensuring that they are labeled with icons and won't overlap one another.

-- the in-battle terrain inspector now displays bonuses or penalties to stats from destructible objects on the space, not just modifiers from the type of terrain tile.

-- different terrain tiles now have different "impact sounds" assigned to them. When a character is shoved or thrown onto a space, the game plays the appropriate impact sound (e.g. a "splash" when into water).

-- the game now recognizes different rosters assigned to different armies in a given battle. Assigning different rosters to different armies now supported in the map editor interface, and the map editor itself correctly loads and saves this data.

-- two-unit camp activity narrations now support requirements and exclusions for the secondary character.

-- wrote a new Naysay solo narration in which the character hurts their own morale (instead of everyone else's). The chance of a Pessimistic character hurting group morale via the Naysay action has been reduced to close to 25%.

-- changed the wording in the deployment screen so it refers to "characters," not "units."

-- created a temporary scene expressly alerting the player that they've reached the end of the demo.

-- when you give equipment to a character in the reserve supplies screen and close out of the screen without equipping it, the game will now track those items and ask you if you want to auto-equip them. If you select Yes, the game will then automatically equip all new items given to that character.

-- in the reserve supplies screen, mousing over units with no equipment masteries will now expressly tell you that they possess no masteries instead of displaying "Can use:" followed by blank space.

-- wrote a new life skill: toymaker, with the camp activity Make Toy (a 6-part project in which the character gradually constructs a wooden doll with articulating limbs that can be sold for aura).

-- mechanically identical life skills distinguishable only by their flavor (such as Farmer and Gardener, or Professor and Historian) have been consolidated, leveling out the likelihood of any given life skill being chosen from a mechanics standpoint.

-- socioeconomic classes attached to different life skills can now vary somewhat.

-- fixed: the game was spraying water particles when a character was shoved or thrown onto a bridge tile above water.

-- fixed: the game would erroneously tell the player that food they purchased appears in the reserve supplies--the game now tells the player to look for it in the info bar in the top-left of the screen.

-- fixed: the game was tracking total units spawned from roster across all armies, rather than on a per-army basis.

-- fixed: multiplayer units weren't being added to the Multiplayer directory upon the directory's creation.

-- fixed: multiple instances of the same unit would become "entangled" in the game logic, causing all kinds of weird errors.

-- fixed: the game was running OnLoaded dialogue upon reloading a mid-battle save.

-- fixed: the game was reapplying certain "start of battle only" conditions upon reloading a mid-battle save, such as Go First, Fatigue or Recover.

-- fixed: the game was not saving the current turn correctly for mid-battle saves in battles with a Go First condition.

-- fixed: when proceeding to a non-savable scene, the game would instead attempt to reload the current scene.

-- fixed: rosters would not accept characters that already existed in other rosters.

Also, acquired the PowerSprite animation asset. I hope to use it to fill in gaps on remaining character animations starting tomorrow.

CraigStern

-- added the latest draft of Ryan Richko's new theme music to the title screen!

-- created a new "Thud" sound effect, applied when characters collide, fall, or are shoved or thrown onto regular terrain tiles.

-- a dialogue reply can now have a skill or item associated with it by including -SKILL:x- or -ITEM:x- in the reply text (where 'x' is the skill name or item name). This causes a button of the appropriate type, complete with a mouseover tooltip explaining what the skill or item does, to appear next to that reply.

CraigStern

#722
-- character physical attributes (if any) are now displayed in the character screen.

-- created a Sinister Design intro movie leading in to the title screen (that can be skipped with a left-click).

-- replaced Unity's (awful) animation system with hand-coded effects in two new areas of the engine to improve reliability.

-- incorporated a new, improved draft of the title theme into the game.

-- improved fade-out timing on the dust particle effect on the title screen.

-- wrote some new deployment lines, added facial expressions to others.

-- new script action: RemoveStatus. Removes a type of status effect from a character. Two parameters: Character Name and Status Effect Name.

-- improved mixing for the "thud" sound, created an implemented a "grab sack" sound effect, and assigned a sound effect to the Swim skill.

-- adjusted the positioning of the recruitable spriggat in the League 1 qualifier battle slightly to make it easier to avoid getting roasted right out of the gate.

-- fixed: tall reeds had fly-only passability.

-- fixed: the text overlay in battle would stop showing up for multiple consecutive instances of the same skill.

-- fixed: the Talkable status effect would remain on the recruitable spriggat in the League 1 qualifier battle even after talking to her.

-- fixed: reports were broken by the text animation update.

-- fixed: the game wouldn't let you target Create skills on bridge tiles.

CraigStern

-- took my first tentative steps with the PowerSprite animator tool. Went back to using individual, separate sprite sheets with consistent frame sizes for the sake of speeding up the workflow; managed to get all of the male and female axefighter sprite sheets for attack animations sliced up and turned into Unity animations for each of the cardinal directions.

CraigStern

-- wrote new follow-up approach dialogue for different personality traits, and a few new variations for existing lines.

-- follow-up approach lines are now regenerated with each use, with the game picking different phrasings for the next use.

-- dialogue now supports alternate facial expressions for the same line, choosing at random from multiple delimited expressions. In script actions, each expression should be delimited by vertical bars; elsewhere, by forward slashes. (E.g. a camp activity narration line with a facial expression set to Irritated/Mad will be accompanied by either the Irritated or Mad facial expression, with a 50% likelihood of either.)

-- applied the new text animation method to cut scene narration text.

CraigStern

Created a 3-minute raw gameplay video last night for purposes of submitting the game to the Indie Megabooth! Meanwhile, today:

-- received, incorporated new training room background into the game.

-- increased the monetary value of dolls created by toymaker characters so that they return a sizeable chunk of money (350 aura) when sold.

-- fixed a null error concerning facial expressions and generic character portraits.

-- fixed some missing objects and a misplaced tile on the Adelbrae map in the Vengeance of Emma Strider campaign.

-- fixed: misformatted bold text tags in the character screen.

-- fixed: the character creator was using the elementID instead of the image name when saving custom portrait elements with alternate positionings.

-- fixed: the character creator wasn't reflecting changed smoke plumes within shadowling character portraits until the characters were saved and reloaded.

-- fixed: the character creator wasn't saving characters' default facial expressions along with their portrait data. The game now loads default facial expression data for premade units from the XML attribute defaultExpression.

-- fixed: the character creator wasn't generating character movement sound data or saving it to XML along with the rest of the character.

-- fixed: the hair accessory buttons in the accessory chooser window of the character creator were throwing range errors when palette-swapping.

CraigStern

- sped up the "fade out" timing on the combat text overlay when initiating an attack.

- began laying the code framework for characters to change classes mid-game.

Sythion

Quote from: CraigStern on October 24, 2019, 04:16:06 PM
Created a 3-minute raw gameplay video last night for purposes of submitting the game to the Indie Megabooth!

Where can I find this? :o
Hunger is the best spice.

CraigStern

You can't! It hasn't been made public, as it still contains some placeholder elements. I'll be making a new, proper trailer for the game's official announcement once it has all of its animations and other graphical touches in place. ;)

CraigStern

-- implemented ChangeCharClass script action. Two parameters: character name and the class to change to. This is like the script action from Telepath Tactics, but way more far-reaching in its effects.

Instead of just changing the character's sprite and internal class name reference, it now also changes (1) the character's stats so as to reflect starting bonuses for the new class (and to remove starting bonuses from the old class); (2) the character's stat growths so as to reflect growth bonuses for the new class (and to remove growth bonuses from the old one); (3) the character's skill progression (including giving the character class-appropriate starting skills); (4) the character's clothing in their portrait (if a generated character); and (5) the character's dialogue (if any of it has class-specific requirements, or references their class).

CraigStern

-- made more progress on having the game import all relevant character class information from XML rather than relying on hard-coded values.

CraigStern

-- continued work on having the game import all relevant character class information from XML in the name of making all of the game's classes fully moddable (and supporting custom classes in the process).

-- created a new Kineticist skill: Kinetic Constriction. This is a range 1-3 attack that deals straightforward Crush damage to a single target with high accuracy, but has no knockback or status effects. This should help Kineticists to be more consistent in their utility, rather than always being constrained by the vagaries of map design and enemy placement.

-- created the icon for Kinetic Constriction, added it into the Kineticist skill progression.

-- decreased the cost and increased the damage on Gravity Spike.

-- two new operators are supported when altering integer values: f and c. These impose a floor and ceiling, respectively, on the named value.

For instance:

SetVal/MoralePenalty,f:2

This will check the value of the custom integer MoralePenalty; if MoralePenalty is found to be less than 2, it will then be set equal to 2.

-- the SetVal action now supports an unlimited number of operations within a single call! Just keep adding new operations onto the end as new parameters; they will be run in order from left to right. For instance:

SetVal/SuccessChance,=:-VAL:UnitAccuracy-,*:0.5,-:10

This creates a custom value called SuccessChance (or sets the existing value by that name) equal to another custom value (UnitAccuracy), then multiplies it by 0.5, and then subtracts 10. (If UnitAccuracy was 100, this would produce a SuccessChance value equal to 40.)

CraigStern

-- the character generation system in the game now generates class-related growths, stats, skill progressions, starting inventory, and descriptions based on data parsed from XML! It's still not complete class-related mod support yet, but it's getting closer...

CraigStern

-- character class XML info now supports separate attributes defining potential species, gender, and stat growth requirements for a character to be eligible for a class. The game now refers to these when deciding the potential classes a character can be rather than to the old, hard-coded logic.

-- the game now pulls from class XML attributes when generating a character's sprite set and portrait.

-- the game now uses the class XML file when it begins generating baseline growths for a character with a pre-chosen class (e.g. Health, Energy, Strength, and/or Psy).

-- new script action: ClassesToList. Create a list of all character classes; or, if a character is specified, a list of all classes that character meets the requirements for. Three parameters, the latter two of which are optional: (1) list name; (2) character name; and (3) name of a custom list containing any classes to exclude from consideration.

-- new script actions: RemoveVal, RemoveString, RemoveList, and RemoveArea. Each removes a custom variable of its respective type from the custom variables the game is tracking. One parameter: variable name.

CraigStern

-- created a new evening event: a character approaches the player and requests to change classes. The player may agree, or tell the character to remain their current class.

-- updated the text formatting on saved game file slots so that scene name shows up bolded and maroon-colored, making the save files much easier to parse at a glance.

-- new text formatting supported: you can now make text dark red, dark green, or dark blue using the following special characters:
[red] and [/red]
[green] and [/green]
[blue] and [/blue]


-- new text formatting supported: you can now force a block of text to lower-case using the [lc] [/lc] special character. Whatever text is within the [lc] and [/lc], the game will display entirely in lower-case. (Useful for when you're referring to character classes, items, skills, masteries, and other things that are always capitalized by default.)

For instance, suppose you have this line:

I'm a lone [lc]-CLASS-[/lc].

If spoken by a Swordsman character, the game will display I'm a lone swordsman instead of I'm a lone Swordsman.

-- fixed: any and all text formatting with a forward slash in the "end formatting" part of the tag would break dialogue replies. Bold, italic, underline, strikethrough, color, and the [lc] end tag all work just fine now in dialogue replies.