Daggerfall Unity 0.10.28

The latest update for Daggerfall Unity is now available on Live Builds page. If all goes well, this will be the last release under the Alpha tag and there will be a minor update soon into Beta. That’s right! Daggerfall Unity is feature complete and I marked off the final items on Alpha roadmap the other day. This release is a pre-beta test just to catch any last minute showstoppers before rolling over.

Does that mean Daggerfall Unity is done and dusted? Not quite yet, but it does mean work on new features is now at an end. From this point the only changes will be bug fixes, minor refinements, and incremental progress to modding/localization support. This is the real final stretch to 1.0, which I hope to reach in 2021 once I’m happy with overall state of game.

For the last year or so communicating where DFU is up to has been a challenge, as it’s a really a couple of projects in one. The core goal of the game has always been to recreate classic Daggerfall with some refinement and quality of life features. Then we have loads of features unique to DFU like epic mod support and some wild and wonderful core features that emerged along the journey (such as personal torches and advanced climbing). This means DFU is a also a superset of classic Daggerfall, and is why I often refer to it as Classic Daggerfall Plus. It’s the same game, with more.

This led to a situation where the core game has been essentially complete and very playable for over a year while these superset features continued development. We stayed in Alpha because DFU as a whole still wasn’t done. This in turn created confusion as people wondered how finished the game could be if it was still considered Alpha. This undermined what an incredibly functional and playable bit of software Daggerfall Unity really is. So it gives me great pleasure to finally tear off that Alpha bandaid and give this game the credit it deserves after so many people have worked so very hard to bring it into existence.

Let’s take a look at what’s in this release.

New Features

Large HUD

For some Daggerfall players, the large HUD represents a tiny piece of its soul. The large buttons and compass help us recall our early days playing Daggerfall and provide a big visual connection to the past. So this feature is best summarised with a few screenshots. Here’s Daggerfall Unity running with Retro Rendering 320×200, palettization, and large HUD. The only “modern” feature I left enabled is shadows.

 

 

Of course, it’s not just for retro modes. You can enable the large HUD at any time by deselecting the Fullscreen box on pause menu. And in typical Daggerfall Unity fashion, this feature can be tuned to fit a wide variety of displays so most people will be able find a setup they like when choosing to play with this HUD. Let’s upack this thing.

Docked or Undocked?

By default the large HUD works just like classic. That means it shrinks the rendering viewport to area above the HUD and the crosshair position will be raised to become centred in smaller viewport. The HUD itself will scale to fit entirely along bottom of display, which might entail some stretching if you have an ultra wide display. In this state, the large HUD is considered docked to bottom of display.

 

If you jump into settings.ini and set LargeHUDDocked=False then your large HUD will instead sit on top of a fullscreen render without shrinking the viewport area. Crosshair position will remain in the same place as fullscreen mode. When undocked, you can adjust the scale of large HUD by changing value in LargeHUDUndockedScale. This is best for very wide displays where the large HUD might otherwise become too stretched.

 

Other Customisation

Other than docked/undocked, you can tweak the HUD in a few ways in settings.ini. I’ll list all the new settings here and what they do.

LargeHUDDocked – Set True to be docked and False to be undocked as above.

LargeHUDUndockedScale – Sets your undocked HUD scale between 0.25 and 2.0 depending on preference. Only works with undocked HUD.

LargeHUDUndockedAlignment – Set 0 for default (which is centred), 1 for left-aligned, 2 for centred, 3 for right-aligned. Only works with undocked HUD.

LargeHUDUndockedOffsetWeapon – Set True to offset weapon position above undocked HUD height and False to draw weapon against bottom of screen. Depending on your HUD scale, you might prefer to raise weapon above HUD or not. It’s not recommended to enable this setting with small scale HUDs or weapon will appear to be floating. Only works with undocked HUD.

LargeHUDOffsetHorse – Set True to offset horse above HUD height or False to draw horse against bottom of screen. This is True by default to match classic, but you can set this one for both docked and undocked HUDs. The horse takes up a lot of screen estate and it’s nice to drop it below the HUD to clean up the view some more.

 

Using Large HUD

For some people this will be their first time using Daggerfall’s large HUD, so it’s worth going through what all the buttons do. But first, how do you click those big juicy buttons anyway?

