April Builds – Enchantment System

New live builds are now available for the month of April. This release brings a completed item maker UI along with an Enchantment system to drive it all behind the scenes. In this post, I’ll break down some of the new features around enchanting without going too deep into the technical side of things. If you’d like a more technical primer on magic in Daggerfall Unity check out the Magic & Effects Back-End post from last year.

If you have an existing character with “on equip” type enchantments, I recommend unequipping then equipping those magical items again after upgrading to latest version. This will ensure any of the old intermediate effects are deactivated and the new effects are activated correctly.

Item Maker UI

This is the front-end we’re all familiar with. It is here, through the magical power of menus, that new enchanted items are forged. Select your item, add some powers, balance them out with a few side-effects, and give the item a cool name. Then provided you have the gold, a new magic item with all your custom settings will be added to your inventory.

 

There’s not much more to say about the item maker. While it’s the main feature of this release, everything is fairly utilitarian and most of you are probably familiar with this UI from classic. I’ve just made a few tweaks like adding scroll bars and proper text clipping, and fixed a few minor bugs from classic. The really interesting stuff is what’s happening behind the item maker UI with the Enchantment system offering all these powers and side-effects for use.

I also want to thank Hazelnut for his earlier work on the item maker UI layout. I could just get stuck in to wiring everything up without the rather manual process of mapping out buttons and list boxes. It was great to skip that this time, so thank you Hazelnut!

 

Available Powers & Side Effects

You can use the Effect System Status roadmap page to see which effects have been implemented to date (enchantment powers and side-effects are listed about half-way down page). At time of writing, I’ve implemented 18 of 26 classic enchantments in time for April builds and I plan to complete these before end of May if possible.

Following are the power enchantments (positive effects) available at the item maker:

  • Cast When Used (related spells)
  • Cast When Held (related spells)
  • Cast When Strikes (related spells)
  • Extra Spell Points (during winter, spring, summer, fall, full moon, half moon, new moon, near undead, daedra, humanoids, animals)
  • Potent Vs (undead, daedra, humanoids, animals)
  • Regenerate Health (always, in sunlight, in darkness)
  • Vampiric Effect (at range, when strikes)
  • Increased Weight Allowance (25% additional, 50% additional)
  • Enhances Skills (related skills)
  • Repairs Objects
  • Absorbs Spells
  • Feather Weight
  • Good Rep With (commoners, merchants, scholars, nobility, underworld, all)

And the side-effect enchantments (negative effects) available are:

  • Item Deteriorates (all the time, in sunlight, in darkness)
  • User Takes Damage (in sunlight, in holy places)
  • Low Damage Vs (undead, daedra, humanoids, animals)
  • Extra Weight
  • Bad Rep With (commoners, merchants, scholars, nobility, underworld, all)

A lot of work and testing went into implementing these effects exactly like classic. In a few cases not enough information was available (e.g. Potent Vs / Low Damage Vs formulas) so a “best effort” was made to give these enchantments solid functionality based on their descriptions. These can easily be tuned later once correct formulas are known.

I have also matched classic in configuring enchantment properties. This covers adding the same effect more than once (some can, others cannot) and which effects exclude others (e.g. Potent Vs parameters exclude opposing Low Damage Vs).

 

Going Custom

As with other parts of Daggerfall Unity, the Enchantment system is flexible and extensible. Its not enough just to reproduce all the classic Daggerfall enchantments, the design must allow for creating new experiences via mods that could never exist in classic. This has been a key design of Magic & Effects from the start, and the Enchantment system is no different.

For those of you who like to play with the code and build code-driven mods, I’ve included a sample custom effect called “Mage Light” with this release. I won’t spend too many words on this now, because adding custom effects is still a work in progress. This crosses multiple systems and I still have some bugs to iron out. But if you’re interested in creating mods with new spell effects in the future, keep an eye on the following areas in code for an example to start from.

  • EntityEffectBroker.OnRegisterCustomEffects event – capture this event in your mod to register custom effects.
  • EntityEffectBroker.RegisterCustomEffectDemo() – shows the broad steps of registering a new effect with the magic system and exposing it to different services.
  • MageLight.cs – a sample effect designed to be non-trivial without being overly complex.

The Mage Light effect itself is nothing special. It just drops a coloured light around player based on which variant of the effect is used. It exposes five variants: Inferno, Rime, Venom, Storm, Arcane. The interesting part is how the code exposes the effect to the Spell Maker UI.

 

