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…

 

Controller Support (jefetienne)

That’s right – from 0.10.23, Daggerfall Unity has native controller support! You can now play the game with most major controllers such as Xbox One, PS4, Logitech. I’ve played with this for a while now and it works beautifully. I’ve traditionally been very sceptical of playing Daggerfall with a controller, because it’s such a mouse-oriented game, but jefetienne has overcome all of my concerns.

Once you’ve setup your controller bindings, you can play the game just as easily as you can with a keyboard and mouse. Weapons can attack with gestures or clicks depending on your preference, and gesture attacks decouple mouse sensitivity from controller as the two input methods are quite distinct. If you open a UI that requires a mouse pointer (such as the inventory) you can drive mouse pointer around with a thumbstick and select things as normal. It works nicely and feels a lot like playing Morrowind on console back in the day. Which is to say, it’s a pretty great way to enjoy the game.

Because controller support is new, there are still a couple of limitations I need to raise. First, you’ll need a keyboard for infrequent moments such as naming your character and entering text in certain parts of the game. There is no on-screen keyboard at this time. But these moments are few and don’t take much away from the experience. Second, you can only bind controller or keyboard/mouse at this time. You won’t be able to seamlessly switch back and forth with unique bindings for each, you’ll have to setup the game for one control method or the other. These limitations can be worked on as the feature matures.

So while you’re setting up your bindings, jefetienne recommends the following base layout, which has been based on bluntrauma69’s unofficial controller mod for DFU. This is just a suggested setup, not defaults. You can modify this as needed and bind other actions based on your preference.

  • Cast Spell OR Use Magic Item* – B
  • Recast Spell – LT
  • Ready Weapon – X
  • Swing Weapon – RT
  • Switch Hand – R2
  • Status – D-Down
  • Character Sheet – D-Up
  • Jump – Y
  • Crouch – L3
  • Run – L2
  • Rest – Select
  • Transport – R3
  • Activate – A
  • Automap – D-Left
  • Travel map – D-Right
  • Pause (Advanced Controls Window) – Start

*You can access both the inventory and spellbook through the character sheet

Pro-tip #1: Sneaking in Daggerfall is based on movement speed, it’s not really a separate mode. The slower you move the more sneaky you are. The traditional “sneak” key in Daggerfall just slows your movement speed and makes footsteps sound quieter. You can very naturally move slowly with an analogue controller, and you may not need to bind a sneak key at all.

Pro-tip #2: If you rebind your Pause menu to a controller and find yourself without that controller later, you can still reopen Pause menu using Shift+Escape. This keybind is hardcoded so there’s always a way to access the Control UI again if you’re locked out.

 

Toggle Sneak Option (jefetienne)

A bonus QoL feature by jefetienne is an option to make sneak key a toggle instead of a state key. With this option enabled, you can toggle sneak on and off with a single key press instead of holding key down the whole time. If you run with toggle sneak enabled, then sneak mode will switch off again. You will find this option in Advanced > Gameplay of settings UI.

 

Runtime Materials (TheLacus)

On the modding front, TheLacus has added support for runtime materials. This feature is a component that holds a list of classic texture indices. These are instanced as materials in Awake or can be manually applied. This allows mods to “reference” a classic material on a prefab provided by a mod. You can read more about this in TheLacus’ comments for PR1775.

 

Custom Items (Hazelnut)

If you’ve played Hazelnut’s awesome Archaeologists Guild mod, you’ll know there’s a custom item available called the Locator. Hazelnut has built on this support to allow mods to add more detailed items into the game in future. To get an idea of where modders can go with this, there’s no better source than Hazelnut himself. His new Roleplay & Realism: Items mod will make heavy use of this feature. Click through to that link for more information, but just to give you an idea, this mod can adjust properties of items and even allow for new armour sets and the like.

 

This is amazing work as always by Hazelnut. Please try out his mods send him some love for all of his hard work on this feature (and so many others).

 

Custom Flat/Model Activations (BadLuckBurt)

Think of the throne lift in Privateer’s Hold or clicking an NPC. These are examples of activating something in the game. BadLuckBurt has extended mod support to allow adding custom activations to flats, building on earlier support for models by Hazelnut. This means mods can now add a custom “something” to happen when you click on some object, which opens up a lot of potential for new mods to inject new actions into the game.

This is a bit technical and hard to show in screenshots until a mod really takes advantage of it. Just in the short term, check out BadLuckBurt’s forum post and PR1768 about this feature. There’s also a Demo Dungeon mod showing a custom location and some test objects you can activate. Load this up into the editor to play with it further. If you’re into modding Daggerfall Unity and custom activations seem like exactly what you’ve been waiting for, please check it out and chat with BadLuckBurt on the forums to learn more.

 

Retro Rendering PostProcessing (Pango)

If you’re not familiar with it, Retro Rendering mode is a setting under Advanced > Video that renders the game in either classic 320×200 or slightly enhanced 640×400. This is the real deal, everything is rendered to an offscreen buffer that is actually 320×200 or 640×400 pixels in size before displaying it on your monitor. The UI is rendered to a separate layer at native resolution so the text remains perfectly crisp or you can use smooth SDF fonts. It’s the best of both worlds, and you can even use most mods with this feature. Setting up Retro Rendering correctly to get the right classic aspect ratio does need some attention to detail though, so click that link and above and see how to setup your game for that chunky pixel goodness. It’s also a great way to improve performance on lower-end PCs.

