For the next couple of weeks, I'm dropping work on magic & effect system to iron out several bugs and improve the play experience for users. Major focus will be on improving overall stability of quest system.

These builds are tagged Experimental due to the large number of changes happening this month. While you should always expect general bugs and problems during pre-alpha development, these changes are dramatic enough that I felt some extra warning was required.

Please play these builds normally and report bugs as usual. But you might want to take the precaution of starting a new save for these builds in case you need to roll back to an older version to continue your character.

What's New

Floating-Y
Daggerfall Unity's floating origin support now works for all spatial dimensions. This has already been highly tested and should be fully backwards compatible with old saves and have no serious impact on gameplay. The purpose of this change was to pave the wave for environments with greater verticality in future.

UI Rendering
The user interface is now rendered to an offscreen RenderTexture before presentation to player. The end result should look and feel just like the previous setup. The purpose of this change is to help support a Vive VR mod currently under development by InconsolableCellist. Future improvements to this system will allow for UI components to render to any in-world object with multiple UI stacks.

Quest Logging
The quest system now has its own dedicated log file. You will find this as quest_log.txt in your PersistentDataPath (see manual). This log stores information specific to the quest system and nothing else.

Quest Stability Fixes
Certain quests (mainly commoner/merchant quests) could destabilise other systems due to exceptions thrown in back-end. This might be evidenced by not being able to recover health while resting, sudden performance drops, or the Talk UI sticking on the screen as the player moved around.

The quest engine now has improved exception handling along with improved checks for bad data (null references, etc.). This process is still ongoing, but you should find quests are much less likely to cause problems now.

If a quest successfully compiles but throws an exception at runtime (i.e. something went wrong) the quest is now terminated immediately and the exception is logged to the quest log. This will help prevent problems like not being able to recover health because a quest is crashing the game loop.

I have also restored messages like "you're too late, I gave the job to some spellsword" when a quest cannot compile for some reason (such as location has no matching building types). This was actually one of the more common crashes we were experiencing before.

Quest Travel Time
Quests now take all Place resources into account when calculating automatic travel time for a quest. Previously only the first target Place resource was calculated. This would frequently result in quests with impossible deadlines. This change should make the deadline always achievable, but may be overly generous in some cases. This will continue to be tuned over time.

NPC Home Locations
All Person resources will now automatically generate a full Place resource as their home location. This has been done to support the currently unimplemented "create npc" action which should assign an NPC automatically to their home. Previously the home information for an NPC was only used for flavour text. This change is backwards compatible from a code point of view, but any quests compiled prior to these builds might need to be ended from console or travel around until the expire out normally.

Please note that "create npc" is still not fully implemented in these builds. It will only log intention then end. I want to make sure I haven't broken anything else with this change before proceeding.

Unity Upgrade
On June 15, I will be upgrading the version of Unity used to build the game from latest 5.5.x to latest 2018.1.x. The minimum developer version on GitHub will be set to Unity 2018.1.2f1. The purpose of this change is to improve overall performance and take advantage of features in new versions of Unity.

Any .dfmod asset bundles might need to be rebuilt after this change, especially if using custom materials and shaders. Script-only mods will probably be fine.

Unfortunately this change will break a very popular mod: Enhanced Sky by Lypyl. As Lypyl has not been active for a while and we don't have current source to his mod, this has become a blocking issue for the mod to continue working as-is. However, we do have older source for this mod, so if Lypyl does not return and update Enhanced Sky, someone should be able to reconstruct most of the mods function from the older version.

My experiences with testing classic quests over the last week has been substantially more stable and I've experienced no issues with other major changes. Provided no serious problems after Unity 2018.1.2f1 upgrade, I will drop "Experimental" status on these builds and go back to working on magic & effects.

Until then, I will keep performing bug-fix and polishing across the quest system and other parts of the game.

I don't have anything specific in mind for the core, although I believe a few of the graphically-inclined mod creators (e.g. TheLacus & Nystul) were waiting on the upgrade for certain features not available in Unity 5.5.