And a custom spell bundle to the spell merchant UI:

And to the item maker UI:

I almost have everything setup for custom effects to operate across all magic crafting stations and systems, but still have more to do. Custom spells don’t currently trigger from the enchantment system, and they don’t display their name correctly when using Info to examine an item. I’ll keep rounding this out as I can. If you’re interested in building custom effects, keep an eye on the above as it develops. Playing with the existing enchantment effects is also a great way to learn how the system operates behind the scenes.

There’s a lot more to the enchantment system than I can cover here, so let’s take a look at a couple of other changes this release.

 

Stuck Handling

You might have encountered a particular cave block with a sticky floor that traps the player. The problem here is bad geometry in the classic game data. A single-sided polygon is poking through the floor, and due to a quirk in Unity’s controller physics the player will become hopelessly trapped. This release now includes handling to automatically detect when player is stuck on this kind of low geometry and teleport them past it. Here’s an example of this in action after the handler determines player is stuck and kicks in to resolve. You’ll notice movement is not smooth while the handler teleports player forwards in small steps until they become unstuck, but it’s still better than the indignity of being welded to the floor.

 

Head Dipping

There are a few tight spots where the player capsule can’t move forwards because surrounding geometry is too low for capsule to pass. This doesn’t happen in classic Daggerfall as it doesn’t use modern physics, but it’s a problem in Daggerfall Unity. One example is the exit ramp in Sentinel Castle where player must crouch to get through the door. Taking inspiration from watching very tall people duck through doorways, the player capsule will now detect these kinds of spaces and dip lower for a moment to pass. This isn’t a crouch, only the player height is slightly lowered then restored to normal. There’s a momentary camera bounce as handler resolves between heights, but overall player can now smoothly pass this doorway and others like it.

 

General Fixes & Improvements

Every release has a good number of fixes and small improves to the game. Here’s what you’ll find in the April release.

  • Gold is now deducted when buying spells at spellmaker (Pango/Goodbadbugs)
  • Spellmaker checks for spellbook before purchasing spell (Pango)
  • HUD message scrolling speed adjusted when buffer very full (Pango)
  • Fix bug where animated vital changes continue after reload (Pango)
  • Can now sell horses and carts (Pango)
  • Fix modded wagon button reset (Pango)
  • Fix city gates not closing at night regression (Pango)
  • Fix mobile NPCs spawning in front of player (Pango)
  • Fix for building-to-building teleport into void (Pango)
  • Several improvements and fixes to AI pathfinding, combat, movement, and spellcasting (Allofich)
  • Code cleanup for classic update loop and talk manager (Allofich)
  • Improvements and cleanup to FaceWall (TheLacus)
  • Allow read-only flag for billboards (TheLacus)
  • Travel map support for custom overlays (TheLacus)
  • Support for mouse cursor override (TheLacus)
  • Make texture arrays with CopyTexture for improved performance (TheLacus)
  • Fixed scale of TELE00I0.IMG (TheLacus)
  • Ensure DaggerfallBillboard can still be found on modded loot piles (TheLacus)
  • More model UV fixes (Ferital)
  • Townsfolk NPC names now match classic (Ferital)
  • Use faction data for vampire clans (Ferital)
  • Fix ruler name generation (Ferital)
  • Can now set custom bonusPool on level-up using formula override (Interkarma)
  • Added “showitemmaker” console command to launch enchanting UI (Interkarma)
  • Broker can now register custom spell bundles for sale (Interkarma)
  • Added example custom effect MageLight and related spell bundle for future mod developers (Interkarma)
  • Increase radius of player capsule to prevent slipping through narrow openings (Interkarma)
  • Fix crouching capsule height and position camera inside crouched capsule to fix many clipping issues (Interkarma)
  • Don’t climb enemies or mobile action objects (Interkarma)
  • Reduce distance from door when exiting dungeons to fix sticking to angled geometry in some cases (Interkarma)
  • Interior transition now uses closest door, not just enter marker (Interkarma)
  • Spell missiles are now correctly parented and will not persist after reload (Interkarma)
  • Fix light/darkness powered magery conditional (Interkarma)
  • Migrated all intermediary enchantment and artifact effects to new enchantment system (Interkarma)
  • Fix “fastest” quality setting resulting in startup crash (Interkarma)

