September 2015 Development Update

Greetings Wizards,

During the month of September a lot of artwork has come and is starting to really fill out the content for the main storyline of the game.

Alex has completed the final artwork for the Owl pet and now he’s ready to be animated. We’re still not quite sure what kind of help or abilities the pets are going to have, but we’re looking forward to your ideas and feedback as the alpha and beta programs start in a month or two.


Owl pet final artwork

We’ve also spent a huge chunk of time getting some new environment visuals online, but they’re not quite ready to show yet; So we decided to give you a little behind the scenes look at the tech used to create the environment and game world. Below is a screenshot of how all the 2D images are laid out in the 3D game engine Unity.

Normally the camera is looking straight on the images making the set of 2D images appear to be 3D due to the forced perspective in the art. However, here we’ve altered the camera perspective and position so you can see what the world looks like when viewed from the side which just a bunch of 2D perfectly flat images.


Rogue Wizards Environment Technology

Although most of the environment is built by the random generator, we also have a set of tools that allows us to create small pockets of a level using a hand placed layout. This screenshot shows a small arena we’re building for a boss battle in the Rift of Fire using hand created placement for floors, walls, and all deco objects that can then be inserted into a larger level by the random map generator.


Rogue Wizards sub-map and markers technology

Here’s the development highlights and details from the past month. Want to talk about these changes or other aspects of the game, then visit us in the online forums.

Major Features and Changes:
– When a town dwelling inhabitant has something new to say, clicking on that structure now bypasses the entire context menu open/selection and immediately executes the play dialog logic on click
– Cavern environment art nearly complete
– Added foreground parallax silhouette to Cavern environment
– Added unique environment elements for the Rift of Fire
– Music enabled is now saved via application settings file
– Added placeholder images to town intro cinematic
– Added non-placeholder text for town intro cinematic
– The town travel gate now has swirl and glow effects only when there is a valid destination to travel to
– Item summary UI which shows the attack/defense defense delta for the item in the slot is now colored green/red with +/- in the context of *that* item (not the item being compared against)
– Cosmic Rift now has floating small floor diamonds as walls
– Hooked up remaining NPC dialog logic for Dungeon Blacksmith Quest (Adira)
– Hooked up all in dungeon npc dialog for armory quest
– Caysin is now found just inside the Rift of Fire

Balance Changes
– Drastically reduced drop rate of items
– Drastically increased power of spells
– Drastically increased the material cost of spells
– Removed the champions extra health affix
– Drastically reduced the damage and defense bonus for champions
– Improved the effectiveness of a lot of spells like Freeze, Banish, etc
– Increase field count for electric field at lowest levels

– All Kickstarter NPC backers are fully animated
– Hosperak big bad boss artwork complete
– All 6 guild wizard mid-bosses artwork is complete
– Male and Female medium armor artwork complete
– Male and Female heavy armor artwork complete (includes rework of existing male heavy armor)
– Cleaned up Gryphon layer names and edges
– Exported all Gryphon art layers to be animation ready
– Tweaked Dryad hit animation to be faster and not tilt back so far

User Interface:
– There is now a pulsing level up on the AttributeSummaryUI on the character pane when there are attribute points to spend to make it more obvious
– When NPCs in town have multiple new unread dialog, the dialog is now auto-batched up into one since seamless display in the dialog UI one after another.
– Armor now has item summary UI’s appear on them
– Hoving the mouse over an inventory slot now causes a visual selection box to occur on slots that contain items

