First Look At Spells

I recently demonstrated spell missiles and discussed the back-end framework driving magical effects in Daggerfall Unity. I’m happy to report that it’s now possible to create custom spells and hurl sparkling death at your foes! As my last article was a bit dry and technical, I’ll start this one off with a short video of spells in action.

 

New Builds

You’ll find all new test builds on the Live Builds page as usual. Here are the key features of this release.

  • Create custom spells in the Spellmaker UI (invoke using “showspellmaker” from console).
  • Spellbook UI where custom spells are saved with your character.
  • 3x magic effects are currently available for testing:
  •     Continuous Damage Health (a damage over time effect).
  •     Damage Health (a direct damage effect).
  •     Heal Health (heal yourself and other entities).
  • All elements and target types are available (as appropriate for effect) when creating spells.
  • Smooth crouching, head bobbing, and head rocking when damaged (Meteoric Dragon).
  • Sound and music volume sliders (in progress). Some effects not wired up to volume slider yet (Meteoric Dragon).
  • City Guards and crime tracking, starting work on Crime & Punishment (Allofich).
  • More mod support in the back-end (TheLacus).
  • Various small bug fixes and improvements.

While only 3x effects are available at this time, this doesn’t nearly do justice to the progress that has been made. Spell effects are actually very small scripts – usually no more than a few lines of code and some properties. What really matters is the framework driving magic in Daggerfall Unity has finally progressed to this point. The previous article has more on this if you’re interested.

 

Testing

The purpose of these builds is to test the magic & effects framework is well-behaved and usable in its current state. What I’m looking for are crashes and other unexpected behaviour in the framework. Once this is working well, I will continue to roll out more effects in future builds. To keep testing as focused as possible, here’s a summary of what you can expect from this release.

  • Create and cast spells using the starting 3x test effects above.
  • There is no spell absorption, reflection, or elemental resistance at this time.
  • You can select elements to change appearance of spell and missile, but all elements are equal in terms of damage.
  • All target types (caster, touch, target at range, etc.) should be working.
  • Spells do not yet increase related magic skills of character.
  • Spells are all currently free to buy and to cast – so make them as weak or powerful as you like.
  • All of these free spells will be expired at some point closer to 0.5 stable.
  • Magic items are not implemented yet, this will come much later in 0.5 cycle.

Note: Due to changes in the modding system older mods may not work in this version. Please revert to build #105 for any broken mods until creators update for current version.

 

Feedback

For discussion on these builds, please head over to the forums. If you want to report a bug, post this to the Bug Reports forums. If you’re not sure if something is a bug or just not implemented, don’t hesitate to ask in Help & Support.

I hope you enjoy this early preview of spells in Daggerfall Unity. Have fun!

 

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

December 2016 Test Build

Hello everyone! This will be my last post for 2016. It’s been a great year for Daggerfall Unity with solid updates across the board. I was hoping to have basic quest support in by now, but sadly not everything goes to plan. This will return as a priority early in 2017 so watch this space!

One thing that always amazes me is the quality of work this community is willing to put back into Daggerfall Unity. It’s always a pleasure to find a new pull request on git from someone willing to contribute their personal time to make this project even better. So this post is going to focus almost exclusively on contributions from community members. It’s time for kudos and credits all around, and you’ll see very little of me this post.

 

Texture & Mesh Replacement

This feature began with Uncanny_Valley and has lately been updated and maintained by TheLacus. It allows for runtime injection of new textures and meshes into Daggerfall Unity’s scene builders, setting the stage for updated models, higher resolution materials, and improvements to Daggerfall’s vanilla UI. It’s still early days but the potential is incredible. Here’s a few screenshots of new assets by community members.

 

At time of writing, mesh and texture replacements aren’t quite ready for download. But now support for this is baked into the core, you should start seeing community-created packs in the near future. You can read more about mesh and texture replacement in this thread on the forums.

 

Early Bow Combat

New contributor electrorobobody added basic bow combat to the lineup of supported weapon animation. No counting arrows yet, and you’ll need to roll a new character for your free silver bow, but it’s awesome to finally burn down enemies with ranged kiting. Looking forward to bows becoming a strong part of the game in future.

 

Save & Load Weather

Daggerfall Unity added basic weather events a while back, but they would not be saved and loaded with your games. Thanks to midopa, the current state of weather will be saved and loaded. This will only get better once correct weather events are wired up based on climate and season.

 

Enemy Steering