Update 6 May – Updated builds are now available with additional bug fixes for April release.

  • TextureReplacement: Emission maps for mobile billboards (TheLacus)
  • Custom render mode for static and mobile billboards (TheLacus)
  • Fix animated billboard materials (TheLacus)
  • Minor settings UI improvements (TheLacus)
  • More cleanup and fixes to enemy movement and AI (Allofich)
  • Match GoodRepWith/BadRepWith enchantment modifiers to classic (Allofich)
  • Randomize book quest rewards (Allofich)
  • Improve HUD text acceleration when buffer full (Pango)
  • Fix negative repair times when removing other repaired items (Pango)
  • Special infections (vampirism/lycanthropy) now bypass disease resistance correctly (Interkarma)
  • Fix NPC talk crash in Ilessan Hills (Interkarma)
  • Bonus to “where is” chance for town NPCs in smaller towns (Interkarma)
  • Fix accessory item not clearing magic animation (Interkarma)
  • Store shelves now stock magic items when appropriate, which also fixes non-stacking ruby bug (Interkarma)
  • Don’t use unsticking handling when player is paralyzed (Interkarma)
  • Fix checking for static geometry (Interkarma)

 

That’s it for April! The next system I’m building out is lycanthropy, so hopefully you’ll be chasing villagers with your werewolf or wereboar in a few weeks time. I’ll also keep working on enchantment system to complete remaining classic effects and wire up more support for custom enchantments.

 

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

March Builds Part 2

Just as March was coming to a close, a second round of Live Builds landed for the month. This is primarily a bug-fix release, but thanks to our amazing contributors there’s new stuff too!

Artifact Progress

Some great progress has been made around artifacts lately. There are fixes to their appearance and equipment placement, a new console command to spawn any artifact, and even decent progress on the bespoke effects that make artifacts so unique. I won’t cover the artifacts in great detail here, so check out the UESP Daggerfall Artifacts page for more information about them.

 

Wabbajack (Numidium)

Wabbajack is a magical staff imbued with the chaos of Sheogorath. Striking an enemy will randomly transform it into another type of enemy. This might turn a powerful foe into a relatively harmless rat. If you’re lucky.

 

The Mehrunes Razor (Numidium)

The Mehrunes Razor has a chance to instantly slay any enemy.

 

Oghma Infinium (Allofich)

Reading this powerful book allows the player to distribute 30 points into their attributes.

 

 

Azura’s Star (Allofich)

Azura’s Star is a powerful soul gem that can be emptied and refilled over and over. This will be very useful when the magic item creator comes online.

 

 

Show Repair Times (Pango)

How long will that Daedric rat-sticker take to repair? Now you’ll know, because repair times are shown before you commit to the repair. You can also take your items back early, although you forfeit the repair costs. And if you don’t like classic Daggerfall’s repair times, you can enable instant repairs in settings. Oh, and you can enable repairs for magic item too, if you like.

 

New Spells

With the following now available, it means all spell effects in Daggerfall Unity are done. Same goes for all class & race advantages/disadvantages, diseases, poisons, and most of the item powers. The long laundry list of effect-based code is finally close to the finish line.

 

Dispel Daedra & Undead (Interkarma)

Boop! And the undead are gone! There’s a similar spell for bothersome Daedric infestations as well. Be careful with this spell that you don’t banish your quest target to Oblivion. Banishment doesn’t count as a kill.

 

Shield (Interkarma)

The shield effect will absorb some or all incoming damage to the player. This includes physical, magical, and even fall damage.

 

Comprehend Languages (Interkarma)

This effect increases your chance to pacify enemies by speaking soothing lies about how you won’t backstab them the moment they stop looking. Thanks again to Allofich for clarifying how effect operates in classic.

 

General Fixes & Improvements