Code and Framework:
– Created placeholder Guild Wizard of Fire
– Rift of Fire quest now spawns the placeholder guild wizard of fire
– Added Boss Combat Quality, the guild wizard of fire is created with it
– Removed First Boss Combat Quality, there is no first boss anymore
– Added support for the boss spawned by a kill quest to be explicitly specified via an Actor prefab as well as an explicit combat quality
– Spine components sometimes generate an _Atlas and _Material somehow … instead of using our own hand created ones, we now use the auto generated ones so that they hopefully never auto generate again
– Moved all Spine images for characters into _Images subfolders, updated all spine project files to point to the new location
– Deleted all old material and atlas files that were hand created
– Setup all environments to now use treasure markers
– Elemental environment placeholder assets are now setup
– Fixed scrolling on Cosmic Rift stars and rift of fire background
– Debug settings like god mode, no ai etc are now stored in the app settings file so you don’t have to reset them for every new game
– Wiped existing app settings files
– Added app debug setting to turn tutorial tips on/off
– Moved loot crystal audio and images to the shared actor area
– Created a working treasure marker set for the new elemental environment
– Removed travel menu items for sky castle, ice castle, and forest
– Added travel meu items for Elemental Fire and Rift of Fire levels
– Renamed the old elemental fire scene and levels to be called “Cosmic Fire” to differentiate it from the new “Elemental” tileset coming online
– Rift of Fire now features a red spinning portal-ish background
– Added Elemental Fire theme for the fire rift level
– Added “Rift of Fire” as a variation of the Cosmic enviornment with special walls and cell colors
– Moved all generators, map markers, level chains, and level prototypes into their respective environment folders
– Broke the prefab connection between LevelChain and MapMarker, the connection is now done by enum id so that the maps sprite atlas is not pulled into dungeon maps
– Moved WorldMap from UIManagerCommon to TowerMasterCommon since it’s only used in the tower maps
– Environment/Shared is now Environment/_Shared
– Environment/Debug is now Environment/_Debug Tools
– All environment materials are now called “_<Environment> Sprites 01” as well as their corresponing generated texture atlas
– “Intro” environment is now “Inn”, all prefabs have been renamed for consistency
– Difficulty icon is now rendered on hud atlas and prefab link is moved from WorldMap (maps material) to QuestManager (hud material)
– Moved the logic for requiring a follower before proceeding into the base Quest class
– Added support for {SpeakerName} in dialog text
– Added bare bone quest files for the fire dungeon
– Uniquified the dialog labes in Dungeon_Armory for LearnNPC 01 and 02 in the Storyline goole doc and did another export into the game data
– Implemnted dialog conversations for Carm in the armor dungeon after 15 and 30 battles
– Removed the LevelParameters class and moved the small amount of data that was there into LevelPrototype
– Cavern and Cosmic levels now always start with a tiny level and have an optional tiny level at the end of all level chains
– Moved all Level/Location .prefab data from Assets/World into Assets/Environment/… in each of the respective environment folders
– Deleted old level param prefabs
– Localized the text for the “Level Up” buttons
– Fixed some inconsistency with tooltip and slot selection display when dragging and dropping items around the inventory, especially when picking up and dropping on the same slot, sometimes the visuals would not re-fire
– Fixed the currency indicator on a few upgrade controls (vault, vendor, buildable)
– Slightly cleaned up the API for dealing with inventory slot selections, this part of the code is old and a mess though and could use a complete refactor one day
– VendorUI no longer has a restricted UI object so that the input manager inv slot selections can work, it already has an input blocker to prevent input going through to the scene via the dual window ui input blocker
– Added support to show ItemSummaryUI elemnts on any ivnentory slot and not just shortcut slots
– When picking up items in the world that are vertical (North or South) from your location, the player does not attempt to face the object in question
– Fire Giant magic attack is now faster, the animations have been sped up and the sustain time of the ropes has been decreased
– Fixed targets changing orientation when damaged by open flames
– Combat.DoCombat() no longer does an OrientTo() between source and target if they reside in the same cell
– Fixed telepads, they were incorrectly marked as one shot and their teleport skill needed to be marked as “ok when inactive”
– Ice Castle, Sky Castle, and Forest experimental environments can now be seen using the debug travel menu
– Created an animation preview tool where you can select the NPC and animation to display
– Added “Animation Preview” scene and UI component, the scene is populated with a couple of scrolling listboxes to select the NPC and the animation to display
– Created actors for all NPCs in the game
– Created art for a scroll bar and thumb to be used with the listboxes
– Animation Preview can now be accessed from the Home debug menu at the Title or from within the game
– Dungeon and Cosmic pebbles are now color with floor color
– Simplified the text message displayed when using an exit portal in a dungeon.
– Fixed replicated blobs dying upon summon when summoned from a blob with a rank higher than 1
– Combat.DoCombat() now early outs if the owner is already dead
– Fixed Chakram trying to do combat on dead things, this can happen if the pre-calculated targets died during the Chakram flight to previous targets … like killing the Boss of summoned minions, now the attempt at combat at the auto killed minions does nothing. This fixes those minions never dying because their death animation was overridden by the on hit of the combat
– Items that cannot be picked for any reason now flippy to adjacent cells if the cell they reside in contains more items that can be picked up. This allows you to move a material out of the way and pickup gold or a weapon that is sitting under it. Note that shuffing the material to the bottom of the item pile is not sufficient because materials are always Z sorted on top of other items cause they float.
– Walls can now be flipped horizontally to add varation
– Added to bools in the CellSet to allow for flipped floors and walls
– Adding some missing .meta files from yesterdays HockyApp changes
– Rebuilt Cavern atlas
– Removed Cavern Temp material and atlas
– Reworked the Backdrop so that billboard scrolling is easier to control
– Disabled Cavern foreground stalagmites for now
– Cosmic Rift floating rock backdrop is now super layered with paralax and randomized coloring
– Fixed town portal being active during town intro quest
– Bumped up version for another ios build
– Upgraded to new version of HockeyApp in the proper location Assets/HockeyAppUnityIOS and Assets/Editor
– Deleted old HockeyApp stuff in Assets/Plugin
– Cleaned up the contents of Assets/Editor and moved all inspectors there into better locations in Asssets/Scripts next to their respective systems in new Editor subfolders
– Changed all the marker actors for dungeon and cosmic environments to use the icons on the Tools 01 sprite atlas
– Colored each of the marker actor sets uniquely for each environment so you can see it a glance if the wrong marker is in a set from a different environment
– Added grayscale flame for torch to try out in the cavern, tried it, didn’t like it … but leaving the images there for future use that might be cool.
– Cavern environment now has a first pass at deco, breakable, and treasure objects
– Created a set of Actors for the Cavern
– Created set of marker sets for Cavern
– Created all necessary actor sets for cavern
– Added new Tools 01 material for textures to be used on “Marker Actors”
– Created new icons for all marker actors and the actors themselves, we have: Treasure Left/Right/Any/NoDir, Breakable Left/Right/Any/NoDir, Blocking Left/Right/Any/NoDir, Wall Left/Right
– Marker actors that resolve to zero instancable variations are now ignored
– Adde actor class “InstanceForbidden”, which is set on all marker actors
– Wiped save games
– Broke up town travel gate art into base, top, and effect layers
– Interact indicators are now refreshed an additional time before we fade from black upon map load
– Added travel gate effect refresh during TravelGate.UpdateInteractIndicator(), which is now a virtual of Buildable
– Cavern foreground effect now uses the player “standing center” point instead of exact screen center
– Cinematics are now capable of actually displaying images and text
– Added a simplistic “Slide” component for cinematics and setup 4 slides for the TownIntro cinematic
– Added an input blocker to the CinematicManager that is now active when a cinematic is running
– Moved dialog audio code into DialogManager which is now shared between town dialog UI, dungeon dialog bubbles, and cinematic text display systems.
– Added TownCinematics prefab so that the cinematic is referenced only from the town scene
– Fixed all quests not being a part of the master list and not being able to re-load after completing them due to property resolution.
– Added story quest names and descriptions.
– Triggered the 3rd and 4th random quest availabiliy via the fire complete story state and find pallom story states respectively
– Fixed background image for Cosmic Rift and Town not sizing properly for parallax scrolling
– Fixed timing on TownIntro timing releated to dialog completing, since the dialog is now completed when the last line is displayed … a new event called DialogUIClosed has been created for this intro quest to use in order to show the opening cinematic as well as any in world instructional/tutorial text and logic.
– Refactored cavern foreground effect to use recycled sprite objects as well as spacially partition the images for efficiency and sprite use
– Backdrop parallax factor is now separated into X and Y
– Backdrop can now be attached behind the map and in front of the map
– Enhanced Backdrop layer to color from the layer, adjust the parallax per layer, scale images, and random mirror the images
– Fixed floors being invisible in the tower map the first time you entered it and it was generated
– Refactored the Background API so that Cell.ChangeCellSet() can now properly handle changing the background images of a cell when it is already instanced as is the case in the tower map when structures are built and they change the background images of the cells they reside on as well as surrounding cells.
– Added a new .settings file in the data directory for the app, currently this holds only music in/off, volume, and expo mode settings
– Moved audio options from MusicManager to AppSettings
– GameSettings is now instanced via a prefab and is a monobehavior so we can visually change the defaults via the Unity inspector
– Bumped save game versions and wiped save games
– Fixed perforce and jira backup scripts not properly copying the latest file to the temp transport folder for a single move of the file to the final cloud folder drive
– Cell floor, wall, cut wall, and front images are now recycled using game object pools, this cuts down the object count in a level by about 1,500 game objects
– Fixed some quest dialog links during the intro/inn quest since they were re-exported with new names based on quest name and broke the links
– Added list of object pools for cell background images to the map instance
– Refactored BackgroundImage to allocate and free the image based on cell activation and deactivation using new object pools owned by the map
– Fixed wall bits being set on a cell after changing its type
– Cells are no longer considered revealed or revealing if their target reveal amount is zero … this is so we can get the immediate reveal state of the cell accurately without having to wait a frame for the cell to update and change the formal reveal state
– Small tweaks to cavern wall art for more consistent shadows on the tall wall sides
– Tall wall calculations now extend another cell up in the vertical
– Added support for a new set of wall art called “front” walls, these may be used for the Cavern environment silhouette front rocks
– Added a version to the Map save chunk
– During map generation, a wall is considered a “bottom” wall if there are any cells above it, not just floor cells … this allows for walls that are stacked directly below other walls also have cut and front atwork which happens at the corners of rooms or areas
– Pulled Background.StateData into a separate source file as BackgroundImage
– Added logic to Background for m_frontState sprites
– Refactored the background state transition logic to use a dirty bit to simplify all the code
– Formalized dialog search options with DialogPrototype.SearchFlag and DialogPrototype.PassesSearchFilter()
– Added bool to DialogPrototype “AutoChainedAllowed”
– DialogUI can now seamless chain unread dialog together in a signle display in the UI
– Added logic to QuestDepot.GetInteractDialog() that works with the story state dialog, quest instance dialog, and new quest dialog
– Exported all town dialog now tha the story states have new prefab names
– Changed auto generated quest dialog to include the name of the quest in the prefab name
– Completed the debug tools to auto advance the player to the next story state. Any relevant map changes, dungeon closing, quest instancing, and quest completion is automaticially done for you. This tool his hooked up in the home menu and the Control+Q menus hotkey.
– Added ability to surpress notifications on level up
– Added ability for Storyline to display notices when activating a story state
– Story state activations are now logged to the console
– Tweaked console colors so that the alternating darker lines are just darker versions of the opposite lines (instead of blue tints)
– Created Game.GotoTowerMap()
– Added QuestCollection.AddFlags and gave options to ignore the limit as well as auto accept the quest added
– Fixed bug in QuestGenerator.TryGenerateQuests() that would fail to generate quests due to || operator precedence short circuiting some logic
– Added temporary title and descriptions for all story quests
– Story dialog is now retrieved in such a way that you can never miss previous conversations with town inhabitants, even if the game state has moved on and given them something new to say first you see the old dialog then the new dialog.
– Added 4 more story states for Dungeon Intro Availalbe/Complete and Town Intro Available/Complete to formalize the movement through the main storyline which is now governed completely by advancing through the story states … this will make debug commands to advance the story easier to create (coming soon)
– Removed QuestPrototype.OnCloseGiveQuest … this was only used to give the town intro quest when entering town and closing the dungeon intro quest, that logic is now governed by the new story states added for DungeonIntro and TownIntro
– Chagned debug command to “Give Town Quest” to be a generic “Advance Story State”, still needs a little work to be functional tho
– Picking up the intro journal scroll no longer gives you the Dungeon Intro quest, instead it now just activates the first story state “Dungeon Intro Available”
– Added support for story states to immediatly instance any quests they grant, this is set for the dungeon and town intro quests to instantiate their quests as soon as the state is set
– Story quests can now become enabled when the player achieves a certain rank … set all the story quests that need to rely on this mechanic to have valid rank values (will certainly tune this over time)
– Renamed story states to use numbers so they story in order in the inspector
– Added sorting option to AutoPrefabSet<T> to put the element found in alphabetical order
– AllStoryState set is now sorted to assure that earlier game state appear in the list before later game states … this is is necessary to maintain a consistent linear storyline when two states get enabled at the same time which could happen with an excessive level up for instance
– Story quests are now consistently activated and granted via the story state prefabs
– Removed unnecessary fields from Quest and Buildable that set story states
– Added support to story state to be activated by the closing of a quest
– Reworked the Blacksmith->Armorer->Jeweler quests to be activated using the new logic contained wholly in the StoryState for those quests
– Removed DialogPrototype.OnDismissedSetStoryStatePrefab (it was not used)
– DialogImporter wizard now supports all current story quests
– Exported all quest dialog data
– Created placeholder TownArtifacts source files for Quest and QuestPrototype
– Created .prefab data for all story quests
– Added Cormac NPC
– Fixed starting quest chains to spawn and use the correct set of NPCs for the new story data
– All structures cost nothing to build at level 1
– DialogImporter wizard no longer deletes “deprecated” generated prototypes, instead it just renames them to have a “_DEPRECATED” prefix
– Upgrade to Unity 5.2.1
– Upgraded P4Connect to 2015.2.122.0542-Release
– When opening cell menu, we bypass it and play dialog instead of the buildable (or inhabitant) has something new to say
– Poolified the ContextMenuFunction.Parameters and made a class for passing through the message system to avoid C# boxing and dynamic memory allocation
– Removed the unnecessary ‘ref’ keyword from the context paremter during the exectue code path for ContextMenuItem and derived classes