Another epic update by midopa. He added a little steering to enemy AI to prevent enemies from stacking on top of small creatures like rats. As hilarious as this problem could be, it’s good to see a workable solution for this bug. It’s still possible for enemies to slightly stack in edge cases, but the problem is much improved and they will no longer ride around on each other (imagine skeletons surfing rats and rat-rat-rat stacks).

 

Potion Recipes

The perennial InconsolableCellist returned with some amazing updates for us. Credit goes completely to him for working out potion recipe format and integrating with Daggerfall Unity. This also means potion recipes will display properly in inventory, and they’re even usable to see the individual ingredients. This is really important ground-work for a bunch of other things down the line.

 

Books

I wrote the initial book reader UI ages ago, but InconsolableCellist wrapped it up along with random book drops in loot, correct tooltips, and all-round awesomeness. Books currently exhibit the same formatting problems as classic (because it’s the same book data). That’s something yet to be fixed.

 

Exterior Automap

Nystul has done it again with the perfect companion UI to his dungeon and interior automap. Yep, exterior automaps are now a thing! It even supports proper tagging of buildings, zoom, and rotation. As always, I’m completely blown away by how complete this is right from the start. It’s still waiting on full building name integration and building identification in scene, but that will come. For now, all the buildings are tagged by type. Go explore!

 

Spotlight: Allofich

I can’t give Allofich high enough praise. He has worked incredibly hard tuning up different areas of Daggerfall Unity to make it more true to the original. He fixed a wide range of UI problems, identified sound effects, linked sounds to their correct actions, fixed clothing and item problems, and so on. Check out his full list of commits here. It’s hard to show these off properly in screenshot form because the changes are either subtle improvements or related to audio, but below is one of the UIs he has cleaned up. Note the poor texture joins in the “before” image (circled). Huge props to Allofich for his work!

 

Thanks To: AnKor

OK this is embarrassing. I was looking everywhere for the animations used when player was riding horse or cart. These turned out to be in the overlooked CFA image file format. Somehow, I had completely disregarded these files which are a format holdover from Arena. Yep, I’m only human. Fortunately, AnKor pointed this out on the forums and I was able to implement CFA support in no time. Now we have this:


It’s only a short jump from here to having these transport options in the game.

 

Thanks To: Testers

I also want to send out a huge thanks to all the amazing people who tested Daggerfall Unity in 2016 and reported the bugs and problems you found. There are simply too many people to list, but you know who you are. You’re on the forums, and Twitter, and Reddit, and sending me emails. You guys rock!

 

Bugs and Problems

Yep, we got ’em! Any large update like this will bring its fair share of new bugs. If you come across a bug during tests and would like to report it, please lodge this in the Bug Reports forum. Don’t forget to read the Guidelines to help you provide the best information to developers.

Contributors, please keep an eye on the Bug Reports forum for anything that might fall into your wheelhouse.

 

Where To Download?

You can always download the latest version of Daggerfall Unity from the Live Builds page. If this is your first time downloading Daggerfall Unity, welcome! Other information on Live Builds page should also help you get started. If you have any troubles, or just want to discuss updates, please go to the December 2016 Test Builds Updated thread on forums.

 

That’s it for 2016! Thank you everyone for visiting and all your kind words of support. Here’s wishing you all a very Merry Christmas and Happy New Year, and all the best for 2017!

 

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

Remastering Daggerfall

Less than 12 months have passed since I began work on Daggerfall Tools for Unity. In that time, my little project has grown substantially and attracted a lot of attention from around the world, including articles on Kotaku AU and Rock Paper Shotgun.

As word about Daggerfall Tools for Unity has spread, a lot of hopeful Daggerfall players have visited looking for word on a remake – only to find a set of development tools not aimed towards players. While everyone seems excited about the potential Daggerfall Tools for Unity offers, there’s a lot of latency between new developers coming on board and getting up to speed before they can offer their contributions. So as a developer community, we may be climbing a steady ladder towards remaking Daggerfall, but there’s very little for non-developers to experience and no clear direction from which a remake will come. I’m contacted by passionate Daggerfall fans almost every week and it breaks my heart that I don’t have more for them.

I want that situation to change. I want the average Daggerfall player to be able to experience progress and have a clear sense of direction that Daggerfall Tools for Unity can be used for remaking Daggerfall, and then some.

What this means is that I can’t just create a toolset. Raw building blocks aren’t enough. I also need to create a scaffold for remastering Daggerfall that includes everyone, developers and players alike.

So let’s get this out of the way. I will shortly release a burgeoning Daggerfall remake, proudly using the Unity engine and Daggerfall Tools for Unity.

