June Builds – Map Upgrades, Retro Rendering, Crime Features, and More!

New Live Builds are now available, combining all our work for month of June. We managed to get a lot done this month, even making a break into 0.8 with new crime features. Let’s start breaking it all down.

Improved Travel Map Search (Pango)

Some of the randomly named locations across the Illiac Bay can be challenging to search for. Either the name is very long like “Bleeding Redeemer of Kynareth” or just plain weird like “Old Barbyvyra’s Farm”, and players would sometimes need to switch back and forth between quest log and map screens before they could perfectly enter enough of the location name for search to work.

Those days are over with Pango’s most welcome upgrade to search in the travel map. Now you can just enter any part of the name, you don’t even need to spell it quite right, and the search will find all the closest matching locations. Look what happens when I mangle “Old Barbyvyra’s Farm” to just “barbv”.

 

First hit is exactly what I’m searching for, along with a reasonable number of other matches. If you enter enough of the name perfectly like before, the location will be selected immediately without showing the above UI.

 

Improved Terrain Tilemap Shader (Pango)

My original tilemap shader had the limitation of not being able to mod ground textures. This was later upgraded by Nystul to use texture arrays to support replacement ground textures. This has now received another pass by Pango to improve mipmap blending and restore some detail back the ground when seen from a distance or an elevated position. In the comparison screenshot below, the left side is “before” and right side is “after”. Note how much more detail is present on the right. This looks even better with modded HD textures over the ground.

 

Pango has another terrain refinement on the way to reduce some cracking between tiles, but this code wasn’t ready at the time June builds were created. It will be included in July releases instead.

 

Interior Automap Upgrade (Nystul)

Nystul has done an amazing job of not only recreating the classic dungeon/interior automap but improving it in dozens of small ways that each incrementally improve the overall experience. This release sees more refinements that make the interior automap better than ever.

  • 3D view is now default (a highly requested change)
  • Tooltips updated to be shorter and clearer (should even fit 4:3 displays)
  • Beacons optimised with transparency added
  • Classic micromap has been added to help understand dungeon shape
  • Fixed a bug for interiors where the entrance door position was wrong

There’s also new stuff you can do with the automap now:

  • Add dungeon custom note nodes by double-clicking
  • Right double-click on user note marker deletes it
  • Right double-click on map geometry sets rotation pivot axis

 

When it comes to viewing information about the map, hover your mouse over the following to get more details:

  • User note markers reveals their attached note in the status bar (in the bottom of the automap window, see screenshot above)
  • Player position beacon, player marker, rotation pivot axis, exit beacon and marker reveal their purpose in status bar
  • Portal markers (e.g. red brick wall teleporter) will show connection between portal endpoints
  • Discovered portals will tell in the status bar if the portal is the entrance or exit endpoint (see blue line in screenshot below)

 

Finally, there are a few more settings in the INI to customise how the automap operates:

  • AutomapDisableMicroMap – True disables micro map display
  • AutomapRememberSliceLevel – True remembers slice level on map close/open
  • AutomapAlwaysMaxOutSliceLevel – True maxes out slice level (and making AutomapRememberSliceLevel having no effect)

 

Game Window Refinements (Interkarma)

I’ve had a several requests to make Daggerfall Unity fullscreen into a borderless window. This confused me, as fullscreen has always been a borderless window. I finally understood that what people were asking for was the borderless fullscreen window to be visible in background rather than auto-minimise when alt-tabbing away. I have changed this now so you can keep the borderless game window open in background while doing other stuff in front of it.

 

If you prefer to do things the other way around, you use Alt+Enter to toggle between fullscreen or windowed mode at runtime. You can even drag the window size around, but note this will be reset next time you launch the game. Set in startup UI or settings.ini to make it permanent.

 

Retro World Rendering (Interkarma)