Just as in classic, use the Activate Cursor keybind to toggle cursor active/inactive while playing game (i.e. not paused). By default Activate Cursor is bound to the Enter key. While the cursor is active, you’ll be able to mouse over the large HUD and click buttons with either the left or right mouse buttons, which sometimes initiate different actions. When the cursor is active, you can also click on world objects like doors, levers, and NPCs using the mouse cursor rather than activating under crosshair as usual. To get back to mouselook, hit the Enter again to make the cursor inactive.

Now that you can click on the HUD, here’s what all the various bits do.

Portrait. Opens the Character Sheet.

 

Vital Indicators. Displays your current health (green), fatigue (red), and spellpoints (blue).

 

Options. Pauses game and opens pause menu.

 

Spellbook. Opens spellbook UI.

 

Interaction Mode. Cycles interaction mode through steal, grab, info, dialogue. Left mouse will cycle to next, right mouse will cycle to previous.

 

Inventory. Opens the inventory UI.

 

Ready Weapon. Raises or lowers the weapon in your equipped hand.

 

Use Magic Item. Opens the use magic item UI (if you have any usable magic items). This uses a popup list for consistency rather than fitting inside HUD area like classic.

 

Change Transport Mode. Opens transportation UI to set transport mode between foot, horse, cart, and ship.

 

Automap / Travel Map. Opens local automap or travel map. Left mouse click to open automap, right mouse click to open travel map.

 

Rest. Opens rest UI. Careful resting in town!

 

Big Spinny Compass. This is the real deal, made from the finest magnetic pixels. Click to open info status pop-up.

 

That covers everything about the large HUD for now. Just something worth mentioning, this HUD isn’t related to Cursor Mode movement (i.e. move by pushing mouse around screen) and classic’s View Mode with mouselook will remain the only control scheme into foreseeable future. With that said, all the work on large HUD recently has laid the groundwork for Cursor Mode, so this is likely to be added as a Beta stretch goal in the future. I’ll add this item to roadmap when confirmed.

 

Movement Review and Jumping Skill

Not so much a new feature as an attempt to better match movement (Walking/Running, Jumping, Falling) to classic Daggerfall. Part of this review was to implement the effects of Jumping skill on jump height.

Because classic Daggerfall itself doesn’t have well-defined movement elements, and CPU speed can change the speed and “feel” of these elements, it’s not really possible to match these perfectly with classic. So instead, I approached this with the mindset of ensuring that low-level characters always have functional running and jumping (e.g. run from trouble and jump low obstacles) while high-level characters still feel powerful and acrobatic. What this means in practise is a level 1 can jump onto the throne lift in Privateer’s Hold and run from that skeleton, and a fully buffed character at 100 SPD with max Jumping, Enhanced Athleticism, and spellcraft will run like the wind and be able to leap from rooftop to rooftop with ease. Here’s a summary of changes.

Walking – Carefully measuring walk speed in classic vs. DFU found that characters in DFU walked faster than in classic. This was tuned to match classic within a small margin of difference at various SPD levels. Interestingly, walking in DFU still feels faster as the framerate is smoother. But timing over long distance walks yields very similar timings to classic.

Running – This had received some tuning previously and already closely matched classic. Further tuning brought this into a smaller margin of difference. Again, running can feel faster in DFU due to smoother framerates.

Jumping – The largest difference is to jumping. The jump height in pre-beta DFU had received no tuning and was unaffected by Jumping skill. This means all characters were making huge leaps regardless of their skill at jumping. Now a character with a low Jumping skill will make smaller jumps than one with a high skill. You’ll always be able to jump onto low obstacles, but you’ll need to skill up to truly make those epic leaps. Athleticism will give player a +10% to jump height, Improved Athleticism another +10%, and Jumping spell will give you +60%. These all stack together so that a fully buffed character can leap onto low rooftops with ease. As an added bonus, the Jumping spell now grants air control. Rather than propel yourself helplessly past your target, you’ll be able to move slightly while airborne when the Jumping spell is active. This just makes it a bit more fun and magical, not to mention useful.

Falling – Measurement found that falling speed in DFU was marginally faster than classic – about 20%. But due to the effect of smoother framerate, a faster falling speed just feels better. Sticking with the classic falling speed makes falling and jumping feel floaty, something that isn’t so apparent in classic due to the clunky framerate giving it a heavier feel. For that reason, gravity and falling were left unchanged in DFU.

 