Another big list of bug fixes and small tweaks.

  • Fixes for positioning of custom loot containers (TheLacus)
  • Fixes to texture scale of some TRAV* IMG replacements (TheLacus)
  • Fix for invalid collider on custom ladder (TheLacus)
  • Fix for ModSettingsEditor exception when no mod loaded (TheLacus)
  • Reset class creator state when starting over (Numidium)
  • Spellbook now clears labels and icons when no spell selected(Pango)
  • Fixes to some text and message keys (Pango)
  • Fix custom class advancement confirmation when difficulty dagger too high or low (Pango)
  • Fix label alignment in exterior automap with free scale enabled (Pango)
  • Fixes to closing level-up UI when not desired (Pango)
  • Fix to spatial blend of quest sound effects – VENGEANCE is back again! (Pango)
  • Spell merchant – spells are now sorted in alphabetical order (Pango)
  • Fix classic mode attack range (Allofich)
  • Fix case where AI can become stuck during strafing (Allofich)
  • Fixes and cleanup to senses code (Allofich)
  • Fix concealment spells to work again (Allofich)
  • Fix quest enemies from being pacified via language checks (Allofich)
  • Improve pursue behaviour (Allofich)
  • Allow spawned guards to get player’s location (Allofich)
  • Fix how faction flags are merged (Allofich)
  • Implement “cm” (create mobile) console command to generate enemy mobiles (Allofich)
  • Implment “tai” (toggle AI) console command to enable/disable enemy AI (Allofich)
  • Classic update no longer runs when game is paused, fixing breath going down while paused underwater (Allofich)
  • Add soul traps to “add” console command (Allofich)
  • Fix non-paperdoll artifacts appearing on paperdoll (Allofich)
  • Prevent non-guard spawns while player in water (Allofich)
  • Fix %loc macro not expanding correctly in talk UI (Nystul)
  • Quest popups now reveal dialog linked talk options (Nystul)
  • Fix so dialog linked resources only resolve if macro type is NameMacro1 (Nystul)
  • Fixes for most texture alignment issues (Ferital)
  • Swap colour of towns and homes on travel map to match filter buttons (Ferital)
  • Updated project to Unity 2018.2.21f1 (Interkarma)
  • Only enemies capable of opening doors will do so (Interkarma)
  • Exclude static NPCs with special ShowTextWithInput action record from talk system (Interkarma)
  • Exposed maximum stat ceiling formula to mod system (Interkarma)
  • Fix emulation of multiple “when” triggers on a single task (Interkarma)
  • Allow negative values in “legal repute” action (Interkarma)
  • Fixes and improvements to saving throws (Interkarma/Numidium)
  • Ambient light changes now only smoothly change inside dungeons (Interkarma)
  • Mobile NPCs will no longer walk on partial water tiles (Interkarma)
  • Only show “you feel drained” when drain amount > 0 (Interkarma)
  • Fix loading exterior save after dungeon death (Interkarma)
  • Fix expertise in weaponry not being set by custom class creator (Interkarma)
  • Fix increased magery default not set by custom class creator (Interkarma)
  • Refactor nearby objects system to use correct enemy groups (Interkarma)
  • Enable remaining vampire spells now all spell effects implemented (Interkarma)
  • Remove duplicate language tally (Interkarma)
  • Fixes to interior action door model & texture selection (Interkarma)
  • Fix MessageBox with prompt closing when not intended (Interkarma)
  • Fix mobile transform parent for wilderness mobiles so they work with floating origin (Interkarma)
  • Improvements to quest timers and fix for improper +1 day to some timers (Interkarma/Elenwel/Pango)
  • Fix to “say” quest action execution (Interkarma)
  • Implement “when attribute <attributeName> is at least <minAttributeValue>” quest trigger (Interkarma)
  • Fixes to always on trigger handling (Interkarma)
  • Effect broker can now accept custom effect registrations (Interkarma)
  • Summoned items timer now saves/loads correctly (Interkarma)
  • Summoned items can no longer be removed/dropped/sold (Interkarma)
  • Summoned items now have a blue background (Interkarma)
  • Summoned items will no longer stack with normal items (Interkarma)
  • Fix file exclusivity lock issue affecting Anthology game files due to install location (Interkarma)
  • Windows users can now use “daggerfallunity.exe -force-glcore” to start DFU with OpenGLCore renderer for testing (Interkarma)

 

And that’s it for March 2019. Coming up in April, I’ll be working on completing the magic item creator so we can finally craft custom magic items in Daggerfall Unity.

 

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

March Builds – Faster Terrain, New Spells, Bug Fixes, QoL Improvements

This article is a bit overdue, it’s for the new Live Builds that dropped on March 03, which in turn is a slightly delayed February build. There’s even another round of March builds coming up with mostly bugfixes, so it’s long past time to write up the change log for early March.

Terrain Performance Enhancements (Hazelnut/Nystul)