There’s a wide range of Daggerfall Unity players from hard-core classicists all the way through to high-end upgraders. While the latter has been fairly well represented through the mod system, the former hasn’t been able to render the game in 320×200 without also suffering blurry visuals and text. Even though the game could technically render to 320×200 resolution, it would be presented with bilinear filtering at the player’s display resolution, resulting in an unpleasant blur. As Unity doesn’t let us control this final presentation filter, we had to work around it by rendering game to a secondary render texture then presenting this manually with a second camera.

To enable in startup settings, go to Advanced > Video and set Retro Rendering Mode to either Off, 320×200, or 640×400. This setting is Off by default. Once set to 320×200 or 640×400, the game world will be rendered at that resolution while UI remains at your set display resolution. This allows you to have smooth SDF fonts and modded UI textures while the world is nice and crunchy. Or you can disable SDF fonts (use Shift+F11 to toggle at runtime) and mods for an almost perfect 320×200 experience.

 

Now that you can control rendering resolution and presentation (display) resolution separately, those of you with monitors that can display 1600×1200 (e.g. 1920×1200 or UHD monitors) are able to have the best experience. The explanation is a little technical (this article covers in detail) but if you set things up like below, you’ll have the best retro experience possible:

  • Set game resolution to 1600×1200 (at startup resolution selection)
  • Enabled retro rendering for 320×200 or 640×400 (Advanced > Video > Retro Rendering Mode > 320×200 or 640×400)
  • Enable UI free scaling (Advanced > Interface > Free Scaling)

This will fix the extra w-i-d-e stretching you see on sprites when presenting to wide-screen displays. Depending on your display, you may get some pillarbox bars on either side to create the correct aspect on your monitor. I will soon update this topic on forums with updated retro settings for 0.8.

 

Details Slider (TheLacus)

From the pause UI, you can now adjust the details slider to change the quality settings used by rendering.

 

You can now also use “fullscreen” button to toggle between windowed and fullscreen mode. Note this will be reverted to work like classic once the larger quarter-screen HUD is implemented in Alpha.

 

Private Property Guard Response (Numidium)

If you steal from private property, and failed your pickpocket roll, you should expect to be visited by the city watch. These guys are not messing about!

 

Numidium has improved interior guard spawns so they always come in through the entrance door at ground level. Keep that in mind if buildings have an upstairs exit for a fast escape. Also note that if you break into a shop outside of hours, nobody is around and you won’t need to pass a pickpocket check to loot from private property.

Post-release note: Being arrested indoors has a “teleport to void” bug as of 0.8.2. Recommend fighting or running for now until this is fixed.

 

Faction NPC Greetings Now Match Classic (Ferital)

NPC greetings, particularly those related to guilds and non-joinable factions such as bards and merchants, have been matched to classic by Ferital. This involved a good amount of reverse engineering of classic to determine how those greetings were selected, not something I can capture in a screenshots alone.

 

 

Level-up Progress (Hazelnut)

Clicking on “Level” in your character sheet will now display a popup dialog showing your progress to next level based on skills gained this level.

 

Bow Drawback (Hazelnut)

By enabling setting in Advanced > Gameplay, bows will now work using drawback and release rather than single click to attack. Holding the attack button (right mouse button) will raise bow and releasing attack button again will loose the arrow. You can hold bow in drawback position for up to 10 seconds before your arm tires. If you click the left mouse button while bow is drawn back, it will also cancel drawback.

 

Dungeon Wagon Proximity Access (Hazelnut)

“Do you wish to access your wagon and stay in <dungeon>?” If you’re sick of that prompt, you can now just access your wagon provided you’re close enough to the exit. You can even disable the prompt completely in settings.ini using “DungeonExitWagonPrompt=False”.

 

New Paper Doll Renderer (Interkarma), Supports Texture Replacement (TheLacus)

This one is hard to show in screenshots, as by default it looks just like the old paper doll renderer. But under the hood, the paper doll renderer has been replaced completely from software drawing with no mod support to a GPU shader that supports texture replacement via the mod system.