General Fixes & Improvements

  • Fix several errors in TEXT.RSC data via localization tables (Ferital)
  • Fix guild greetings for unique NPCs (Ferital)
  • Correct “Bhoriane” spelling everywhere (Ferital)
  • Remove %2com as not implemented in classic (Ferital)
  • Show RunInBackground setting in launcher, enable run in background by default (Pango)
  • Adjust dungeon micromap resolution and use square pixels (Pango)
  • Fix backstabbing transforming Seducers, they are now always considered facing player (Pango)
  • Apply bank loan default reputation loss only once (Pango)
  • Publicize parts of PlayerActivate and DaggerfallBaseWindow.NativePanel (jefetienne)
  • Publicize CurrentRestMode (jefetienne)
  • Remove SetupDefaults and add autofill parameter to ResetDefaults (jefetienne)
  • Ensure models with registered actions are not combined for RMB and interiors (Hazelnut)
  • Fix exploit for Knightly Order armor service (Hazelnut)
  • Fix “potion of <LocalText-NotFound>” and support localization of potion name (Interkarma)
  • Fix potion recipe name being blank or displaying “<LocaleText-NotFound>” (Interkarma)
  • Fix null exception when no rumours available (Interkarma)
  • Fix variant count of Formal Eodoric (Interkarma)
  • Fix Short Shirt variant counts (Interkarma)
  • Fix active spell tooltips not working when cursor active (Interkarma)
  • Fix texture cracking in vertical scroll thumb (Interkarma)
  • Fix inventory crash against certain corrupted/modded items (Interkarma)
  • Chance-based potion effects now always succeed to be consistent with other magic items (Interkarma)
  • Fix LocalScale in Panel fill texture (Interkarma)
  • Store DFU version in quest state to help identify version quest compiled under (Interkarma)
  • Implemented “add potion” console command (Interkarma)
  • Use “target at range” not “touch” for action object spells to fix null exception (Interkarma)
  • Start groundwork of book localization – not yet ready in game (Interkarma)
  • Disable camera recoil when cursor active (Interkarma)
  • Use available snow textures for swamp castles (Interkarma)
  • Use smaller dungeon state as set when quest compiled to prevent target ending up in void (Interkarma)
  • Groundwork for further refinements towards full smaller dungeon support (Interkarma)

 

I hope you enjoy this release!

Daggerfall Unity 0.10.27

Daggerfall Unity 0.10.27 is now available on Live Builds page. This release is a bug-fix update with no significant new features.

We’re now moving past the recent upgrade to Unity 2019.4 LTS and reworking text systems to support localization mods. This stage involved significant refactoring under the hood, which is why we split the builds into stable and preview releases. This also provided mod authors some time to update their mods to be compatible with future builds. Now things have settled down again and most mods have been updated, we’re dropping the stable/preview tag and just going back to rolling builds as usual.

If you run any mods with Daggerfall Unity and you’re upgrading to 0.10.26 or later, please confirm all your mods are upgraded to be compatible with 0.10.26+. The mod page on forums or Nexus should outline which version new releases are for. Even when there aren’t significant changes to the game, a mod might need a specific version to operate based on new features added over time. So by the Divines, get those mods updated!

For anyone waiting on the next Localization Tutorial on forums, I’m working on the next few tutorials in this series now. The DFU Localization system will still be considered in Preview for a while yet, at least until the Unity Localization system it’s built on enters release status. We also need to add support for translating quests and some other miscellaneous text in the game. Localization mod support will continue to improve through Beta into 1.0 and beyond.

Speaking of Beta, we’re really close now. I’m working through bugs and getting back into the last few items on Roadmap. If all goes to plan, we’ll officially roll into Beta in December. I’m expecting the Beta period to be very short as the classic gameplay systems have been cooking for some time while the DFU-specific features were built out.

That’s about it for this post. I’ll wrap up with a list of changes in this release.

