August 2015 Development Update

Greetings Wizards,

We’ve made it to the end of August and have made a couple of really huge strides this month.

First of all we’re proud to announce that the Rogue Wizards Steam Store Page is now online. Players can now follow and add the game to their Steam wishlists as well as talk with each other in the community hub. Getting the Steam page to this state is actually a huge step towards starting the Alpha program later this year because we’ll be running the alpha and beta through Steam, and now we’re completely ready with all the necessary distribution tech to get the game into your hands for testing and feedback.

We’ve also now got the story and quest structure going into the game in stages. The storyline will take the player though an as of yet undetermined number of randomized dungeons, but we have mapped out 5 dungeons in which you’ll find NPCs to take back to town as well as 6 elemental dungeons the player will encounter each with NPCs and a boss battle.


Town Story Dialog States

Alex has completed the artwork for all 18 NPC heads that are based on the Kickstarter backers that wanted to be in the game. These NPC heads are being animated as we speak so that they can perform all the same actions as the player character. You’ll find many of them in the dungeons where they’ll fight along side of you for a while until you lead them back to the safety of the town, where you’ll be able to build a permanent dwelling for them.

NPC heads based on Kickstarter backers

NPC heads based on Kickstarter backers

Finally, here’s a look at the Harpy enemy who is now fully animated in the game.

Harpy Enemy

Harpy Enemy

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 & Changes:
– Rogue Wizards Steam store and community page is now online
– All Kickstarter backer based NPC art is ready to be animated
– New ice monster: Snow Crab fully animated with working melee attack (special attack still needed)
– Storyline Spreadsheet now complete with auto importing from Google Docs online
– Dragon Whelp animated with basic melee functionality
– Entrance/exit portals now have transition visual and sound effects, you’re also notified via message if an exit portal becomes activated that is off screen
– First couple of quests with real story dialog now hooked up and working

– Updates to missing Kickstarter backer parts
– All simple housing art for town complete
– Snow Gryphon now ready to be animated
– Polished the animated player shadow in all animations to move with all the motions
– Guild Wizard art 95% complete
– Hosperak final boss art 95% complete