For players, this means you will be able to download regular builds to experience the project as it grows. You will become part of the process, able to offer your feedback and constructive criticism to the betterment of the project. Developers win out as well, because you get a functioning Daggerfall remake – completely open source – to build on and change as you desire. For the first time we can all, developers and players alike, come together and contribute.

So where does this leave Daggerfall Tools for Unity? Nothing changes at all. My remake project will be built on the same Daggerfall Tools for Unity that everyone has access to. If anything, this will only improve Daggerfall Tools for Unity by creating a proving-ground for new features and increasing the number of testers.

I will soon release a new web site, solely for distributing the latest playable build of my Daggerfall remake. Daggerfall Workshop will remain as the hub of social activity and development news.

And the best news for players is there’s a swag of new features coming in Daggerfall Tools for Unity 1.4 and 1.5, all aimed at creating playable systems and filling in those blanks between a toolset and a game.

Feel free to leave your comments on this post, or head over the forum post where I’ve kicked off the conversation.

Roadmap July 2015

Roadmap July 2015

With 1.3 freshly released, it’s time for me to update my roadmap again. While my overall heading remains constant, the beats and rhythm of my short-term goals are always in flux, constantly evolving as I converge on solutions and new priorities emerge. I find that right after a release is the perfect time to step back and consider my next move. So let’s take a look at where I’m up to and what’s on the horizon.

Maintaining 1.3

To start with, I’m wrapping up tutorials and fixing any bugs discovered in 1.3 release version. I plan to support the stable 1.3 branch right up to the next major release. Any minor bugs will be fixed quickly, followed by an incremental release. It’s possible some of the key features in 1.3 will be refined, but no major changes will be made at this point. Anyone waiting for 1.3 to settle down can confidently get started with it.

For those of you waiting on tutorials, Prefab Basics should be up in the next day, and Streaming World sometime next week. I’m hoping all the tutorials earmarked for 1.3 will be completed in next 2-3 weeks.

Work In Progress Branch

In case you missed it, there is now a work-in-progress branch on GitHub. New features will be added first to the work-in-progress branch and only promoted to the master branch once they become complete and stable. At which point, I go into maintenance mode for the new release and start work on the next major release. This is a much better workflow and should result in faster turnaround of fixes in maintenance releases. It’s very likely you will see a few more version points added to 1.3 before it’s done.

Developer Focus

Every major release (two betas, 1.0, 1.1, 1.2, 1.3) involved heavy changes to the underlying code. This often broke your work and was very frustrating for you. I’m sorry about that. Hopefully 1.3 marks the last major paradigm shift for some time (jumping to Unity 5 was a big one), and the new event and prefab systems help you create your projects without needing to modify the core tools.

I plan to continue this developer focus moving forward by adding more events, prefabs, interfaces, editor scripts, etc. to help you work, and make fewer breaking changes to the underlying code base. It’s obviously inevitable this will happen sooner or later, but hopefully not to the extent seen between 1.0-1.3.

Feature Focus

To date, I’ve worked very broadly across the entire spectrum of Daggerfall. This has been essential as much work was involved in setting up content readers, building a bridge into Unity, and seeing the entire game world up and running. Those system are huge, difficult, and take a mountain of work to pull off. And they are so interdependent that it’s necessary to build all of them before any of them really work. This is where most Daggerfall projects stall and fail. And guess what! We’ve pushed past that like a boss and still have plenty of steam out the other side. This is where the really interesting stuff kicks in and all that hard work pays off.

Starting with 1.4, I’m going to focus on a very specific set of features each release, plus some iteration on previous features. In this way, we climb the mountain one challenge at a time. The work becomes easier because the next goal is always in sight, then the next, and so on until the top.

Roadmap 1.4

Work on 1.4 has already begun. The only thing I haven’t shared with you are my plans for this release. Here’s a list of everything I have either already started work on, or plan to include. And the good news? From here on, everything is geared to helping you add real gameplay features.

  • Daggerfall save game import. Yep, the ability to read vanilla Daggerfall save games and import this data.
  • Unity save games. The foundations of a Unity save-game system will be implemented for new demo titles. You can use this, ignore it, or extend as needed.
  • Real player scripts. With stats, special advantages, special disadvantages, reputations, etc.
  • Real monster scripts. With all their properties read straight from the game files.
  • Real combat formulas. For real melee combat. Spellcraft will be added later.
  • Item and loot table support. Play with real Daggerfall items and their properties. Custom loot tables for monsters and dungeons.
  • Starting work on effects system.  At first this will only be complete enough to support player and monster scripts, and melee combat. Spellcraft will be added later.
  • Demo character sheet UI. With inventory and paper doll support.

