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


I've been busy with True Messiah stuff the past few days, but I did manage to spend some time looking around for artists who can do new background art in the correct style. More to come on that front later!


-- began work on the cut scene editor.

-- the campaign editor now has a button that links directly to the cut scene editor.

-- worked on the name generator XML file a bit with some new names and edits.


-- you can now load cut scenes and create new cut scenes in the cut scene editor.

-- you can now browse through the frames of the current cut scene at will using the arrow buttons in the menu bar up at the top of the cut scene editor.

-- you can now edit the narration text of the current frame, then see your changes reflected immediately in the cut scene below.

-- you can now save cut scenes after editing them.


Sent out a contract to the new artist handling cut scene backgrounds.

A bit of new coding:

-- the cut scene editor now has working New Frame and Delete Frame buttons, each of which do exactly what it sounds like they do: New Frame inserts a new frame into the narration after the current frame; Delete Frame deletes the current frame of narration, moving the player back to the previous frame if possible.

-- fixed some cut scene editor bugs.


Had to redo yesterday's work due to accidentally screwing up the project through ill-advised use of DirectoryInfo.MoveTo(). (I won't be using that command again, that's for sure.) Luckily, it's always faster redoing something you've already figured out how to do, so I had time to do some new stuff as well:

-- updated the behaviors on New Frame and Delete Frame, as they felt weird in practice. New Frame no longer auto-advances you to the new frame; Delete Frame no longer takes you backwards a frame after deletion.

-- there is now a working Background menu that shows you the currently selected background, shows you all the backgrounds currently in the game, and lets you select a new one.


-- began creating a dialogue editor. There is now a screen for it, it's possible to reach said screen via the cut scene editor, there are buttons that open windows to produce new dialogue and new scripts, said windows allow you to input the necessary parameters, and confirming after doing so creates new dialogue and new scripts, visualized onscreen as little gray boxes containing the Conversation ID or Script Name.


-- in the dialogue editor, clicking on the box for a dialogue or script now lets you edit its properties; the "add new branch or action" effect is now activated by a separate button just below the box.

-- added the OnReachingSpace dialogue trigger to the game's dialogue check system and fully implemented it in combat!

It contains the exact same parameters as before: the Y coordinate, the X coordinate, the name of the character who must trigger the conversation (if it can only be triggered by a particular character), and the army number of the character who must trigger the conversation (if it can only be triggered by a character of a particular army).

-- added the OnCharDeath and OnCharAttacked dialogue triggers to the game's dialogue check system, and fully implemented them in combat!

The first parameter of each has been changed--instead of referencing the turn number (because really, who ever used anything other than -1 for that?) it now takes the army number for whatever characters are to trigger the dialogue (by dying or by getting attacked, as the case may be). If you want to specify the triggerer using name or class instead, just leave this parameter at -1.

-- added the OnOpeningDoor, OnLockedDoor, and OnUsing dialogue triggers to the game's dialogue check system. They use the same two parameters as before, but now can take the last two parameters from OnReachingSpace as optional parameters. (Not fully implemented yet, as I haven't fully implemented opening doors and using triggered objects.)

-- implemented the r attribute for dialogue in the game. Instead of an integer, it's now just a simple boolean: false if the dialogue cannot be triggered again. If you don't use the r attribute, the game will just assume the dialogue can be triggered again over and over, ad infinitum.