But chunky pixels and aspect ratio isn’t always enough. One big limitation of this feature is the lighting remains 32-bit and smoothly GPU-perfect. For some people this a quite jarring look against the low resolution visuals. This is where Pango has come to the rescue with new postprocessing options for Retro Rendering mode.

 

You have three options here:

  • Off – Disable post-processing and use standard 32-bit lighting.
  • Posterization – Efficiently reduces colour-depth and remains very fast.
  • Palettization – Accurately matches each pixel to Daggerfall’s classic palette data, but requires more performance than the above two options.

You can read more details about this in Pango’s forum post. And check out Pango’s video below to see this in action. Best viewed in HD 1080p so YouTube doesn’t blur things together. It looks even better playing with it for real, videos and screenshots can’t do it justice.

 

Protip: You can toggle Retro Rendering postprocessing on/off using Shift+F11 in game.

 

Serialize Advanced Climbing State & Climbing Fixes (Interkarma)

If you use Advanced Climbing and like to save your game while holding on for dear life half way up the outside of Direnni Tower, then this small addition is for you. Climbing state is now saved and loaded with your game. If you save while holding to a wall, you’ll load holding onto that wall. This has no effect on standard climbing where you fall once you stop the climbing process.

 

Climbing in general has also been through a review process to fix many common and frustrating bugs. These are outlined in general fixes and improvements below, but I thought a couple of fixes in particular were of note. You can now climb surfaces that angle slightly backwards. The best example here is the coffin climb in Scourg Barrow, which was impossible up until now and trapped many an adventurer who didn’t set their Anchor or know about the Levitate tapestry nearby. And you can now climb over eaves onto rooftops like in classic.

 

Keyboard Look (Interkarma)

This is a small addition to the game, but some people like to steer their character using the keyboard instead of a mouse. Daggerfall had keybinds available for keyboard look, they just weren’t wired up to anything. From 0.10.23, you’ll be able to turn left/right and look up/down with the keyboard using the following bindings.

 

General Fixes & Improvements

There are enough fixes in 0.10.23 to group these by contributor.

TheLacus

  • Remove invalid assets from cache
  • Remove unused assets from mod cache
  • Improvements to mod manifest file
  • Improve handling of mod dependency issues and messaging
  • Mod loader add message for unsatisfied game version

Pango

  • Restrict CastWhenStrikes enchantments to weapons
  • Mark NPCs present if you have anytime access privileges
  • Prevent the use of weapons while climbing
  • Require confirmation before spellbook sorting
  • Do not call UnloadUnusedAssets() more than once every 3 minutes to reduce sound skip on UI close
  • Refinements and fixes to geometry unstick handling
  • Prevent saving while rapelling
  • Disable head bobbing while cursor active to prevent camera flip
  • Prevent leaving character creation recap UI with unassigned bonuses

JayH

  • Classic quest fixes for April 2020
  • Enable Lord Kavar quests

jefetienne

  • Improve output of “start quest” console command to show more information
  • Reduce GC alloc of SongManager
  • Fix horse footstep sounds when holding jump

Hazelnut

  • Fix typo in ItemUseHandler delegate
  • Add Ironman quest actions (written by Ironman, added to core by Hazelnut)

Interkarma

  • Fix career-based spell absorption and chance roll for other effect-based absorption
  • Fix Teleport Anchor persistence, Anchor now clears correctly after Teleport
  • Fix orphaned items on quest completion via Foe item queues (e.g. mummy wrappings)
  • Fix items not made permanent when rewarded via Foe item queues
  • Fix player being hurled into air while mantling (e.g. reaching top of city walls)
  • Fix climbing slightly backward angled walls (e.g. Scourg coffin tunnel) and over housing eaves to roof
  • Fix floating away while rappelling into empty space
  • Fix oscillating between rappel and climb states
  • Fix losing Thieves Guild and Dark Brotherhood hideouts at end of quests for them
  • Fix billboard replacement models rotating to face player (e.g. loot piles)
  • Fix reversed values in Strengthens/Weakens Armor
  • Fix cancelling character creation back to start UI
  • Fix quest enemies not added when teleporting into dungeon
  • Fix WeaponManager no calling HandleAttackFromSource()
  • Fix automatic soul capture of Azura’s Star when equipped
  • Fix bad models overlapping stairs in two known building interiors
  • Fix wading footstep splash sound height check near dungeon water
  • Support racial immunity to Poison (e.g. Argonians in Races Redone mod)
  • Option shadows setting in .INI for NPCs and billboard, note these shadows will rotate with sprite
  • Implement scrolling DaggerfallMessageBox support
  • Add “purgenonstoryquests” console command to purge only non Sx story quests

 

That’s all for now! This has been a big release for a small group of developers to execute in their spare time, and I’m very proud and appreciative of everyone involved. This project would not be so successful if it wasn’t for the spirit and determination of all the people above (and many others). And let’s not forget our amazing community who spot bugs, provide feedback, create mods, and keep us all sane in these times. Thank you all, this game has remained a personal bright point in 2020.

 

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