General Fixes & Improvements

  • Implemented OnEnemySpawn event (joshcamas)
  • Fix cart riding audio from playing too long when movement stops (Pango)
  • Fix lunar date computations (Pango)
  • Fix display of temple shrines in text macros (Hazelnut)
  • Add protected virtual for extending potion window (Hazelnut)
  • Check Unity version against VersionInfo in mod builder (TheLacus)
  • Show target version in mod builder (TheLacus)
  • Fix rebinding input axes and duplicate highlight between left/right click (jefetienne)
  • Change crouch to keydown (action started) input (jefetienne)
  • Upgrade to Unity Localization 0.8.1 (Interkarma)
  • Upgrade to Unity Addressables 1.16.1 (Interkarma)
  • Disable runInBackground in project settings (Interkarma)
  • Range check on armour equip to fix loading saves with bad equip indices (Interkarma)
  • Change text of Hircine “Shield” to “Ring” to match actual item equip slot – note unmodded item will still look like a shield (Interkarma)
  • Fix stale building data being returned during scene load – fixes incorrect Thieves Guild and Dark Brotherhood building marked on map, and related building assignment issues (Interkarma)
  • Add CanDropQuestItems setting to settings.ini to allow dropping quest items (Interkarma)
  • CastWhenUsed (spell cast by item) on self now bypass level-based chance and will always succeed (Interkarma)
  • Open spell cast will now always succeed when cast by an item, but player level must still exceed that of lock (Interkarma)
  • Fix east/west seam in classic sky (Interkarma)
  • Fix font glyph rect precision for better text alignment (Interkarma)
  • Add PlaceItem “anymarker” tag to use random questmarker or itemmarker when placing item (Interkarma)
  • Fixed Sx013 to use “anymarker” tag so that Mynisera’s Letter resource can appear in any of 6 available locations like classic (Interkarma)
  • Keep broken magic items in inventory when AllowMagicRepairs enabled so broken magic items can be repaired (Interkarma)
  • Clear active crime state like classic when exiting location area or fast travelling away – guards will despawn when escaping town rather than chase player into wilderness (Interkarma)
  • Fix crime state not cleared when starting a new game (Interkarma)
  • Halve maximum number of instant guard spawns from 10 to 5 – guards can still spawn out of city watch mobile NPCs resulting in many more guards when fleeing town (Interkarma)
  • Fix Oghma Infinium incorrectly increasing level and health on use – now just gives a pool of 30 points to distribute as intended (Interkarma)
  • Show “save versus spell made” for all entities when saving 100% of magnitude based spell effect (Interkarma)

Daggerfall Unity 0.10.26

Daggerfall Unity 0.10.26 is now available on Live Builds page. Despite being tagged a preview, a lot of work has gone into this release to create the most stable update possible. If no major issues are found, our next minor release will be tagged as stable.

If you’re still on DFU 0.10.24, you might need to update your mods to be compatible with 0.10.25 and later. Check the release info for your mods to see if an update is required.

In other news, our Beta milestone is coming up fast! Just a few more items to tick off the Roadmap and Daggerfall Unity is feature complete. We should have more news on this before end of the year. For now, let’s unpack everything this new release.

New Features

Localization Preview (Interkarma)

A long-term goal has been to support new translation mods for Daggerfall Unity, delivered simply and easily through our powerful mod system. This has many challenges, as classic Daggerfall draws text from several different files and formats, some text is even baked right into the executable. Internally, classic Daggerfall used an 8-bit wide character format that did not easily support extended character codes. Language packs for classic Daggerfall had to work within these limits and compromise often, such as re-writing text with transcoded characters aligned with custom font glyphs under a 256 limit. Daggerfall Unity inherited a lot of these same systems early on, as we rely on the classic DOS game data.

For the last couple of years, we’ve gradually laid the groundwork for translation mods in Daggerfall Unity. This started with SDF font support built on TextMeshPro, followed by upgrades to how text is handled internally, and now building on the Localization features in Unity 2019 and integrating with Daggerfall’s unique text requirements. In the last few months, we’ve started migrating all legacy text handling from DOS files to centralised text databases and overcoming the limitations of classic Daggerfall a few systems at a time.

In this first preview release of Localization, all text from TEXT.RSC and text previously hardcoded into executable have been migrated to replaceable text databases easily edited via the Unity Editor. Helpers have been created to import text from legacy data and fix transcoding back to correct character codes. There’s no longer a limit of 256 characters and fonts can have any number of glyphs matched to their proper universal character codes. Underpinning this is support for locale detection, runtime locale switching, locale-based fonts, and more.