This one started in January after Nystul backported some optimisations from his Distant Terrain mod into the default terrain generator. Then Hazelnut added multi-core support for terrain generation so that several computationally heavy tasks could be completed in parallel. That’s a short summary of what was an awesome collaboration with lots of ideas and work being bounced around. And for what turned into almost a complete overhaul of terrain generation, it didn’t cause any major issues, a testament to the skill and dedication of those involved.

Once everything was in place, time to generate each terrain tile dropped roughly in half. This means the world loads more quickly after travel, loading a game, or exiting a dungeon. It’s a huge improvement for overworld explorers and users of Tedious Travel mod (which also received some optimisations around the same time when Hazelnut spotted a timestep issue).

If you use a terrain mod (Distant Terrain, Mountains & Hills), you’ll need to update them for compatibility with March builds.

Sunset screenshot by King of Worms on forums

 

General Rumours (Allofich)

When speaking to NPCs around town, you might hear news of a ruler overthrown, a witch burning, or some other juicy rumour not related to any of your quests. This system goes a long way to making Daggerfall’s world feel more alive and as though things are happening even when player isn’t involved. Thanks to Allofich, this system is now up and running in Daggerfall Unity.

There’s a bit more to this system than just picking talk items at random. There’s a kind of rotating simulation under the hood that generates rumours about once per month. Allofich has also fixed a problem present in classic where these rumours would stop working after a while. Great work all around.

If you’re just updating to March builds now, it will take around one month of game time before the rumour mill starts generating news.

 

Spell Reflection/Resistance (Interkarma)

These two effects are vital in any spellcaster’s defensive toolkit. Spell Reflection allows you to bounce the effects of some other spell back to the caster. There’s nothing more satisfying than watching an Ancient Lich blow themselves up by reflecting their spells back at them. And Spell Resistance gives you a chance to shrug off whatever magical attacks come your way.

 

Create Item (Interkarma/Allofich)

This effect can be used to summon basic temporary items such as armour, weapons, and arrows. It’s most useful if one of your items break in the heat of combat and you need something to arm yourself with until your next visit to a smith for repairs. Additional credit goes to Allofich for implementing the back-end tracking of temporary items.

 

Charm (Interkarma/Allofich)

The effect works nothing like it says on the tin. It actually has nothing to do with reputation, and instead it’s just another Pacify effect for non-monstrous humanoids. These are the class-based enemies like Knights, Rogues, and Archers that you encounter around the world. The other side of implementing this effect is to fix Pacify Humanoid so it only works on monstrous humanoids as intended. A big thank you to Allofich for clarifying how classic works here and determining the enemy groupings to match classic.

Just like Pacify, a charmed enemy will remain that way until you decide to hit them again.

 

Classic Spellbook Import (Interkarma)

When importing a classic character, their spellbook is now imported as well.

 

Click SAVE# To Open Folder (Interkarma)

This one works for Windows users only at this time. If you click the SAVE# index displayed at top-right of screenshot in save/load UI, it will open the folder directly. This will help users find the save folder faster.

 

Highlight Recently Increased Skills (Pango)

After increasing a skill, it is now shown in blue on the character sheet when inspecting skills for first time after increase.

 

Messages Log (Pango)

Daggerfall’s text messages are shown for a moment then disappear, it’s very easy to miss some bit of information the game is telling you. With this QoL improvement, these messages are now written to the log so you can look back over them even after they scroll off the screen.

Speaking of scrolling text, Pango has also changed the text to smoothly scroll out the top of screen. The movement helps catch the eye and gives you an extra few moments to read the text before it disappears.

 

 

Enemy Strafing (Allofich)

This is an improvement to the Enhanced AI feature set. Enemies will now try to strafe and flank the player during combat. Allofich has made it fairly subtle and not too game-like.

 

