December 2015 Update

Greetings Wizards,

At the beginning of December we started the Rogue Wizards closed alpha program and received a ton of great feedback from everybody. Your feedback for what to improve next in the game is invaluable to us, thank you for all the countless hours of exploration, loot hunting, and monster slaying.

Through December we’ve continued to press forward and got all the engine NPC coloring working. Now when you find companions they’ll have some variation in their visual look.

rogue-wizards-cosmic-rift-large

NPC coloring

One thing we got a lot of feedback in the alpha was to improve the item tooltips and make it easier to compare new loot with existing gear, so now every property has a comparison up/down arrow as well as an overall better or worse attack/defense arrow. Also, because many weapons can be readied at the same time a lot of thought has gone into deciding which single weapon to compare.

rogue-wizards-item-comparisons-large

Item and property comparisons

Finally, during the alpha we managed to get the entire main quest storyline in the game in rudimentary form including all 6 elemental rifts and placeholder Guild Wizard bosses. We’ll be improving all these areas and adding unique AI and powers to each boss over the next few months.

rogue-wizards-earth-rift-large

Earth Rift

Here’s the development highlights and details from the past month or talk about the changes in our Online Forums.

Major Changes

  • All 6 rifts are now accessible at some point during the quest line, each of them contain a Guild Wizard boss (their AI and dungeons needs lots of work still), journal scrolls, and rewards
  • Radically changed XP curves. Note your player current xp level progress has been set to zero, however this will not happen in future updates when XP curves are rebalanced
  • Radically changed vendor upgrade prices
  • Massive overhaul to item tooltips using up/down arrows and smart selection logic on what currently equipped item to compare against
  • Lots of preliminary code and artwork on a new town visual presentation, will be live in a couple of weeks

Minor Changes

  • NPCs are now colorized by the game engine so they all look different
  • Increased block chance for shields and the blocking bonus affix for shields
  • Thieflings now always have 2 actions per turn
  • Dagger, Chakram, and Bow damage decreased
  • Experience and Defense shrine duration decreased
  • Thieflings are now limited to stealing 2 items max
  • Thieflings now become scared for 3 turns and run away if you hurt them
  • Chests now show a floaty key to indicate a key was used to open the chest
  • Materials will no longer spawn if you are already at the inventory limit for that material
  • Items that cannot be picked up are now always flippied to an adjacent cell
  • No inventory full message is displayed when you can’t pickup materials when at the limit now
  • Health regeneration now regenerates health on turn multiples, has been rebalanced for regneration values, and fixed the regen 0 health bug
  • Click and hold movement no longer also requires a pointer drag too in order to start the movement
  • Wandering merchant now always have 2-3 potions available
  • Replicated blobs no longer replicate champion qualities to their offspring, that was brutal!
  • Health potion recipe has been changed to just 10 fire materials for now
  • Most follower backstory delivery in the dungeon will now only be done after a kill count condition is met *and* there are now hostiles on the screen (and the follower is visible and not dead etc)
  • Evi can now be found in the Earth Rift dungeon
  • Audrey is now found earlier in the Blacksmith dungeon cause finding her in a tinly last level was not fun
  • Traps now occur on 100% of the levels at rank 2 or higher (dungeon only for now)
  • Removed follower quips when you take loot because it’s making people thing you can share with the followers or do more complicated stuff with them.
  • Added Chakram 03 into the game