In the following screenshot (click for full size), a custom string table has been generated containing English, French, and German translations for the game. All text is imported from legacy TEXT.RSC files in a single click, automatically remapping transcoded characters back to their correct universal character codes. A simple plain-text RSC markup system has been developed so that translators can write text easily and natively without needing to remember bytecode for formatting RSC strings.

 

Default locale is selected by user’s current region at game startup. If no translations for that region are available, it will fall back to a parent region or to English. Regions can be switched at runtime in editor or by console. Screenshots below show switching between French and German for the STRENGTH info popup. Each translation can format text as they wish, and you’ll notice the imported French and German translations use different line spacing, the markup for which is visible in screenshot above.

 

Elements such as UI images with baked in text can be replaced via the standard image replacement process and delivered all together in a single .dfmod package.

Daggerfall Unity Localization is a new feature and will continue to evolve over time. As mentioned, only TEXT.RSC and previously hardcoded strings are currently available for replacement in this preview (which outside of quests is over 90% of all text in the game). Other systems like quests will be moved over to localization in future releases.

You can find more technical information about localization in Daggerfall Unity, including current limitations, in this forum topic. This topic contains a tutorial series in progress demonstrating the creation of a new translation mod from scratch.

 

Precompiled Mods (TheLacus)

Daggerfall Unity has an integrated C# compiler to build mod scripts at runtime. This compiler has a few limitations and can sometimes require mod authors to work around those limits. If you’ve built a large or complex mod for DFU, you’ve probably hit some of those limits by now. From 0.10.26, you can precompile mod scripts to a DLL using Unity’s built-in compiler. This overcomes the limits of runtime compiler and allows for creation of larger and more complex mods.

 

This will support using C# features like enum, tuple, and string interpolation – currently unavailable with the built-in compiler. If you’re concerned about safety of a precompiled mod, source can be extracted using tools like the JetBrains decompiler.

Precompiled mods are considered experimental for now. Future development of this feature will continue based on feedback by the modding community as directed by TheLacus.

 

Mod Dependencies Editor (TheLacus)

TheLacus has also created an easier way to define mod dependencies via the new Mod Dependencies window, available through Mod Builder window.

 

DungeonTextureTables for RuntimeMaterials (TheLacus)

A limitation of the RuntimeMaterials feature was that replacement dungeon parts would not inherit the correct dungeon texture set unique to each dungeon. TheLacus has refined this now so that replacement models using RuntimeMaterials will inherit the correct textures from the dungeon surrounding them.

 

Secondary Keybinding / KeyCodes Combos (jefetienne)