General Fixes & Improvements

  • Fixed freeze with no usable magic item after activating “use magic item” keybind (Pango)
  • Fixed “no item to activate” mid-screen message text (Pango)
  • Fixed ambient effects muting rain sounds (Pango)
  • Fixed classic sky blind spot (Pango)
  • Fixed improper wagon access via identify spell inside dungeons (Pango)
  • Fixed player spellbook returning after discarding it (Pango)
  • Add tooltips to spell icons in spellbook (Pango)
  • Allow fast travel and rest when only pacified enemies are nearby (Pango)
  • Grey out unavailable spells in spellbook that are too expensive to cast (Pango)
  • Increase time for modded sound clips to load, fixing first playback being dropped (Pango)
  • Warn player before taking back item not fully repaired (Pango)
  • Warn player when paid by letter of credit (Pango)
  • HUD text smooth scrolling (Pango)
  • Fixed typos in tutorial quest (Pango)
  • Fixed paying repair price multiple times (Pango)
  • Only allow trade popup if there’s something to do (Pango)
  • Fixes to several Random.Range off-by-one errors (Pango)
  • Hide icons in empty spellbook (Pango)
  • Fix list box row count for small font (Numidium)
  • Allow read-only texture flag for mods helper (TheLacus)
  • Support for TRAV0I00.IMG “travel map” texture replacement (TheLacus)
  • Support for FMAP*.IMG “region map” texture replacement (TheLacus)
  • Improvements to speed of asset injection (TheLacus)
  • Updates to mod builder window (TheLacus)
  • Initial support for custom doors for buildings (TheLacus)
  • Mod serialization now uses invariant culture for better multiplatform support (TheLacus)
  • Fixed temples selling spells to non-members (Hazelnut)
  • Fixed guild expulsion to match classic (Hazelnut)
  • Improvements to AI pursuit (Allofich)
  • Cleanup and fixes to enemy motor (Allofich)
  • Cleanup and fixes to enemy senses (Allofich)
  • Unify timers for classic update simulation (Allofich)
  • Implement “addartifact” console command for future artifact testing (Allofich)
  • Special enemy height handling for large enemies to fit through doors (Allofich)
  • Arrows now use colliders for hit checks (Allofich)
  • Fixed arrows and spell missiles colliding more than once (Allofich)
  • Fixed “mute npc” not rearming when parent task ends/rearms, correcting certain quest NPCs not talking to player (Interkarma)
  • Added “unmutequestnpcs” console command for any saves affected by above issue (Interkarma)
  • Fixed transition events when teleporting outside, correcting issues with blank sky and map exceptions (Interkarma)
  • Fixed text stylisation dropping text in A0C01Y03 “the riddle” quest (Interkarma)
  • Fixed entire Scourg Barrow exterior being considered a door (Interkarma)
  • Ignore swimming encumbrance when waterwalking (Interkarma)
  • Don’t show encumbered message when water walking (Interkarma)
  • Added vampire graveyard background on paper doll (Interkarma)
  • Prevent main story dungeon Direnni Tower from being remixed by smaller dungeons option (Interkarma)
  • Added “addspellbook” console command for adding a spellbook at any time (Interkarma)
  • Fixed quest offer presenting when a suitable location could not be found (Interkarma)
  • Fixed enemy groups for Pacify Humanoid effect, this should only operate on monstrous humanoids (Interkarma)
  • Additional fixes to being crushed improperly by environment (Interkarma)
  • Fixed arrow hits forcing player into a permanent crouch (Interkarma)
  • Fixed rappel state not being cleared when grounded (Interkarma)
  • Fixed classic keys not mapping to all variant effects (Interkarma)
  • Fixed tavern rest ejecting player into void (Interkarma)
  • Fixed “give pc” quest action improperly rearming (Interkarma)
  • Fixed spell debuffs from enemy casters not deserializing correctly from saves (Interkarma)

January Builds – Vampirism, Spell Icons, More Magic Stuff, New Quest Actions, and More!

It’s time for a fresh round of Live Builds for January 2019. The last month has seen a lot of progress across a wide variety of systems, so rather than waste time on an intro. let’s get right into it.

Vampirism

The full loop of Daggerfall-styled vampirism is now in the game from curse all the way through to cure. Each time you’re mauled by a vampire, you have a 0.6% chance of contracting the disease that will transform your character into one of their kind. Some time after being infected, your rest will be plagued with bad dreams. Unless you like fangs and late-night shopping, this would be a good time to find a temple and cure yourself of diseases.

 

If you allow the disease to continue a few days, you will “die” and awaken two weeks later interred somewhere in the region. In classic Daggerfall, your death will also remove you from all guilds and reset your legal reputations. At this time, Daggerfall Unity doesn’t modify guild memberships or reputations, this will be implemented sometime in the next few months.

 

