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


-- received the first of the new cut scene backgrounds: the forest!

-- in the dialogue editor, the plus and minus buttons in the Edit Branch window's action and reply slots now actually add and remove actions and replies from their associated dialogue branch.

-- added descriptions to each of the actions listed in Actions.xml.

-- implemented NextScene.

-- implemented NewScene. It has one parameter: the name of the scene to load.

-- implemented AddObjective and RemoveObjective. Each has one parameter: the text of the objective to add/remove from the list of objectives shown to the player.

-- implemented MoveUnitBy, which replaces MoveCharBy. Same parameters: character name, spaces to move along the y-axis (negative integers move up), and spaces to move along the x-axis (negative integers move left).

-- implemented LearnSkill, which replaces the old TeachAttack and TeachAttackTemp actions. Three parameters: character name, skill name, and an optional third true/false parameter telling the game whether the skill granted lasts only for the current battle. (Delimit skills with a | in the second parameter to learn multiple skills at once.)

-- implemented IfGoneGoTo. First parameter: character name. Second parameter: branch number. Used in battle, this takes account of whether the named character is on the battlefield; used outside of battle, it checks whether the named character has a Wound Level of 0 (i.e. isn't out of commission from having been brought to 0 health or less) and is in the current roster. If the answer is no, the game goes to the specified dialogue branch.

-- implemented IfGoneRun. First parameter: character name. Second parameter: script name (or names, each delimited by a |). Used in battle, this takes account of whether the named character is on the battlefield; used outside of battle, it checks whether the named character has a Wound Level of 0 (i.e. isn't out of commission from having been brought to 0 health or less) and is in the current roster. If the answer is no, the game runs the specified script(s).

-- you can now change a unit's Sprite Set via SetStat; doing so in battle now automatically changes the unit's appearance to match its new sprite set.

-- changing a unit's Army via SetStat in battle now automatically changes the unit's color to match the new army.

-- fixed a bug in which the game would throw null errors if branch 0 of a dialogue called EndConvImmediately.

-- fixed an annoying z-sorting bug that would sometimes affect sprites in battle.


-- in the dialogue editor, clicking the main portion of the Edit Branch window's action and reply slots now open a window to edit the clicked-upon action or reply. Any edits are saved to the dialogue upon confirmation.

-- implemented the Run reply type. One parameter: script name (or multiple script names delimited by | characters) to be run when the reply is clicked. (Note that your chosen script is going to need actions like GoTo or LastBranch if you want it to actually change the dialogue branch!)

-- changed Actions.xml to ActionsReplies.xml. Added all current reply types to the file, with descriptions and parameters.

-- typing in the Action Type or Reply Type field of the Edit Action / Edit Reply windows will now produce little buttons right below the input field that predict what you're in the process of typing. Clicking one of these buttons will autocomplete the text for you, provide a description of the chosen action or reply, and fill in the parameters field with placeholder values letting you know what parameters you need (if any).


-- received the nighttime variation on the Forest background art from the background artist.

-- in the dialogue editor, you can now delete dialogues and scripts, as well as individual branches / actions belonging thereto. The remaining dialogues / scripts / branches / actions will shift to fit any gaps left by the deletion.

-- added support for the special character -BRANCH:- into the game. This replaces BNAME[], and is treated as the number of whatever branch within the current, active dialogue happens to have the branch name appearing after the colon. (Useful for the "GoTo" actions, or for storing a particular branch number as a VAL in advance.)

-- added support for the brand-new special character -PICK:- into the game! This allows you to easily make the game select at random from among multiple strings, each delimited by a | character. For example:

Bob Speakington/You are -PICK:a total jerk, you know that?|a real piece of work, pal.|the absolute worst!-

This can produce dialogue for Bob Speakington consisting of You are a total jerk, you know that? or You are a real piece of work, pal. or You are the absolute worst! Each option in -PICK:- has an equal chance to be chosen; to weight one option more than the others, simply place it in the list one or more additional times. For instance:


This will generate an enemy Axefighter, Bowman, or Spirit, with a 50% chance of an Axefighter and a 25% chance for each of the other two.

(Note: avoid using hyphens in the strings you're making the game pick from within this special character--they're likely to cause an error.)

-- fixed a bug in which the game would not process the text within individual dialogue replies, and would therefore ignore special characters used there.


-- added up and down arrow buttons to the ends of actions and replies in the Edit Branch window of the dialogue editor; clicking them now shifts around the position of actions or replies, letting you change their order.

-- added up and down arrow buttons by the top-right of branches and actions in the dialogue editor; clicking them now shifts around their position, letting you change their order.

-- you can now zoom in and out in the dialogue editor using the mouse wheel.

-- improved the information displayed in the delete confirmation window in the dialogue editor.

-- fixed a bug in which deleting a dialogue branch or a script's action in the dialogue editor wouldn't update the branch/action count in the box at the top of the dialogue/script's column.

-- fixed a graphical formatting issue in the Edit Branch window of the dialogue editor.


-- the cut scene editor now has a window where you can assign dialogue to the current frame of a cut scene.

-- on opening, the cut scene dialogue assignment window populates buttons with each of the dialogues present in the scene; mousing over one shows a preview of the first two branches of that conversation, and selecting one adds it to the current frame.

And with that, I have finally completed all basic functionality for the cut scene editor!

-- upon closing the dialogue editor, the scene now gets updated with all of the new and edited dialogue and scripts.

-- added the dialogue editor into the map editor as well, so that you can edit scripts and dialogue for both cut scenes and regular battles inside their respective editors.

-- fixed a bug in the dialogue editor in which the branch / action counts for a primary dialogue / script box would not update upon adding new branches / actions via the Add button.

-- I changed the syntax of the special character -PICK:- to PICK{}. This change will allow the usage of both hyphens and all non-PICK{} special characters within any given instance of PICK{}. The examples above would now be written:

Bob Speakington/You are PICK{a total jerk, you know that?|a real piece of work, pal.|the absolute worst!}


-- the inventory and counterattacks window in the character creator now has a sub-window you can open to display all non-generated items available in the current campaign. You can then flip between pages and mouse over each item to inspect their properties, and click to add them to your character's inventory auto-magically! (This way, you won't have to memorize all the item names, or have Items.xml open in a separate window just to adjust character inventory within the editor.)

-- added this item sub-window to the Unit Properties window in the map editor as well, for purposes of more easily giving units and destructible objects items in that particular scene.

-- the game now actually tries to find the named music track specified in the scene's musictrack attribute and play it when you load a battle or cut scene.

-- added null-checking to the playMusic() and playSound() methods in the game; this will prevent the game from crashing if the music or sound you try to play isn't found.

-- fixed a typo in the image names for regular and plated non-generated boots.


-- created vertical variants of the door, gate, and portcullis 3D objects.

-- created directional variants for the CastleWall, CaveWall, and HouseWall object sets.

-- halved the maximum camera pan speed to improve the feel of screen edge panning during combat.

-- fixed a bug in which the character screen displayed poison resistance, shadow resistance, and light resistance in the wrong fields.

-- fixed a bug in which the game would reset the objects shown in the New Object window of the map editor every time you opened it, even if you'd last left them narrowed by a particular search term. (This fix makes certain activities, like placing different segments of wall down, a lot quicker and easier.)

-- fixed a typo in one of the Flirtatious attack barks.

-- fixed a typo in the "dance" variant of the Joke nighttime activity.


-- winning a battle now correctly progresses the player to the next scene, as specified in the battle's nextbattle attribute.

-- the game now applies impact damage when units collide from a knockback skill. I've simplified the impact damage formula a bit from TT: the unit getting hit now simply takes Crush damage equal to 33% of the maximum health of the unit that got shoved or thrown into it (but never less than 5).

-- added dialogue trigger information to ActionsReplies.xml.

-- starting to type in a dialogue trigger in the dialogue editor now provides predictive text results in the same fashion as actions and replies; clicking a result yields the trigger's parameter information and general description.

-- if one of the predictive text matches is a 100% match, the editor now auto-selects it...but only if the parameters field is empty. (It does not do this if the parameters field has text because selecting a predicted result clears the parameters field.)

-- fixed a bug in which the game would crash when trying to proceed to the next scene from Nighttime after loading into Nighttime from a saved game.


-- got a new background: camp!

-- implemented the new camp background in the Nighttime scene; updated scene UI to work with the new background.

-- you can now access and use the Reserve Supplies screen in the Daytime scene, outside of battle.

-- wrote a new variant on the Perform Music nighttime activity for Jokester characters.

-- programmed functions for managing faction reputations.

-- fixed a bug in which certain variable values (such as the number of days passed) would be carried over when quitting an active game and starting a new game.

-- fixed a bug in which the game would sometimes sign a character up for a partnered activity when they couldn't meet the requirements for any of the corresponding activity narrations.


-- the dialogue editor now supports duplication of branches (in dialogue) or actions (in scripts); just press the plus button on the right side of the branch/action box, and the corresponding branch or action will be duplicated, then added to the bottom of the dialogue/script.

-- the dialogue editor now displays a message at the top of the screen when you move a branch or a script action to make it more clear what you did.

-- added mouseover tooltips to all of the buttons attached to each dialogue, script, branch, and action box in the dialogue editor.

-- added mouseover tooltips to all of the non-skill action bar buttons in battle (Talk, Grab, Rotate, End Turn, etc.)

-- fixed a null error caused by clicking the Talk button at inappropriate times in battle.


-- the game can now import level data for lights! These use the <Light> tag, as before--now, however, their info is contained in attributes, making them human-readable. Other than coordinates and type, their attributes are float values; the only type currently supported is "Point Light." Intensity supports values of 0-8.

This, for instance, will produce a medium-strength white-colored Point Light at 4 , 4:

<Light type="Point Light" size="1.0" intensity="4.0" y="4" x="4" A="1.0" R="1.0" G="1.0" B="1.0"></Light>

-- the game successfully loads point lights when the level loads, with all of their properties adjusted as specified.

-- implemented the Global Lighting level condition. This takes either 1 or 5 parameters; the first parameter can be either a preset (currently supported: Night, Overcast, Sunset, Indoors, and Cave) or a float value for lighting intensity. The other four parameters are A, R, G, and B values, in that order.

-- completed directional variants for the FenceStone and FenceWood object sets.

-- added action Recruit (previously called RecruitChar); adds a character to a specified roster. One parameter: the character's loadID*; second, optional parameter: the roster number to be recruited to (if not specified, the unit is recruited to the default roster: roster 0.)

-- added action Dismiss (previously called DismissChar); looks for a character that has been added to a roster before; if it finds them, it removes them. One parameter: the character's loadID*; second, optional parameter: the roster number to be dismissed from (if not specified, the unit is dismissed from every roster in which they appear.)

-- added action Transfer (previously called TransferChar); looks for a character that has been added to a roster before; if it finds them, it removes them from one roster and places them on another. Parameters: the character's loadID*, the roster number to be transferred from, and the roster number to be transferred to.

-- updated ActionsReplies.xml with descriptions and parameter guides for the new actions.

-- fixed erroneous positioning of basic cave terrain tile.

-- fixed a bug in which Unity was wiping out the rotation data on directional variations for destructible objects upon spawning them.

-- fixed a bug in which the game would not re-save saved data for characters not appearing in the previous battle.

* if the character has been spawned in battle before, you can substitute its name or an ID[] tag for the loadID--but if it hasn't, this won't work.


Got some feedback at Indie City Games this weekend, which I'll be using to make improvements going forward!

-- one of the things I noticed is that people had a tendency to exit the editors without saving their work. The map editor, cut scene editor, and character creator now track whether you've made changes since your last save, and each pop up a "do you want to save before exiting" window if you try to exit with unsaved changes.

-- pressing the New Map or New Cut Scene buttons in the campaign editor will now automatically act as though you'd clicked the New Map/New Scene buttons in-editor after you're taken to each of these editors (instead of making you find and then click New Map/New Cut Scene again within each editor after being taken there).

-- created the "Fill" tool in the map editor; changes all of the tiles on the map to one terrain type.

-- implemented global lighting in the map editor. When loading a map with a global lighting condition (or adding a new one to the current loaded map), the lighting in the editor automatically changes to match it.

-- received a new sunset variant on the camp background.

-- you can now access the reserve inventory when returning to camp in the evenings.


-- global lighting is now simulated for 2D sprites on the battlefield via color tints (this same simulation is applied in the map editor as well so you can preview the level's lighting effectively).

-- added the Lava (previously LavaDark) global lighting preset into the game.

-- received a new nighttime variant on the camp background.

-- fixed a bug in which the game had stopped fading out characters whose turns were over.

-- fixed a bug in which the game would fail to load the list of campaigns in the New Game menu unless it could find the custom campaigns directory.

-- when exiting a scene but there is no next scene specified, instead of locking up, the game will now simply return to the title screen.


-- rewrote the default Introduction.xml cut scene that every new campaign starts with so that it serves as an effective mini-tutorial to using the cut scene editor.


-- added weather effects to the game! They appear both in battle and in the map editor (as with global lighting, setting a Weather condition in map settings and confirming the change will make the map immediately preview the new weather). Weather effects currently supported: Rain, Snow, Heavy Rain, Heavy Snow, and Ash.

-- added the selfLight attribute to premade units; this functions like the old lighting attribute, but it has a few more properties you can play with. Delimited by forward slashes, the properties of selfLight are: size, intensity, R value, G value, and B value. All of these are floats, and behave the exact same way as free-floating point lights.

Lit campfire objects, for example, have this:


That's a standard smallish light, medium-low intensity, and reddish-orange in color.