Some of you may be wondering about the text & translation features I had originally planned for 1.3. Unfortunately the Unity 5 release dropped a huge spanner in the works and a great deal of effort was involved bringing everything up to par with the new paradigm. In that time, I have rethought my approach toward text and translation based on feedback from other developers.

Obviously this remains an important consideration, but I no longer believe it prudent to add a locked-in translation system to core tools. The problem with this approach is it limits options for other developers who may wish to use some other translation system, or a different approach entirely.

The original system as planned would also have added some complexity for developers who just wanted to get stuck in for their own amusement, and are not concerned about targeting multiple languages. Obviously larger projects that want to localize have a plethora of options available in the Unity landscape alone. There is simply no need for me to re-invent the wheel here.

So I’m going to keep doing what I do best, which is provide hooks back to the game files and the means for other developers to easily suck out the data they need. This data obviously includes text, and will have everything a developer needs to pair with their preferred translation system. This set of features are now part of the 1.5 update, which includes quest file support.

Conclusion

That’s everything for now. As usual, Daggerfall Tools for Unity is a constantly evolving beast and this is all subject to refinement. However the journey remains the same. I may not be remaking the game personally, but by Julianos I’m going to create all the moving parts needed to help that become a reality, and with your help it’s practically inevitable.

So if you’re a developer who loves Daggerfall, get started today and help show the world what can be accomplished!

Mod Showcase 1 Demo

I’ve said it many times: Daggerfall Tools for Unity is a platform. Besides helping to recreate the game, DFTFU can be used to remaster and re-imagine Daggerfall, or create whole new games in a similar style. Merging Daggerfall’s content with a powerful engine like Unity provides limitless potential.

Nothing shows off this potential more than mods created over the last several weeks by Nystul, LypyL, and Uncanny_Valley. These range from graphical enhancements and world improvements to silly fun like turning Daggerfall into a flight simulator. I’m so very proud to show off their hard work in the below video and to provide a playable demo for you to experience their work first-hand.

DFTFU Mod Showcase 1 – Playable Demo

What’s Included

  • Daggerfall Tools for Unity 1.3.11 [Interkarma/Gavin Clayton]
  • Increased Terrain Distance 1.4 [Nystul/Michael Rauter]
  • Floating Origin Updates [LypyL]
  • Enhanced Sky 1.6 [LypyL]
  • DaggerJet 1.1a [LypyL]
  • TravelMap2.1 [LypyL]
  • Real Grass 1.01 [Uncanny_Valley]
  • Birds In Daggerfall 1.0 [Uncanny_Valley]

Controls

See below for complete list. There is also a handy key reference created by Daschluba on the forums (click for full size).

Mod Showcase Keys

General

  • Mouse Move Look
  • W, S, A, D Move
  • Shift (hold) Run
  • Space Jump
  • Left Mouse Activate: open doors, enter dungeons, operate switches, etc.
  • Esc Exit game (standalone)

Weapons

  • Z Toggle weapons
  • Right Mouse Drag Right-click and drag mouse to swing weapon

Transport

  • R (outside) Random location, season, time of day, and weather
  • R (dungeon) Recall back to dungeon start
  • 1-7 Preset location (keeps current season, weather, etc.)

Music

  • P Toggle songs on/off
  • [ Play previous song in context playlist
  • ] Play next song in context playlist

Timescale

  • PageUp Increase timescale.
  • PageDown Decrease timescale.

Other

  • I Toggle mouse invert on/off
  • H Toggle high speed running on/off
  • L Toggle debug text on/off
  • O Toggle brighter torch in dungeons and at night
  • V Fast travel menu (see below for instructions)

Sky Control

  • T Toggle Enhanced/Native Sky

Jet Control

  • F6 Toggle laser (can be used without jet)
  • F7 Teleport to where laser is pointed, and exit jet if flying
  • F9 Summon and enter jet
  • F10 Change jet camera position
  • F11 Toggle free mouse look
  • F12 Spawn flying enemy while in jet
  • W, S, A, D Steer jet
  • Mouse0 Fire weapon at laser target
  • Space Air brakes – slow down jet while flying

Using Fast Travel Menu (LypyL)

  1. Hit V key to open/close travel menu.
  2. You can either set your coordinates directly using the sliders, or select a Region & Location using the Location menu and hit the Set Coordinates button.
  3. Use the toggles below the location menu button to choose what type of location to show in the menu (Cities, Dungeons, Taverns, Graveyard etc.)
  4. Once You’re ready to travel, just hit the GO button.