Internally, the paper doll image is rendered to an 8x render texture (that is 8x the size of classic paper doll). For classic body and item images, this looks exactly the same when scaled back into position. But it’s actually a much larger image with loads more pixel density.

 

With support from TheLacus in the mod system, it’s now possible to replace equipment with HD textures. It even supports custom masking to paint out the areas where hair, etc. should be blocked by helmets.

 

You can also finely control scale and offset of replacement image using XML, in a similar way to changing other texture replacements. See the Textures modding documentation for more details.

 

Breaking & Entering (Interkarma)

Locked buildings now have variable lock strength. You’re no longer guaranteed to pick the lock every time.

 

Just like in classic, failing to pick the lock means you can’t retry until your lockpicking skill increases. This is cached on a per-building basis in discovery data. If you do succeed your lockpicking attempt, you’ll get a satisfying click as the door unlocks and you enter building.

If you do fail though, what other options do you have? You have been able to bash in exterior doors for a while, but now guards might be alerted from the noise. The chance of guards is lower than the chance of successfully bashing the door, but you won’t always be lucky. It’s like these guys have nothing better to do than wait around for you to cross a line.

 

The other change to breaking and entering is how the Open spell works. Just like with dungeon doors, your player level must meet or exceed the lock level. Whereas dungeon doors go from strength 1 to 20 (magical), building locks only go from 1-10. Higher quality buildings have a better lock strength than lower quality buildings.

 

More Artifact & Enchantment Effects

At this stage, it’s easier to say what hasn’t been finished. So here’s the entire TODO list for magic:

  • Soulbound enchantment
  • Lord’s Mail, Staff of Magnus need health regen payload
  • Skeleton’s Key needs support for magical locks

The Effect System Status page will reflect when these have been implemented.

 