Code & Framework:
– Added a simplistic CinematicManager, a framework for playing simple cinematic still animations with text
– Added placeholder town cinematic
– Exported Town_Intro quest assets
– Hooked up new Town_Intro hooks and temp cinematic
– Added new Cinematic camera and render layer
– DialogImporter now supports blacksmith and armorer quest data
– Fixed buildable interact indicator displaying the talk and quest icons at the same time
– Added support for “intro text from questgiver” to quest prototype which is accessed by the buildables for the tavern/inn quest giver
– Added convenience functions to SpriteTextEx to alpha in and out the text
– If an exit portal becomes enabled off screen, a text notice is displayed along with the on enable sound effect
– Gateway portals now only make their looping audio if the gateway is enabled/active
– Fixed invulnerable actors not playing their got hit animation
– All followers are always invulnerable (for now)
– Removed some unnecessary logic and dialog from the intro quest when the player tried to use the exit portal too early before getting the scroll and antarit key, now the portal is simply not active until the player takes both of those objects
– Exit gateways no longer are usable by default if the quest is not complete
– Completing a quest now updates gateway effects for all gateways in the map
– Reworked the logic for the dungeon intro quest so it’s completed as soon as the player picks up the key to antarit, at the same time the exit portal becomes active, and the quest is now set to close “on town load” to remove it after they exit through the portal
– The beginning dungeon intro, town intro, dungeon blacksmith, and dungeon armorer are now fully functional
– Added sound effect for when an NPC joins your party
– Added data structur and inspector for StoryStateSet (really an AutoPrefabSet<StoryState>)
– Added generic support for finding NPCs in dungeons via fields setup in QuestPrototype
– Added NPC spawn actions for Blacksmith and Armory quest
– Removed Quest.m_completed bool
– Added a formal Quest.State enum with values None, Completed, Failed
– When you die, any quests for your current level are immediately failed
– When returning to town, any failed quests are destroyed
– Quest.Fail() no longer destroys the quest and instead sets the failed quest state and removes removes any followers found during that quest
– QuestActionSpawn now has the ability to link the spanwed actor to the parent quest id via Property.QuestContent
– Followers are now destroyed when the town map is loaded if their new field “PersistBetweenDungeons” is false
– Fixed a bug that allowed you to complete a kill quest if you killed the boss, and then died … the quest would not be destroyed when you returned to town … now you have to actually exit via the portal to sucessfully complete and close the quest
– Separated the glow art on the entrance and exit circular stone portals (gateway)
– Gateway portals now ask the quest system if they should be enabled or not on startup
– Acquiring the “exit follower” for a quest will now update gateway state visuals
– Building a structure can now advance the story state via a new field in the buildable
– Added quest events for follower joined and left
– Dialog can now advance the story state via a new field in DialogPrototype
– Added enum QuestProtoype.CloseOption, quests can be closed 1) at the source quest giver 2) on complete and 3) on town load
– Added QuestDungeonBlacksmith and QuestDungeonBlacksmithProtype source files
– The notice system now initializes it’s fields when the prefab is instanced, allowing for earlier use of the notice system during load
– Added some placeholder text when meeting the Blacksmith and Armorer in their dungeons
– Tweaked sizing on all NPC head art to make it easier for Aden when he starts
– Exported all human spine data
– Fixed not being able to select the female player
– Setup skull and head nodes in the human spine file for all NPC avatars
– Fixed NPCs drawing the player female head parts when they were assigned to a different head
– Fixed spelling on Alan’s NPC art layers and filenames
– Changed the backup scripts to first copy backup files to the desktop, and then in one operation move those files to the cloud synced folder in a single quick operation
– Renamed the variables that refered to dropbox to “clould_drive”
– Changed the path for the cloud drive from Dropbox to Google Drive to see if they perform any better than Dropbox is
– After completing the town intro tutorial, there is now one single quest that will get you the blacksmith available at the tavern
– After finishing the blacksmith quest, the armory quest will be the only quest available at the tavern
– After finishing the Armory quest, up to 2 random quests are always availale at the tavern
– Added not notion of “story” quests, a quest can be considered a story quest via a setting in the prototype
– Added Storyline.GetAvailableNewQuests() which returns a list of quests that are opened via storyline states that the player has not already accepted or completed
– StoryState now has fields to grant access to a quest, increase the number of random quests available, and a chained story state that will be immediately activated when the parent state is activated
– Added quest prototypes and data folders for Blacksmith and Armory quests, these are just copies of the template ‘kill’ quest at present, but they give the correct blueprint reward. Next these will become individual quests where you meet the NPCs that inhabit those sturctures wandering around in those quest dungeons
– Added support for all quest parsing via the DialogImporter, adding additional storyline quests should be easy as they come online
– Imported Dungeon_Intro and Town_Intro quests from google sheets into project Unity data
– Reworked all generated dialog and localized text from the DialogImporter to have a “[Generated]” appended to the prefab name so it’s easy to know in the Unity inspector if any particular piece of .prefab data was auto-generated by a tool
– DialogParser can no optionally propogate the avatar, state, and trackread options to the generated prototype
– Removed all old generated dialog .prefabs and regenerated all story data with the DialogImporter
– Removed all old hand crafted dialog data from the existing quests and their prototypes and linked them to the new auto generated dialog from the DialogImporter tool
– The archive system will now complain and return failure if we try to write a prefab to a save file that does not have a valid prefab key assigned to it
– Added support for automatic scroll text parsing to the DialogImporter wizard
– Aded PrefabUtilityExtensions class with a GetOrCreatePrefab<T>() method, the DialogImporter uses it to generate or retrieve prefabs. DialogParser.WritePrefab() has been unified to use this templated function as well
– Cleaned up the save/load path for DialogImporter settings so it all exists in one transfer function
– Added placeholder fields to the DialogImporter for the dungeon and town intro quests (they’re coming next)
– Added set of generated scoll prefabs to Story/Main/Scroll Text/ that were created by the Dialog Importer
– Reformatted the storyline google sheets to have a new tab for “Town_Intro”
– Storyline sheet now has “Dungeon_Inn” tab as “Dungeon_Intro”
– Renamed the into quest classes and prefabs to be “Dungeon Intro” and “Town Intro” for clarity
– Exported from Google Storyline Sheets the town dialog, dungeon intro, and town intro dialog data
– Re-organized avatar prefabs into ones that can be chosen to play and those that are for the NPCs only
– Created a set of game state for the main storyline
– Created Storyline class, the Game instance now has a storyline instance
– Added on hidden callbacks to Dual Window UI setups
– Buildables and Town structure vendors now use BuildableOnInteractEnd as the on hidden callbacks for the dual window UI that they open
– Split quest event for “buildableinteracted” into BuildableInteractStart and BuildableInteractEnd
– Moved the conversation for completing the “visit sundries” task of the town intro quest as normal town dialog for the “dungeon blacksmith available” storyline state
– Generated town dialog protoypes are now always marked as “Track Read”, and the town buildables will only show the talk icon for dialog that is new and has not already been seen by the player
– Town inhabitants now permanently have something to say based on the last storyline state achieved
– DialogManager now updates the map interact indicators when dialog is read and is marked as “Track Read” so that it can remove dialog indicators
– Removed TownDialogProtoype and moved the specialied fields into DialogPrototype, it was not convenient to have a subclass cause it needs an inspector and you can’t use the auto prefab sets etc … and it’s just not that much waste memory wise at the end of the day.
– Also removed the nwo unnecessary TownDialogParser and TownDialogPrototypeInspector
– QuestPrototypes now have a field to advance the story state on complete
– Changed TownDialogImporter to name the prefabs it creates using the column letter of the Google Sheets document so that we can change which avatar says what without having to worry about changing it and losing links … but given the new Town_Intro quest, we probably could put it back so it’s easier to read in the editor
– Created TownDialogImporter wizard. This wizard will import an xml file that was generated using G2U to extract data from the online Rogue Wizards Story Google Sheet (online in Google docs for Divya) and turn all the town dialog into .prefab elements in the project
– Created DialogParser and subclass TownDialogParser
– Added TownDialogProtoytpe as a subclass of DialogPrototype
– Removed old DialogParserWizard.cs which is now superceeded by the TownDialogImporter and Google Sheets data
– Removed all previously generated dialog protoytypes for town dialog
– Adding set of generated .prefab files from the new TownDialogImporter
– Added DialogPrototypeSet and an inspector for it
– Little bit of framework for the Story Google Sheet parser
– Created GameState script
– Created a bunch of .prefab files to model the mainline story state and a couple of optional side story states
– Re-organized the contents of the “Story” folder to better allow for Main, Side, and Template quests.
– Added folders for “Town Dialog” in the Main and Side story folders (google sheet parsing will work here)
– Changed Perforce and Jira backup scripts to just copy files to dropbox folders, and let the installed dropbox app handle the uploading automatically
– Backup scripts now force create necessary directory trees when they don’t exist … fixes a super critical bug that will wipe all files from the perforce account on the server, yikes!
– The player now says a few dialog bubbles of text as they explore the Wayside Inn that help explain a tiny bit of the setup for the game
– Adding G2U (Google to Unity) toolset to remotely access Google Spreadsheets
– Adding Steamworks SDK v1.34
– Added generic support for looping sounds during skills
– Added a few more snow crab effects
– Exported final round of Snow Crab animations
– Added debug menu item to allow movement via keyboard
– Added debug menu item to auto respawn enemies (good for evaluating death aniamtions in game)
– Debug key commands that previously used left control now also use right control as well
– Wiped save game for new debug settings saved
– Added bunches of footstep events to Snow Crab spine
– Added contact event to Snow Crab spine
– Snow Crab can now walk and do a melee attack
– Added audio for Snow Crab footsteps
– Added DialogTrigger component
– Moved OneShot fields and logic from Trap to base class Trigger
– Refactored the trigger generation action code path so that one shot logic can be funneled through one code location
– Removed the generation of pass actions when trigger action generation failed, we now return null from all cases, and when self generating actions such a return result will be automatically turned into a pass action at one spot in the code instead of many.
– Added ActionDialog
– Added several tower dialog prototypes generated by the new DialogParserWizard
– The DialogUI is now capable of automatically splitting text that is “too long”. Splits occur at sentence breaks if possible, and other word punctuation breaks if not.
– Removed invalid dialog prototype speaker, this messes up the inspector display
– Added PrefabId to the LocalizedText inspector since it’s totally custom and wasn’t considering base class fields
– Fixed bug in DialogParserWizard that could miss the last dialog block if no end token was found
– Added audio event to Snow Crab spine file
– Added audio assets for Snow Crab claw snap