-- the game now actively prevents OnReachingSpace, OnOpeningDoor, OnLockedDoor, OnUsing, OnCharDeath and OnCharAttacked dialogue from being triggered more than once in the same turn (even if it's repeatable).


-- cut scenes can now parse NewRoster tags, and will generate new rosters based on the loadIDs and num attributes they find in each.

-- the cut scene editor now has an Edit Rosters button; began work on an Edit Rosters window.

-- added the OnGrab dialogue trigger to the game's dialogue check system and fully implemented it in combat!

OnGrab contains the same parameters as before, but I've reordered them for easier usage: (1) the name of an item that must be grabbed from the sack to trigger the dialogue (important to distinguish it from other sacks); (2) the name of the character grabbing the sack (if the dialogue can only be triggered by a particular character); (3) the army number of the sack-grabber (if the dialogue can only be triggered by a character of a particular army grabbing the sack); and (4-5) the y and x coordinates from which the sack must be grabbed, if any.

-- the game now auto-replaces any ID[] tags it finds referenced in battlefield dialogue with the associated character's name.

-- during forced group introductions in camp, characters with the friendly personality trait now get a morale boost instead of a penalty (as well as a different narrative blurb).

-- adjusted object sprite positioning in battle scenes to better line up with spaces on the grid.

-- fixed a bug in which the game would not save the unityScene parameter properly for battles upon transitioning from the Daytime scene.

-- fixed a bug in which the game did not look up portrait data for generic "Either" units correctly.


Showed off the game at Indie City Games this weekend--and of course, I stumbled into something like seven different bugs while doing so. Thus, today is a bug-fixing day:

-- fixed a bug in which the game's combat AI would sometimes assign value to zero-value targets based upon damage dealt to them.

-- fixed a combat AI bug involving calculating the correct rotation direction for attack reticle patterns.

-- fixed a bug in which the character creator saved the portrait and sprite attributes for Either-gendered units incorrectly.

-- fixed a bug involving inappropriate method calls during cut scenes.

-- fixed a bug in which the game would not correctly discern all backgrounds in Resources when not in the editor. (Turns out, Unity just compiles all of the files into a giant blob, making such lookups at runtime impossible in compiled versions of the game! Lame. Changed the dynamic lookup to just a hard-coded list of backgrounds, less flexible and fancy, but it works.)


-- finished implementing the Edit Rosters window in the cut scene editor; you can now use it to set NewRoster tags for up to 9 different rosters!

-- all NewRoster tags are now properly formatted and saved with the cut scene when you save your cut scene in the editor.

-- fixed a bug in the AI which was causing the game to drastically undervalue moves that involved AOE skills targeting multiple enemies at once.


Took yesterday off for Independence Day (but still ended up spending time corresponding with artists); today, more work on the dialogue editor:

-- dialogues and scripts can now display their branches or actions (respectively), lined up in a column below (per the Telepath Tactics dialogue editor).

-- the dialogue editor now displays all dialogue and scripts already existing in the current scene when opened, complete with all of their branches/actions.

-- fixed a handful of bugs (including a particularly insidious one where the cut scene editor would load all of the dialogue and scripts from PersistentDialogue.xml, then resave them as part of the cut scene, leading to a snowball effect in which those scripts and dialogue would be re-added with every subsequent load and save of the cut scene)


-- object searches by name in the map editor's New Object window are no longer case sensitive.

-- the character creator's Inventory and Counterattacks window now has a button that will auto-generate an appropriate starting inventory and counterattack type for your character based on their masteries and their class.

-- capped unit speed at 12 in both the character creator and in the character leveling function, largely for performance reasons.

-- the character leveling function now checks for (and prevents) the acquisition of duplicate counterattack types.

-- the cut scene editor now automatically puts the cursor in the text input field when you open the Edit Narration window.

-- fixed a bug in the character creator where loading a character who was missing barks would throw an out-of-range error.

-- fixed a bug in the character creator wherein hitting New Character would not hide the character review screen from whatever character was there previously.

-- fixed a bug in the cut scene editor where the game wouldn't update the appearance (or disappearance) of frame progressions arrows after adding or deleting a frame.

-- fixed a bug in the cut scene editor where the game wouldn't update the appearance of the cut scene after hitting delete frame on the first frame in the scene, or on the last remaining frame in the scene.

-- fixed a bug in which the game would sometimes get confused by non-procedurally-generated shields in Items.xml, would treat them as procedurally generated, and then throw an error when the game couldn't find all the parameters for making proc gen shields out of them.

-- wrote some golem attack barks (which I had apparently neglected to add into the game previously?)


-- the individual characters and scenes listed for the open campaign in the campaign editor are now each individually clickable; clicking one will take you to the correct editor and automatically load whatever you clicked, allowing you to immediately begin editing.

-- you can now pan around the dialogues and scripts in the dialogue editor using the arrow keys or WASD.

-- in the dialogue editor, you can now edit the branch name, speaker name, and text in each individual dialogue branch (or, alternatively, the action type and parameters of an action) by clicking its associated box.

-- fixed a bug that was sometimes causing the dialogue editor to become trapped in an infinite loop.

-- fixed a branch numbering error in the dialogue editor.

-- fixed a ridiculous bug in which script and branch boxes within the dialogue editor would read clicks through the other UI elements which were overlaying them.


-- went through all of the script/dialogue actions I've implemented to date and catalogued them (along with descriptions of their parameters) in Actions.xml, in anticipation of putting code completion and an auto-parameter-guide into the dialogue editor. (By my count, as of this morning, we were at 44.)

-- updated the SpawnFloatingText action to take character name (or ID[] tag) for its second parameter.

-- implemented the SpawnFloatingTextAt action, which I had heretofore neglected to add. Parameters are: Text,Y coordinate,X coordinate,Color Name (optional),Frame Delay (optional).

-- implemented the PlayMusic action. One parameter: track name.

-- implemented GiveExp with a new "scale against level" parameter, allowing your experience rewards to scale up or down based upon how far from a target character level the unit is.

-- implemented FaceUnit, which behaves exactly the way the old RotateChar action did.

-- implemented FaceUnitToward, which replaces RotateCharToFace and RotateCharTowardPoint. FaceUnitToward has four parameters: the character name, the y coordinate to face, the x coordinate to face, and the name of another character to face. (The last parameter is optional; if used, it will override the coordinate parameters with the coordinates of the second named character.)

-- implemented DamageChar, which gains the new "affecting" parameter that DamageCharAt received.

-- added support for searching by ID[] tag in the Nighttime and Cut Scene scenes.


-- added a list of the most commonly used special characters in the "text" field for the Edit Branch window in the dialogue editor.

-- created plus and minus circular buttons for use in the dialogue editor.

-- created a little UI widget for the Edit Branch window in the dialogue editor that can be used to display actions and replies used in the branch; little plus and minus buttons in each widget will eventually allow you to remove or add the action or reply in the slot.

-- the dialogue editor now displays the current actions and replies (up to 6 of each) in the current branch when the Edit Branch window is opened.