General Fixes & Improvements

  • Mod system general cleanup and improvement (TheLacus)
  • Filter identical resolutions from setup UI (TheLacus)
  • Ensure emission maps are same size as albedo (TheLacus)
  • Improvements to pause window implementation (TheLacus)
  • Added OnPreFastTravel event for mods to capture (TheLacus)
  • Fix scale of modded daedra summoning window (TheLacus)
  • Opening automap no longer affects scene lighting (Nystul)
  • Fix automap save crash under some conditions (Nystul)
  • Fix “i’m at” setting correct location after searching (Hazelnut)
  • Implement %n, %vcn, %rn macros (Hazelnut)
  • Fix “no arrows” message when loading game while holding bow (Hazelnut)
  • Fix exception when no building discovered (Hazelnut)
  • Fix potion recipes added to loot and shelves to not show as “unknown” (Hazelnut)
  • Fix material applied to arrows in loot (Hazelnut)
  • Fix black background for negative reaction popup (Pango, Hazelnut, Ferital – seriously, all of them fixed this)
  • Expand serialization of social groups for effects (Numidium)
  • Add type inference to ScreenComponentCollection (pcbeard)
  • Improvements to transport manager (zaklaus)
  • Notebook file now cleaned up when deleting save (jbrod22)
  • Double-click no longer closes spell merchant window (Pango)
  • Display available money in spell merchant window (Pango)
  • Use ARGB for spell icon loading, fixes display of spell icons on some GPUs (Interkarma)
  • Fix crash casting identify inside dungeon (Interkarma)
  • Improvements to item effect equip/unequip responsiveness (Interkarma)
  • Show strong/weak armour modifiers in paper doll (Interkarma)
  • Make tilemap texture compatible with linear colour space, preparing for future change (Interkarma)
  • Fix daylight scale to animate by curve to more closely match classic (Interkarma)
  • Fix classic sky animation to animate by curve to more closely match classic (Interkarma)
  • Fix light transition at 5:59am to 6:00am with lower ambient light scales (Interkarma)
  • Reduced intensity of auto-torch by half (Interkarma)
  • Increased range of indirect light (Interkarma)
  • Slightly reduced noon peak ambient light (Interkarma)
  • Slightly increased interior ambient light (Interkarma)
  • Fix armour rating of Lord’s Mail and Ebony Mail, need to recreate item if already have one with 0 armour rating (Interkarma)
  • Reseed random before generating loot piles and quests (Interkarma)
  • Fix macro %g3, %pg3 to his/her instead of his/hers (Interkarma)
  • Place support for location name macro inside dungeons (Interkarma)
  • Effects can now modify attribute maximum (Interkarma)
  • Effects can now modify chance to hit (Interkarma)
  • DrainEffect magnitude changers now public for effects (Interkarma)
  • Play VID files from console, e.g. “playvid anim0000.vid” (Interkarma)
  • Implement CastSpellOnFoe quest action (Interkarma)
  • Humanoid quest Foes spawned now match Foe gender (Interkarma)
  • AddFace/DropFace quest actions now support humanoid Foes (Interkarma)
  • Calling “place item”, “place npc”, “place foe” to a different location will now remove live game object in scene (Interkarma)
  • Paralyzed enemies can no longer attack player if in range (Interkarma)
  • CastWhenStrikes must now land a blow for spell to trigger, misses no longer count (Interkarma)
  • Implement fallback for quest house types – if a specific house type cannot be found quest system will fallback to use any house (Interkarma)
  • Fixed issue where quest resources could still be duplicated in a scene (Interkarma)
  • Multiple self-cast spells from CastWhenUsed now supported (Interkarma)
  • Saving throw bypass (e.g. self cast from item) now applies to CastWhenUsed items, so player will not resist their own item casts (Interkarma)
  • Quest status now shows as “ended” instead of failed, as this could be confusing for quests with no actual success condition (Interkarma)
  • Physical world boundaries are now enforced so player cannot run of edge of world (Interkarma)
  • Removed console commands “clearmqstate” and “setmqstage” as these were for early development testing only (Interkarma)
  • Removed pre-alpha main quest option when starting a new game, main quest always starts now (Interkarma)
  • Fix house containers with books only stocking “First Scroll of Baan Dar” (Interkarma)
  • Exterior buildings now have lock strength, status text shown may not reflect difficulty at this time (Interkarma)
  • Open spell now requires player to meet or exceed level of exterior lock as with interior doors (Interkarma)
  • Fix effect costs of Pacify spell variants (Interkarma)

Update for bugs fixed in 0.8.6 released on 05 July:

  • Further refinements to tilemap shader (Pango)
  • Fix boozers talking like nobles (Ferital)
  • Fix save bugs with user note markers and teleporter markers in automap (Nystul)
  • Fix bug making exterior doors non-interactable (Interkarma)
  • Option to enable/disable mipmaps in retro mode – off by default for sharper low resolution textures (Interkarma)
  • Added option to disable exterior (sunlight) shadows (Interkarma)
  • Improved shadow distance settings for more performant interior/dungeon shadows (Interkarma)
  • Increased maximum of mouse look sensitivity to 8.0 (Interkarma)
  • Limit quest building auto-unlock to residences only (Interkarma)
  • Fixed player being hurled into void when arrested indoors (Interkarma)
  • Fixed characters with “no regen spell points” disadvantage recovering spell points during fast travel (Interkarma)
  • Increased volume of ambient sound effects (Interkarma)
  • Prevent swim-bobbing animation from continuing after levitating off water (Interkarma)
  • Player will stand up again when levitating off water (Interkarma)
  • Footstep sounds no longer play while levitating (Interkarma)
  • Will no longer crouch while levitating and touching ground (Interkarma)
  • Can now levitate while underwater swimming to remove encumbrance and fly underwater (Interkarma)
  • Additional state cleanup now performed when starting a new game or loading classic save (Interkarma)
  • Fix corrupt savetree record from preventing classic save import (Interkarma)

 

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