Becoming a vampire comes with some great perks. You can no longer be touched by weapons less than silver quality, you get +20 to most attributes, +30 to Climbing, Critical Strike, Hand-to-Hand, Jumping, Running, and Stealth, and unique vampire versions of spells including one specific to your clan. I should note that only Levitate and clan-specific spells are currently delivered to vampires. Charm Mortal and Calm Humanoid are not working yet, but will be added soon. You also get a nice set of fangs and some really bloodshot eyes.

 

It’s not all positive though. As a vampire, you will start taking damage from sunlight and holy place. But most pressing of all is the need to satiate your urge to kill at least once a day. If you fail to kill each day, you will find yourself unable to rest which can make things difficult. Fast travel will also make you arrive at night, so you will have limited time windows for shopping in cities before they close.

 

After playing for a while, you will receive unique vampire quest, starting with an introduction ques from your clan. There are 10 vampire quests in total, including one that will cure you of the infliction.

 

It’s probably worth mentioning that most of the back-end work for racial override effects is now complete, so lycanthropy won’t be too far away.

 

Continue reading

Daggerfall Unity 0.6.1 Stable & 0.7.2 Combined Releases

Happy New Year everyone! It’s great to be here in 2019 at last. This will be the year that Daggerfall Unity steps out of pre-alpha into alpha, and reaches feature parity with classic Daggerfall. If you haven’t seen the Roadmap page lately, it’s time to take another look. There aren’t too many items left now and no major systems remain to be developed. Everything that’s still to do is just a small part of an otherwise finished system. Even the Quest System and Effect System roadmap pages are looking very green these days.

With a busy end to 2018, I didn’t make time to put up change notes for the Live Builds released on 20 December 2018. I think its a good idea to address these changes before dropping the next release, or solid contributions from our developers aren’t going properly credited. Let’s start with the highlights of new features from 0.6.1 Stable and 0.7.2 builds. I’ve tagged anything introduced in 0.7.2 with [0.7].

Highlights

Hanging Mode for Advanced Climbing [0.7] [Meteoric Dragon]

Upgrades to the optional Advanced Climbing system allows skilled climbers to hang from ceilings and eaves, and climb around on ceilings. This rounds out the other Advanced Climbing features such as sideways movement on walls and climbing around corners.

direct link to gfy

 

AI Obstacle & Fall Avoidance [Allofich]

Enemy mobiles have learned a few new tricks, and it’s a bit harder to trap them on the environment now. In addition to moving around static and dynamic obstacles, they’re smart enough not to walk off high places. While this isn’t perfect yet, it’s still a big improvement over classic AI. In other news, enemy AI is now capable of bashing open locked doors to reach the player!

direct link to gfy

 

Personal Light Sources [Hazelnut]

If you enable “item based player torch” in startup settings > Advanced > Enhancements, you can finally make use of those lanterns, torches, and candles in General Stores. Lanterns and torches can be refuelled using oil, also found in General Stores. If you make dungeons darker with the ambient light settings on the same Enhancements page, this adds a nice RP touch to dungeon delving. It can be quite tense knowing you’re running out of lantern oil and about to be lost in the dark.

 

Potions [0.7] [Hazelnut]

This is a big one! All potion recipes and effects are now supported in game, along with the crafting UI to make them. As a Daggerfall Unity quality of life feature, like-kind potion will stack.

 

Continue reading

Creating SDF Fonts For Daggerfall Unity

Introduction

All the way back in September, I upgraded font rendering in Daggerfall Unity to support Signed Distance Field (SDF) fonts. This enabled smooth high-resolution font replacements which can operate under the same “layout rules” as classic Daggerfall’s pixel fonts, with a substantial improvement to reading comfort as this comparison screenshot demonstrates.

 

Rather than storing individual display pixels of a text glpyh, SDF fonts store a distance value that can be turned into display pixels later at any resolution using a custom graphics shader. Unlike regular pixel fonts that become quite pixelated at high resolutions, SDF text can use those distance values to generate sharp detail even at UHD resolutions and beyond. If you’re interested in the inner workings of Signed Distance Fields, there are loads of great resources out on the web. This tutorial doesn’t look very deeply at SDF concepts, only the process of creating new SDF fonts for Daggerfall Unity.

 

Resources

There are a few resources you will need to work through this tutorial.

You can use whatever font or tools you like to generate your SDF font atlas. This is just the process I’m using that will generate known-good output for Daggerfall Unity. If you do use a different toolchain, the only thing that matters is the output image is a proper SDF texture and the glyphs are laid out in a specific way.

 

Continue reading