Moving on from mod features for a minute, jefetienne has further enhanced the control capabilities of Daggerfall Unity with a secondary keybind UI and support for keycode combos, e.g. “LeftShift + K”, “RightControl + K”, “K + V”, “[ + /”, “Joy3B0 + JoyB2”.

You can switch editing primary and secondary control using the Primary/Secondary button at the top-right of controls UI. Switching will show the loadout for that set of controls, with secondary not bound to anything by default.

 

You can now clear a selected binding by right-clicking on a previously bound action in the loadout.

 

With support for keycode combos, jefetienne recommends a new default controller layout.

Cast Spell – B
Recast Spell – LT + A
Use Magic Item – LT + B

Ready Weapon – X
Swing Weapon – RT
Switch Hand – R2

Status – D-Down
Character Sheet – D-Up
Inventory – LT + Y

Jump – Y
Crouch – L3
Autorun (Advanced Controls Window) – L2
Run – LT + L2

Rest – Select
Transport – R3
Steal Mode – LT + D-Down
Grab Mode – LT + D-Up
Info Mode – LT + D-Left
Talk Mode – LT + D-Right

Activate – A

Sneak – LT + L3

Logbook – LT + R2
Notebook – LT + X
Automap – D-Left
Travel map – D-Right

Pause (Advanced Controls Window) – Start
Quicksave (Advanced Controls Window) – LT + Start
Quickload (Advanced Controls Window) – LT + Select

 

Automap Dungeon Water (Pango)

Dungeon water is now displayed on the automap, helping you to plan when to pop your next water breathing potion. Pango implemented this in a way that water is rendered neatly inside the dungeon area, and it looks amazing.

 

 

City Bulletin Boards (GalacticChimp)

When visiting a large walled city, you might have noticed the bulletin boards posted by the gates. These are now up and running thanks to GalacticChimp, with an epic first contribution to the project.

 

Other than displaying city name, bulletin boards can also list news about witch burnings, changes to allegiance of the various politic factions, and other flavour text.

 

Additional Mod Support (Hazelnut)

Hazelnut has extended several classes and UIs to better support changes by mod system. This is hard to quantify in a few words or by screenshots, but will lead to some new and interesting mods from 0.10.26 onwards. For example, Hazelnut’s own Travel Options mod for 0.10.26 takes advantage of these enhancements with a fresh overhaul to travel system.

 

And Basic Roads, a WIP mod also by Hazelnut.

 

See Hazelnut’s listed items below for his other changes. It’s incredible to see the mod potential for Daggerfall Unity expand so quickly at this stage in the project.

 

General Fixes & Improvements

JayH

  • Additional quest fixes for dozens of quests
  • Fix typos in Noble, Commoner, Temple, Thieves Guild quests
  • Add display names to remaining quests
  • Add white space to K0C30Y03 to prevent debug comment showing
  • Fix _painting_ field in A0C00Y14/15
  • Replace %dat with %qdt
  • Fix text error Q0C00Y04
  • Fix typos in S0000001
  • QoL updates for S0000005 to clarify reward and time limits

Numidium

  • Apply bonuses and phobias to all attacks, including enemies vs. player and unarmed attacks

DFIronman

  • Set Breaking and Entering as last crime comitted (10% chance) after successfully breaking in
  • Set IsDiseasePermanent() public and add IsDiseaseCompleted() helper

Pango

  • Faster AI obstacle avoidance
  • Enemy capsules dynamically resize to fit through doors
  • General enemy improvements to doorway pathfinding
  • Remove unstick handling as no longer required
  • Prevent point blank spellcasting into low obstacles
  • Fix parchment tearing in popup message boxes
  • Fix vertical progress bar showing single pixel row of gain colour where not intended
  • Prevent intermittent enemy spawns on ship
  • Remove extraneous empty quest messages
  • Support all cursor sizes, using a software cursor on Windows when larger than 32×32
  • Fix water splash sounds in very shallow dungeon water
  • More accurate pursuit formula
  • Fix clock quest timers that would return 0 days
  • Fix HUD spell icon blink time

jefetienne

  • Add IsLoitering flag
  • Allow removing keybinds with mouse right-click
  • Change screenshots to JPEG format
  • Change default binding of Run and Sneak to Left Shift and Left Alt respectively
  • Remove some GC creation in drawing Panels
  • Preprocessor definition for separate development persistent data path
  • Improve keycode display when not using SDF fonts

Hazelnut

  • Allow tavern window extension in mods
  • Open permissions and expose buttons on travel popup window
  • Use unscaled time for transport animation speed is indepdendent of timescale
  • Expose location display name mapping from macros
  • Add motion limits for mods and expose applying force
  • Use advanced item list in item maker UI
  • Open DefaultTerrainTexturer to be extended
  • Don’t show holiday text message unless HUD is top window
  • Implemented %cn2 macro for jokes
  • Allow mods to set extra terrain blend space around locations
  • Make vampire satiation check public for mods
  • Allow TerrainSamplers to disable default job and do their own location blending
  • Move material selection into overridable formulas
  • Fix SearchItems method no template index specified

TheLacus

  • Do not destroy MobilePersonAsset gameobject to fix re-parenting prefab instance
  • Fix IsDirectionClear() for custom MobilePersonAsset
  • Improvements to mod builder
  • Add run quest action to start a quest and wait for it to complete to run task for success/failure
  • Log warning if textue is not readable but needs to be
  • Extract mod text assets to PersistentDataPath/Mods/ExtractedFiles which is always expected to be readable
  • Better error messages for missing references
  • Improvements to mod loader UI
  • Discard virtual mods without a valid title
  • Add conversion method between Tuple and ValueTuple

Ferital

  • Correct %lp macro implementation
  • Fix %god macro to match classic behaviour
  • Fix quest faction macro expansion
  • Fix %imp, %mn, %fn macros
  • FACTION.TXT fixes
  • Use faction race ID for %oath
  • Set race of static NPCs
  • Fix spelling of “sorcerer” in quests display text

BadLuckBurt

  • Made NextObjectOffset and PreviousObjectOffset public to fix dungeon activators

Interkarma

  • Update baseline engine version to Unity 2019.4.10f1
  • Allow DrainEffect to drain to 0 before player dies from attribute loss
  • Fix ElementalResistance and PacifyEffect spell keys
  • Fix CastWhenHeld recast costing another equip charge
  • Add matching “Sorcerer” to Quests-Foes.txt table so quests can use correct spelling
  • Fix spell expiring 1 round too early
  • Add black panel background to talk window
  • Round input values when updating border rects to further resolve parchment tearing
  • Enable resizable window again (disabled in 0.10.25)

 

For more frequent updates on Daggerfall Unity, follow me on Twitter @gav_clayton.

Daggerfall Unity 0.10.24

Daggerfall Unity 0.10.24 is now available on Live Builds page.

New Features

Improved Spectral Appearance (Pango/Interkarma)

So far in Daggerfall Unity, spectral enemies like Ghosts and Wraiths appear only as a grey solid. In classic, these enemies appear as a very dark semi-transparent solid with red eyes. The thing is, these classic sprites actually have a lot of fine details inside them like bones and cloth that aren’t visible in either classic or Daggerfall Unity.

After some collaboration between Pango and I, we’ve setup an import process and custom shader to finally show off these fine details and correctly render spectrals as semi-transparent with red eyes. This is how ghosts and wraiths look in classic game data, just the DOS game couldn’t render them this way.

 

Pango added a very small amount of emission to their lighter areas so they have just a hint of their spooky form in pitch darkness.

Continue reading

Daggerfall Unity 0.10.23

Daggerfall Unity 0.10.23 is now available on Live Builds page. This is a big update with some great new features and loads of bug fixes. Let’s unpack this thing.

New Features

Advanced Controls (jefetienne)

One downside of adding new keybinds to Daggerfall Unity (e.g. QuickSave/QuickLoad and console toggle keys) is the classic keybind UI doesn’t have any free space to list them. This resulted in these special keys being hardcoded into the game. I’m happy to say that jefetienne has reworked keybinding to support more actions and presented them, along with other settings, in the new Advanced Controls UI.

You will find this interface in game from Pause > Controls > Advanced. This replaces the old Mouse button in classic, but mouse settings are also part of this window. Credit to BadLuckBurt for the classic-styled button design.

 

Something that isn’t obvious is just how many little things jefetienne had to work on to make the above possible. My original input setup didn’t support keybindings for these system keys at all, and the code wasn’t robust enough to keep forward compatibility once new binding were added. So jefetienne has been quietly working on fixing all of these little issues and creating a better standard for input handling in the future. And this has all been necessary for…

Continue reading

Daggerfall Unity March Builds

Welcome Back

Welcome to the first post of 2020! Over the last few months, our focus in Daggerfall Unity has been on bug fixes and refinement. This isn’t the most exciting time in a game’s life, but it is key to long-term success. Daggerfall Unity is now starting to feel more like a game well into a long beta rather than one freshly in public alpha. I’m in fact very confident we’ll be calling beta sometime this year, and it’s likely to be a short beta thanks to the time we’re spending now.

It’s incredible to think the main quest has been fully playable since 2017 and all classic gameplay features since July 2019. If this was any other game, we’d be beyond 1.0 and well into post-release support by this stage. But Daggerfall Unity isn’t just a game, it’s also a platform. This title is a superset of classic Daggerfall plus many more features not present in classic. I’m talking of course about quality of life refinements and mod support. This requires an extended development process well in excess of classic, because Daggerfall Unity is today a larger and more ambitious game than even classic Daggerfall was. That might not sound like much in 2020 compared to the wildly ambitious original way back in 1996, but it still represents a real accomplishment that everyone involved has brought this game so far and delivered on so much. For something that began with a single developer, this game has grown into a monster that only the combined efforts of dozens of people could have achieved. The fact we’re all doing this as unpaid volunteers in our own free time out of love for this game speaks volumes about how passionate this community is.

Before I get into the new features in current release, I wanted to recap some news from the last few months.

Continue reading