Fast Travel Notes (LypyL)

  • Red marker indicates your current location, the white shows where you will travel to.
  • Click and drag on the location & region menus to scroll through them
  • It’s very rare, but it’s possible to fall through the ground after traveling. If it happens (and you don’t have another solution, like the editor), just fast travel again somewhere to fix it.

New Workshop Members

Daggerfall Workshop is expanding today. I’d like everyone to welcome Nystul, InconsolableCellist, and LypyL to the site!

Over the last several months, I have been amazed by the contributions these three have made to Daggerfall Tools for Unity. They have all selflessly offered code, reported bugs, raised ideas, and generally helped to refine the vision of these tools. But most importantly, they demonstrated the power of open source at work inside a passionate community. They have each shown what is now possible with Daggerfall and Unity.

Anyone following me on Twitter or watching the DFTFU Subreddit may be familiar with their work already. Here’s a sampling, just to be sure.

Nystul

Nystul created a Terrain Extender script for the default Streaming World terrain. This enlarges the default draw distance of a few miles out to insane distances. Nothing shows this better than a couple of screenshots.

Below screenshot was taken just above Direnni Tower using the default Streaming World setup in Daggerfall Tools for Unity.

direnni_near

Not bad! Definitely a huge improvement over the painfully short draw distances in vanilla Daggerfall. But check below for how this same spot looks with Nystul’s Terrain Extender.

direnni_far

That popping sound you heard was my brain exploding. You can see clear across the Isle of Balfiera archipelago to the mainland. Simply amazing! And here’s another lovely far terrain screenshot.

mountains_far

 

LypyL

LypyL is the creator of the jaw-dropping Multiplayer Demo. This was literally a Daggerfall world-first, allowing you to explore the Illiac Bay and its thousands of locations with other players. If you missed out dungeon crawling with mates, I strongly recommend you give it a shot by clicking on that link!

Besides multiplayer and other enhancements (e.g. climbing and flying), LypyL has also proved to be a fearless experimenter, showing us the mad fun you can have with an open source Daggerfall. The below videos put me in mind of the vast mod potential enjoyed by later Elder Scrolls titles.

This kind of spirited tongue-in-cheek modding is exactly what I was hoping to empower everyone with from the outset. Not only can we remake Daggerfall, you can use Daggerfall Tools for Unity however you like!

Oh, and LypyL has also been working on a dynamic sky system for Daggerfall Tools for Unity.

 

InconsolableCellist

Speaking of remaking Daggerfall, this last contributor is by no means least. With the stated goal of creating a fully playable version of Daggerfall, InconsolableCellist is working towards the outcome I think everyone wants to see the most. He has also proven to be a great contributor, expanding the default tools and building all the scaffolding of a real game.

Obviously there’s a fantastic amount of work to do, and much of it is hard to show off visually. But InconsolableCellist has been working very hard indeed, building GUI systems, a text console interface, monster spawners, timers, quest logic, and much more. Best of all, he is continuing the spirit of open source by keeping everything available to the community on his Daggerfall Unity GutHub repository.

Below is an early look at InconsolableCellist’s quest system back-end in action.

And here is a screenshot of the text interface a bit further along, looking more like Daggerfall.

ic_dialog

InconsolableCellist has also experimented with running Daggerfall on the Oculus Rift. This was simply a proof-of-concept (and based on a much earlier version of Daggerfall Tools for Unity), but it demonstrates that we can one day play Daggerfall on VR headsets.

What Happens Now?

Daggerfall Tools for Unity is an interesting project all by itself, but the real story is what other people do with those tools. We have finally reached a point where the story becomes less about me and more about those who build on what I started.

InconsolableCellist, LypyL, and Nystul are now full posting members of Daggerfall Workshop. This means they can show off their progress right here and entertain us with the occasional blog post.

These three will also have collaborator rights to the Daggerfall Tools for Unity GitHub repository, allowing them to post changes to support their own work, help support others, and expand our tools into the future.

For my part, I will continue working just as I have been in the past. I will keep on reverse-engineering bits of Daggerfall, adding new features, fixing bugs, and help oversee the continued vision and quality of code changes. My job as tool creator is to help keep the tools useful and free for everyone.

The real story of Daggerfall Tools for Unity is just beginning! The more people who contribute, and the more this community grows, then the more amazing stories we’ll have to tell. I look forward to seeing what this all means for Daggerfall in the future.

Stay tuned! There is more exciting news still to come this week.