Framework

  • Renamed more sundries assets to be supply depot
  • Updated quest dialog to not talk about building the tower and Merrol now builds it for you
  • Sundries is now the Supply Depot, updated layout, quest dialog, and actor display name
  • Updated in dungoen overworld gateway to use the new vortex swirl
  • Fixed camera zooming into travel gate when using it in the town map
  • Fixed billboard sizing
  • Recipe select arrows on the craft UI are now hidden when there is only 1 option
  • Camera now pans during area unlock reveal sequences
  • Added sound effect to area unlock
  • UISound.Play() now has a delay in seconds parameter
  • Moved armory location in town
  • Fixed structure positions upon save game load
  • New test art for town
  • Areas now have connectors that are revealed after area unlock effects are done
  • Added test art for tower islands from Phil
  • Created prefabs and deco test for town
  • Sprite sizer now understand always v flip and always h flip flags
  • Fixed sprites with static random animations playing those animations when enabled
  • Unified the player load code path to always occur after the map is allocated but before the map is generated or loaded
  • Added additional debug logic to allow for loading the town scene directly from unity and being in the right state to start playing
  • Removed blueprint loot tables
  • Added area key rewards to all quests
  • Resized town interact icons
  • Town can now be saved and loaded, added Transfer() functions to all necessary classes
  • Removed story state advancement via buildable events and replaced with area unlocked events
  • New town now works with the first TownIntro quest
  • Town areas can now be activated and have a crude activation animations
  • Actors now can officially have an m_area they reside in
  • Moved interact buildable prefab to new town directory and exported higher resolutions of all icons
  • Fixed interact indicator placement on buildables
  • Added Actor.InteractAllowed which checks for null cell references
  • OnEnterMap is now called for actors in areas … changed the call chain to all use MapBase where needed
  • Added Player.GiveAreaKey()
  • Cinematics can now rush complete the text by pressing any input
  • WaitForAnyInput can now be cancelled
  • Moved TrackObjectCount and ConsiderPointOfInterest to MapBase
  • Added quest event for area unlock and area reveal complete
  • Area actors are now placed inside the AreaState for unlocked only
  • Added Area.IID
  • Added AreaKeyComponent, these actors unlock areas in town
  • Added Area Key Rewards to all quests
  • Added Forgestone and Cauldron town buildables
  • Removed Map.Type and replaced with IsTown and IsDungeon methods and properties on a LevelPrototype and LevelSpec
  • Copied TowerManager logic to TownManager
  • Added AreaKey actor class
  • Added AreaKey inventory
  • Set general inventory to now accept area keys
  • Added ability to auto use area keys when returning to town to unlock new areas
  • Set Game prefab to use the new town level chain as “town”
  • Set TownIntro quest to use the new town level chain as its locationAllow for areas to be unlocked at the start of the town map
  • Added effects in place for locked states
  • Removed unused town generator, cell sets, colors, and other supporting prefabs that are only needed for tiled maps
  • Removed old town layout images
  • Implemented the enchanting shrine in the new town
  • Unified the API to take portraits of actors with the enchanting shrine UI
  • Added portrait settings for the details view of portait taking
  • Minimap (and fullmap) are now only available in the dungeon
  • Minimap is now instanced by prefab
  • Fixed minimap rendering over the scrolls in the full map UI
  • Reorganized the location text hud elements so they are part of the hud and not the minimap
  • Moved the full map hud button from the hud to the minimap object itself (it’s hidden when the map is full)
  • Made the minimap plane a child of the minimap prefab since it’s at a wacky angle it’s difficult to work with objects as children of it that we would want axis aligned (like the full map button)
  • Ring menus are now functional in the new town
  • Created GameModeUI base class
  • GameModeManager now has a field for the game mode ui singleton
  • UIManagerDungeon is now DungeonUI, a subclass of GameModeUI
  • UIManagerTower is now TownUI, a subclass of GameModeUI
  • Linked the TownManager and TowerManager game mode instance to both use a TownUI
  • Fixed horizontal positioning of the dual window UI panels
  • Added TownManager as a subclass of GameModeManager
  • DungeonInputManager is now DungeonInputListener, a subclass of the new class GameModeInputListener
  • TowerInputManager is now TowerInputListener, a subclass of the new class GameModeInputListener
  • Added TownInputListener
  • GameLogicManager now has field for game mode logic, the GameModeManager, which is either the DungeonManager, TowerManager, or TownMananger objects which are placed in their respecitve scenes and acquired by the single tag “Game Mode Manager” which is assigned to all three.
  • Virtualized the OnBeginPlay() and OnBeginFirstPlay() which how reside in the base class of GameModeManager instead of separate copies on the Dungeon, Town, and Tower managers
  • Refactored a ton of the map loading and generation code path to allow for MapBase to work
  • Virtualized the Map ActorEnumerator class as ActorEnumeratorBase in MapBase
  • Implemented a bunch of functionality in AreaMap including actor enumeration
  • Updated entire code base to use Map.Instance and MapBase.Instance
  • Better fix for actor activation for code equivalency of the pre-map classes split
  • Removed sprites from the field on hit since a field trap now stays there in place
  • Fixed actors not playing their animations when they were created not at a coord because they were automatically deactivated, now by default actors are left activated in the scene even if there is not a coord … this will likely need refactoring again in the future
  • Massive refactor to split Map into Map and MapBase
  • Refactored ActorSound and ActorSoundManager to use world positions only and are now called WorldSound and WorldSoundManager
  • Starting to clean up map initialization for more map subclasses
  • CommonMaster is now GameLogicManager
  • TowerCommonMaster is now TowerManager
  • DungeonCommonMaster is now DungeonManager
  • Added GameModeManager as a base class for TowerManager and DungeonManager
  • Moved a few prefabs for the GameLogicManager, DungeonManager, TowerManager, and GamePrefab to be inside Assets/Game Logic/*
  • UIManageCommon now visible in scene, initialization order was causing an intermittent crash
  • Added placeholder versions of the 3 new shields and throwing star
  • Added ability to subclass the Map class, added AreaMap to hold town maps and a prefab for a town map
  • Added AreaState
  • Basic town layout now can instance actors and unlock areas
  • Added ability for ArchiveComponentStore to skip objects with “PrefabKeyIgnore” in their name … this is so we can use actor prefab instances in the Town Map, but those instances are destroyed upon loading and will not cause any prefab key collisions with the real actor prefabs
  • Added a set of actors for the town map actors
  • Added images to the town sprites for the travel gate parts and effects
  • Hud is hidden by default in scenes, but is auto activated when the game starts … allows us to manipulate the scene freely without lots of unnecessary UI visible
  • Fullmap and Console UI are now instanced via prefabs so that scenes don’t have these big UIs in our way (to help build the new town)
  • Environment directory and a skeleton set of files for the new town
  • Added empty town generator
  • Added Gryphon actor and exported animations
  • Added Gryphon and remaining Guild Wizards to the Animation Preview debug scene
  • Fixed “Item Left” bone so that it is at the center of the hand, had to offset all attached item left images to compensate for the new translation
  • Hooked up a bunch of new NPC colors for some NPCs
  • Player magic item glows on the spine rig are now done through image layers
  • Switched over to using the hi-resolution spine player file
  • Fix crash in dialog with invalid speaker
  • Fixed crash when trying to descend the stairs in the first dungeon without Ivan (yikes!)
  • Removing deprecated dialog
  • Enchanting shrine number set to 1
  • Fixed property comparison for the “extra turn action”
  • Added PropertyComparer.LowerValuesAreBetter
  • Added “Default Comparer (Lower Vaues Better)” prefab and hooked up to Actions Extra Turn Multiple property
  • Main storyline quests are now always generated at the rank of the player (when first seen)
  • Rift of fire now availabe at level 8 instead of 9
  • Added shadow to Chakram 3
  • Renamed Chakram layer names for spelling
  • Made a lo-res version of Chakram 3 and exported
  • Defense Bonus and Attack Bonus now no longer display compare arrows in the tooltip
  • Enhanced Attack tooltip line is now never displayed for trinkets
  • Added StaticTextPropertyTooltip
  • Removed the comparer from DefenseBonusProperty so the arrow does not appear in the tooltip, there is little reason to compare this propery anyway outside of the context of total defense
  • BlockChanceBonusOfRank is now BlockChanceBonusPercent and now goes from 0-100 instead of 0.0-1.0 and is no longer based on “rank” in any way
  • Because BlockChanceBonusPercent is now larger numbers and not based on rank, the tooltip value does not need to be multiplied and the compare operations are more valid
  • Tweaked recommended new game text for alpha
  • Fixed Merrol dialog not starting after watching the town intro cinematic
  • Tweaked Quit and Save menu option text again
  • Fast equip action now tries to first swap with the target of the secondary tooltip since that’s what is being compared in the UI now with pulsing squares and everything
  • Fixed item stacking
  • Fixed dialog not triggering for buildables or other “non-living” things
  • Tweaked dungeon exit menu item so now it says “Quit and Save” instead of “Save and Exit”
  • Upped save game verions
  • Added message box to recommend starting a new game for old saved games
  • Set confidential string on title screen to be “Alpha” instead of “Pre-Alpha”
  • Tweaked the alpha welcome and complete message text
  • Added a textured background and border to tooltips and changed their default colors
  • Turned the scroll and roll artowrk grayscale
  • Added global colors that UIs can opt in to in order to color all scroll paper and roll UIs
  • Kite shield is now a little smaller in your inventory
  • Tweaked a couple item quality name colors to read better on the new tooltip backgrounds
  • Removed a bunch of unused scroll art
  • Attempt to recover when can’t write log to disk due to disk space errors
  • Rank bonuses to actor class and spell family now properly compare with icons in item tooltips
  • It is now possible to compare parameterized properties on both an individual basis as well as a default “global” value using a default param for property that support it (like attack)
  • Fixed PropertyParam using an invalid C++ style union with a reference type
  • Unified the property maniuplation that is required for weapons in one place so that the item vs item summary as well as the actor single compare
  • both call into the logic to pre-process and post-process the weapons so valid property compares can be done
  • Renamed the numeric no param comparer prefabs to “default” since they can now handle params
  • When two item tooltips are displayed, there are now higher/lower/equal comparison icons on each property line
  • Added PropertyCompareSummary and subclassed actor version … this is a cache of all property comparisons that have compare logic setup and
  • can be tooltipped for purposes of adding comparison icons in item tooltips
  • Hooked up property compare logic to a few properties that were missing them so they get the new comparison icons in the tooltips
  • Sized kite shield in world so it’s a little smaller
  • Tooltip and slot color for “equipped” is now blue
  • CompareTargetUI pulsing green square is now sorted at a Z underneath the slot selection for equipped
  • Moved SlotSelection constant Z values for selection into InventoryGrid as public constants
  • Added “Scared for turn count property”
  • Added AI.OnDamaged(), called from combat
  • When skill actions are completed, we stop listening to animations right away as a safeguard
  • After a steal, the Theifling immediately executes a free “run way” action … but now this action is not started until the current steal action is completed … doing so was trying to double destroy the steal action but it shouldn’t be trying to run while an action is running anyway
  • Safeguarded against scripted actions starting an action when the scripted action owner was already executing another action, it is now delayed and an error is displayed and hopefully we can recover
  • Reformatted the contents of the Attachment.psd file to add a group for source art with layers, instructions on shadows, and added a shadow to all the weapons
  • Exported all lo-res weapons and shields so that they have a shadow and therefore glow when at special qualities
  • Resized all weapons and armor in the Attachment.psd file to be the correct size for the model and added a player model in the layers to help future
  • sizing efforts
  • Added EquipmentLootTable, a debug loot table that spawns all equipment and added a debug menu option to execute it
  • SceneText is now FloatyText
  • SceneTextManager is now FloatyManager
  • Added FloatySprite component
  • Added Floaty component and moved all common logic from FloatyText into the base so it can be used by FloatySprite
  • Added Floaty Key Prefab for display when opening chests
  • FloatyManager is now instanced as a prefab system
  • Set item image links to now use the “Lo-Res” set of images from the Attachment.psd layers
  • Fixed items not generating valid ranks and values at max level … max level items are now allowed to extend slighly above the artificial level 30 cap to allow for qualities and mastery bonuses to take effect and be valid
  • Added Property.RankNextProgressPercent property
  • Removed ExperienceCurve and .prefab
  • Completely changed how XP is calculated using a “number of kills needed” based approach to leveling
  • Fixed max levels for buildables that could be upgraded beyond max level
  • Added Actor.GetRankBaseMax() so that it works for upgradable items and all other actors that are capped at 30
  • Fixed numerical precision errors when comparing attack value properties causing some items in tooltip to not report better/equal/worse correctly
  • ItemCompareUI now no longer compares the item being tooltipped to an empty slot
  • Fixed crash when talking to Ivan in the dungeon intro quest
  • Fixed Ivan join dialong triggering twice … removed the action to talk and join since it’s now done throught the cast member data system
  • Bumped up save games to version 115
  • Safeguard invalid range input to RangeHelper randomize functions
  • Added some additional checking for inventory total limits when stacking and picking up items
  • Added new property HealthRegenerationTurnMultipleProperty
  • Health regeneration value now is always at least 1 health
  • Fixed flickering XP boost modifier HUD tooltip by making the button axis aligned and the rotated scroll a child sprite of the axis aligned button
  • Fixed spells not spawning from all spells loot table (still needs to understand the new spell tree tho)
  • Added quest condition for “below 25% health”
  • Added DialogOnJoin and DialogOnLeave to QuestCastMember
  • Removed QuestPrototype fields for exit follower required and their join dialog, that information is now part of the QuestCastMember which is set in
  • the cast list on the quest prototype
  • Dungeon dialog with multiple actors now all face the speaker with the first line of dialog if no boss is part of the dialog
  • Followers are now repositioned around the player during a boss discovery ceremony because sometimes they lag and we likely want to have some of them speak in a dialog with the ceremony is over
  • Updated all quests to use the new join logic in QuestCastMember
  • Removed old unused QuestCast component
  • Added QuestCastMember component
  • QuestProtoypes now link to quest cast member prefabs in order to do dialog, and exit npc logic instead of linking directly to actor prefabs
  • Added ability to start a dungeon with a preset party using the quest cast member prefabs
  • DungeonDialog now orients all participants toward the boss if one is present and has lines in the dialog
  • Increased the number of followers you can have up to 5
  • Added QuestConditionHealthThreshold and added a prefab using it to test the condition “beloe 50% health”
  • Put in dialog mid boss battle in the Sky rift quest
  • Fixed followers not being able to position themselves around the player in new maps if there wasn’t enough space directly adjacent to the player
  • Added quest event for “got damaged”, presently only sent for actors that are “quest content”
  • Quest.Event is now passed through QuestCondition tests
  • QuestDialog can now use cast members as fields
  • QuestActionSpawn can now use cast members as the “to spawn” field
  • Fixed “find exit follower dialog” situations so that it can occur with a large party already following the player
  • Fixed wait for any input logic to respond to only key/mouse ups and up/down waits are mutually exclusive, previously it was a mix of up and down
  • which could cuase you to trigger to wait for inputs in a row when you really didnt’ mean to when skipping through lines of dialog or whatever.
  • Fixed getting stuck on first floor of intro dungeon if you return to it after the follower departs at the end
  • Fixed crash in PlayerDeath analytics reporting when no killer actor was present
  • Reworked all Dialog tabs to use NPC, PLAYER, BOSS, FINAL_BOSS, FOLLOWER_A-E, exported all storyline google docs
  • Dialog can now handle 7 actors in it at a time (player, 5 npcs, and a boss)
  • DialogPrototype and DialogParse now understand the new speaker tags
  • DialogManager now suports 6 pitch offsets
  • Followers no longer say quips when opening boss chests cause it interferes with quest dialog frequently
  • Added property to silence follower quips, it’s set into the boss chest property collection prefab
  • Created Sky Guild Wizard, and filled out quest logic
  • All guild wizard bosses now give their loot via a chest that spawns after their death ceremony
  • Removed QuestActionDialogFollower, the same logic is now handled by the new Cast entries in the Quest prototype and the standard
  • QuestActionDialog
  • QuestProtoype now has 5 cast member fields that will be used for dialog
  • Fixed QuestActionDialog and QuestActionDialogFollower actions that were set as OneShot from double firing because the QuestAction.OnComplete()
  • was run twice … once on start and once when the dialog was completely seen.
  • Replicated blobs are now replicated using the quality of the parent blob, but are limited to no better than normal quality
  • Assigned a higher value to the boss combat quality so it’s better than all the champion qualities
  • Fixed quest blocker that occurred after killing a boss for a main storyline quest and then dying … the quest now properly marked as failed so that it
  • will be regenerated again in town.
  • Added actor sets for “chests” for all environments
  • Theme now has a field for chests that can be procedurally used in an environment with that theme
  • Added quest event for using an actor
  • Added property for “chest never mimic”
  • Added property for “chest always unlocked”
  • Added property for “loot table override”
  • Added property for “destroyed after use”
  • Added property collection prototype for boss chests that sets any spawned chest as never mimic, always unlocked, and destroyed after use
  • Added DungeonBoss logic to spawn chests with the quest rewards if requested by new fields in the QuestDungeonBossPrototype prefabs
  • Massaged the dialog tags for the ice quest for npc find, boss dead, etc ..
  • LootTable components are now PropertyKeyComponents so they can be used as values and params in properties
  • Assigned prefab keys to all loot table prefabs
  • Actor.FadeOutThenDestroy() is now public and automatically sets the actor to not saved when called
  • Skeleton version of Dungeon Alpha now playable with PaulM as a follower (structure reward yet tho)
  • Fixed an issue with the QuestActionFollowerDialog component that would cause a follower to not be found because the were visible instead of not visible
  • Updated DialogImporter to use the new DungeonAlpha and DungeonBeta names and settings
  • Tweaked dungoen alpha dialog names/key for clarity
  • Alpha now ends after DungeonAlpha is complete
  • Game playable through the Earth Rift
  • Guild Wizard Earth is now functional (although not very fun yet)
  • After the earth rift, returning to town grants you access to build an enchantment shrine
  • Safeguard against initializing and using invalid settings for dialog
  • Added journal scroll actors and entries for the remaining journals
  • Tweaked the format of dialog for the earth dungeon to allow for a boss dying conversation
  • The text “Boss” is now explicitly understood in the story dialog parser and is used by the quest logic
  • Added QuestConditionKillCount
  • Quests now track the kill count of hostiles with and without followers as a part of the party
  • Removed kill counting from DungeonArmory and DungeonBlacksmith quests
  • Added QuestActionFollowerDialog
  • In dungeon follower dialog for Armory, Blacksmith, Fire Rift, and Earth Rift is now data driven using the QuestConditionKillCount and
  • QuestActionFollowerDialog systems
  • Versioned save games for quest kill count generalization
  • Generalized the code that prevents the player from ascending to a previous floor in some dungeons once they reach the last level (set for the Fire and
  • Earth rifts), removed the explicit code that used to do it in the Fire Rift quest code
  • Changed spell spawn debug menu item to drop all spells not just upgrade spells the player already had
  • Moved app settings load earlier just incase something needs it during initialization
  • Created Guild Wizard of Earth, he now spawns in the Earth Rift
  • Created SpineColors component, from here you can color spine slots using color tags and colors set in the prefab
  • Renamed the appropriate slots on the Guild Wizard spine rig to use the new color tag names
  • Created spine color prefabs for the Guild Wizards of Fire and Earth
  • LevelSpec now specifies a default cell set to use for the scene and also has a list of cell set overrides to use when the scene is loaded with a specific
  • level chain prefab … this allows to have one “rift scene” that can be used for all elements, each with their unique changes to the cell set
  • Added art for the rift of earth walls … floating flipping rocks
  • Added RotatorBurst, an rotation animation component that does the animation in bursts of time
  • Removed Dungeon and Tower instance prefabs … as a result all game objects in the dungeon and tower scenes that referred to the prefab are now broken apart from the prefab instance
  • Added cellset for Rift of Earth that uses the new flipping rocks as walls
  • Reorganized the travel menu to put all rift destinations in a sub-menu
  • Moved add on extension script files for spine into a better location in the directory tree
  • All boss quests are now derived from QuestBoss and QuestBossPrototype, all logic has been generalized there
  • Animation previewer now has the Earth Guild Wizard