Welcome to 2018 everyone! What a great few months we’ve had in Daggerfall Unity. Despite my general absence in November through December last year, work still continued on the project at an excellent pace. I owe a debt of thanks to everyone that continued adding features while I was out of the scene for several weeks. I want to make this post all about these contributions, and mention the people who contributed during that time.
We’re close to a stable “Quests 0.4” build now before officially moving on to 0.5 and spells. “Stable” in this case doesn’t mean everything is complete or bug free – just that quests should be relatively steady and playable based on our current position in the Roadmap at the end of 0.4. Work will continue on improving and tightening up quest system all the way to 1.0, but now it’s time to move onto something new. This often means exciting new bugs to fix so the stable build stands as good fallback point if anyone is experiencing too many troubles with latest versions.
You’ll find the latest downloads on the Live Builds page as usual. If you’d like the very latest code, you can check it out directly from our GitHub page. And if you’d like a full blow-by-blow account of all changes up to now, the Commits page has what you’re after. This post mainly covers featured highlights and the people who added them. In alphabetical order, they are:
Aaron is best known for his work on OpenTESArena, an open source recreation of The Elder Scrolls: Arena. This recently hit a 0.6 release milestone. If you’re a fan of projects like this one, you can follow Aaron on Twitter @aaron_fritz1.
The fake sky background in classic Daggerfall works best in 320×200, 4:3 aspect, and with the short draw distances you would find in a game Daggerfall’s vintage. It’s not a skybox in the modern sense, just a set of tiled images that slide around behind the world. Works well enough in classic and is quite beautiful in its own pixel-art painterly way, even with some oddness such as distant trees being larger than ones nearby.
In Daggerfall Unity with high resolution and long draw distances, the disconnect between sky background and foreground world is intensified. The sky images aren’t really scaled for widescreen and the way I implemented this originally lead to the sky floating around without really feeling connected to the 3D world. This had the potential to make some people feel motion sick, or at least uncomfortable, after playing for a while. The Enhanced Sky mod doesn’t have these problems, but some prefer the pixel-art sky and not feeling ill.
Aaron’s contribution was to add Y-shearing, a trick from the early days of realtime game graphics to help the fake sky horizon stay “glued” to the 3D world horizon. This goes a long way to making the sky more comfortable for anyone who experiences motion issues. It’s hard to communicate in a single screenshot, but when looking up and down, the horizon line of the sky no longer slips around. It may not be perfect depending how badly you’re affected, but it should be a noticeable improvement.
Where to even start with Allofich? He’s a binary magician, that’s for certain. I’m not bad at reverse engineering stuff, but he makes me feel like my training wheels are still on. Some of the deep inner workings of Daggerfall Unity such as level-up formulas and combat work precisely like classic thanks to his efforts. He’s also responsible for locating obscure bits of data answering questions like “how is dungeon water level determined?” to “how are shop shelves stocked?”. Allofich has built or refined a large number of real gameplay features in Daggerfall Unity. Here’s an overview of his work over the last several weeks.
It’s now possible to swim in dungeons… and dive underwater… and drown when you get lost in that flooded passage. Allofich solved the long-running mystery around how dungeon water level was determined and proceeded to implement the entire feature stack of swimming, right down to sound effects and breath management. All I had to do was add the water plane to show the water surface visually. I still need to implement underwater effects at time of writing.
When you deliver a big hit to enemies in Daggerfall, you can send them reeling, physically pushing them away. This knockback effect helps the player feel more powerful and stops enemies from always pushing forward relentlessly. It can even give the player a split second to turn and run. Allofich has recently implemented the knockback effect in Daggerfall Unity.
Magic Weapon FPS Graphics
In preparation for 0.5, magic weapon FPS graphics are now used when player equips a magical weapon. The actual magic effects aren’t there yet, of course, but this is still an important part of the process.
A small but welcome addition is that animals now play their appropriate sound effects at random when you stand nearby.
Enemy Ranged Basics
Certain enemies are now capable of attacking with ranged weapons if player is far enough away (or tries to run). It’s hard to see in this zoom below, but this Knight is lining up player for a shot.
Stealth Basics & Backstabbing
The player is now able to sneak as per classic Daggerfall by holding down the “sneak key”. To complement this, you can also backstab enemies by sneaking up behind them.
Stocking Shelves & Containers
And last one for now is the correct stocking of shelves and containers as per classic. While Hazelnut was building out shops and containers (more on this below), Allofich worked on stocking these containers with the correct items loadout.
Allofich has added many more smaller items than I can cover fully. This includes work on skill mastery, animation fixes, weapon and shield equip delays, and more. Look back through the commits on git to get a full idea on just how much work he contributes.
He debuted with horse riding last year and has gone on to implement several important gameplay features. Between Allofich and Hazelnut, many 0.6 and 0.7 features on the roadmap are working ahead of schedule. Here are the highlights of what he’s been working on lately.
The Mages Guild offers a teleportation service. Thanks to Hazelnut, you can now use this service from your local Mages Guild to travel instantly across in the Illiac Bay.
Shop Shelves & House Containers
If you have bought or sold items in Daggerfall Unity recently, you have Hazelnut to thank for these features. While selling has been in for a while, the ability to interact with shop shelves and buy items is a more recent addition. This required some work to link up 3D container objects to loot containers, populate with items as per classic (Allofich helped here), and persist state of these containers when player enters and exits buildings. There’s a little more on this below, but the short version is you can buy stuff now.
World Persistence & A Shipworthy Home
In classic Daggerfall if you exit a building then return back inside the interior is just how you left it. Up until recently, Daggerfall Unity wiped the interior of buildings as soon as you left. Some work was needed to persist world state for the player as they entered/exited buildings, purchased items, opened doors, stole items, dropped loot on the ground, stored items in their home, and so on. This world persistence was a hard job, but Hazelnut has delivered excellent work all around. This feature is also the bedrock of player housing, which makes an early debut by way of the player’s ship.
You can now buy a ship from a bank, use that ship to speed up your transportation time and reduce costs, and transfer to that ship directly using the Transport menu. From here the ship acts as a kind of nautical home base where you can store loot gathered in your adventures. Any loot dropped on the ship or stored in the available containers will persist permanently in the save data for that character.
New contributor Numidium recently added “organisation info” answers to the Talk interface. This is used when you ask wandering NPCs about groups like the Mages Guild. Every addition to Daggerfall Unity is welcome, and it’s cool to see new contributors building on and fleshing out existing work. Thank you!
You already know Nystul from his fantastic work on the Automap interfaces (interior, exterior, and dungeon), and mods like Distant Terrain and Realtime Reflections. He’s made more important contributions to the core than I can list. He’s also the creator of the Talk window interface and the glue which binds this UI back into game data.
Over the last few months, Nystul has built out the Talk UI to be more functional and bug-free than ever. One of the big new features is rumours during and after quests. Below, the NPC is spreading gossip about the player’s most recent quest to rid a wife of her undead husband.
This kind of data wet-work is very hard and dry, and I can’t shine enough light on Nystul’s progress with screenshots alone. Hopefully it’s enough just to say what an incredible job Nystul is doing here and how important this work is to the final game.
If you’ve modded Daggerfall Unity in any capacity then you know TheLacus for his amazing work on these systems. Not only has he continued to build out the mod system from its humble beginnings, he has continued to provide documentation for creating mods and supporting new mod creators in need of help. He’s an all round great person with a great big brain.
New Advanced Settings Window
TheLacus has created and refined a nice Advanced Settings UI straight off the startup screen. It’s no longer necessary to dive into the INI to set most of the options players might be interested in. The latest builds are sporting an all new look for the Advanced Settings window with a tab-like interface and new controls. I can only see this getting better from here.
This new feature applies DTX5 compression to replacement textures injected through the mod system. This will reduce texture memory by half or more at the expense of greater load time (as textures are injected procedurally). This is hard to show in a screenshot, and I have King of Worms on the forums to thank for this informative image created after performing some tests with texture compression and a large number of texture mods.
Some other things have improved in the texture modding side of things. The super-atlas is no longer used, which could lead to overflow for some textures. And a few memory leaks have been plugged in the texture system. Work in this area will continue to improve over time. The next step is to refine the texture cache to lower the amount of texture memory used after an extended play session.
All of that by itself makes for a huge couple of months, and I’m also back in the mix rolling out more parts of the incoming spell system. I look forward to posting about my progress on this soon.
If you want more frequent news, I post small bite-sized updates about Daggerfall Unity on Twitter @gav_clayton.