Page 1 of 2

Mod Discussion

Posted: Sun Apr 05, 2015 10:25 pm
by Interkarma
This thread is for blue-skying ideas around modding with Daggerfall Tools for Unity. I already have some ideas for this, which fall into the following three categories:

1. Direct asset replacement. This is the simplest to implement and will provide easy short-term mod potential. Users will be able to drop in replacement assets such as textures, models, sound effects, etc. that are loaded in place of the native assets. This is just a matter of having an agreed-upon asset folder to load replacement assets at runtime (e.g. ./assets/textures or ./assets/models). The existing content loading classes are due for an upgrade in 1.4 and this simplistic target would neatly coincide with this.

2. Unity-level addons. This type of mod is already being created. Examples include Nystul's Terrain Extender, LypyL's jet, and Uncanny_Valley's real grass. In theory this has limitless potential as creator has full access to Unity and DFTFU source code. Several improvements here could improve compatibility between mods and simplify their creation. These improvements are:
-a) More modular code in a few key areas (particularly StreamingWorld, which is more monolithic that I like).
-b) Events for key moments in some classes lifetime.
-c) Interfaces to standardise communication with key classes.
-d) Prefab support to simplify certain changes and additions.
-e) Properties for stronger control over runtime.
-f) Virtualisation for some classes to encourage extension by inheritance.
* What I don't like about #2 is that each mod is basically a separate build, making it harder to run several mods together.

3. Full modding API with integrated runtime, similar to City Skylines or Skyrim. This would be awesome and avoid the main limitation of item #2, but it's definitely a long-range idea. This isn't even on my radar yet. This would likely be an outgrowth of item #2, using many of the same Events and Interfaces. So it makes sense to tackle that first.

In this thread, please free to throw in your ideas and wishes for modding. If you are an existing creator, let me know areas you would like to see receive code changes, Events, Interfaces, Prefabs, etc. to help you with your creations. If possible, I'd like to minimise changes required to core library for Unity-level addons to work. This will keep addons fairly easy to integrate by other creators and reduce risk of breaking changes.

Have at it.

Re: Mod Discussion

Posted: Sun Apr 05, 2015 11:16 pm
by Uncanny_Valley
Seems like a good plan. Here comes my firsts thoughts, wishlist and ideas:

1.For the direct asset replacement. Allowing for normal map and height map with texture replacements. That if I put the texture file xxxx.png in the specified asset folder together with xxxx_nm.png (my normal map), then the normal map is also be added and used with that texture in game.

2. For my foottracks mod I would like to have a monster prefab in the project to add my scripts.

3. For my real grass mod, someway to have it trigger on event "OnTerrainUpdate" (when a terrain has been reloaded with a new tileset).

4. A music playlist folder system. I don't know how Daggarfall handles it's music, but something that would be nice is if I could just add a bunch of music tracks into a folder (for example, music/dungeon) and the tracks would be automatically added and played in game when inside dungeons. Similar to they way that new Elder Scroll games handle music.

5. A way to add behavior or setting up prefabs for specific objects in daggerfall. So that I could for example: Add light source and sound to all fireplaces in the game, add a bark sound effect on all dogs or make all barrels break apart and destroy when hit by weapons etc...

Re: Mod Discussion

Posted: Mon Apr 06, 2015 2:06 am
by Interkarma
Uncanny_Valley wrote:Seems like a good plan. Here comes my firsts thoughts, wishlist and ideas:

1.For the direct asset replacement. Allowing for normal map and height map with texture replacements. That if I put the texture file xxxx.png in the specified asset folder together with xxxx_nm.png (my normal map), then the normal map is also be added and used with that texture in game.

2. For my foottracks mod I would like to have a monster prefab in the project to add my scripts.

3. For my real grass mod, someway to have it trigger on event "OnTerrainUpdate" (when a terrain has been reloaded with a new tileset).

4. A music playlist folder system. I don't know how Daggarfall handles it's music, but something that would be nice is if I could just add a bunch of music tracks into a folder (for example, music/dungeon) and the tracks would be automatically added and played in game when inside dungeons. Similar to they way that new Elder Scroll games handle music.

5. A way to add behavior or setting up prefabs for specific objects in daggerfall. So that I could for example: Add light source and sound to all fireplaces in the game, add a bark sound effect on all dogs or make all barrels break apart and destroy when hit by weapons etc...
All great suggestions, thank you. All perfectly achievable as well. For item #5, maybe some kind of general-purpose instantiation event that exposes good information about the resource being instantiated? This would allow you to extend or override almost anything in a huge variety of ways. The possibilities here are enormous.

Re: Mod Discussion

Posted: Mon Apr 06, 2015 3:28 pm
by LypyL
All sounds very promising! I don't have a ton to add as you've pretty much covered my ideas already :D

Some example of events I'd find useful:

1. Transition events - player transitioned inside / outside / dungeon etc.

2. Travel events - player fast traveled, changed climate or region and so on.

2. UI events - Not a big need right now, but for instance it could be helpful to have a title screen is showing event.

3. Time events - Dusk/Dawn/Lights on & off/New Day, month, week, year and so on.

Re: Mod Discussion

Posted: Mon Apr 06, 2015 8:13 pm
by mingorau
That was a smart move. I made this thread in daggerxl forums:

http://xlengine.com/forums/viewtopic.php?f=29&t=1052

There is a ton of high-quality content made by the forum members of that site.

NewFont_v2.rar -- AlexanderSig
Lazaroth-lmui-64f636f1e5cc.zip -- Lazaroth modern user interface
Daggerfall Portraits by Lutojar.zip -- Lutojar
11-11-11 df models.rar () -- AlexanderSig
Phobos UI, various images, incomplete -- Phobos
DaggerXL_sounds0.3.zip (3.98MB) -- greenlight
DFTexture.zip (111MB) -- AlexanderSig

Lazaroth music files:
http://webucko.myftp.org/lars/daggerfall/

I have all the files in my harddisk for preservation, but of course, I would prefer the original authors to post something and give a formal permission to use their content.

Re: Mod Discussion

Posted: Tue Apr 07, 2015 1:56 am
by Lazaroth
For those that don't know me, I'm Lazaroth from the XL Engine forums (and e.g. OpenMW), where I've been responsible for the music mod and the LMUI user interface prototype which were planned to be used with Awesomium (using javascript). My background is in sound engineering/composing and web development, but have experience in most "creative areas" such as Photoshop and creative writing.

I have very little time for any work right now towards mods, but I can mention what I would like to do when I do have time. First, I can also just mention that I'll probably have some time when summer gets closer, but there's also the issue of motivation. Seeing all the progress here however does make my fingers itch a bit, got to admit.

Anyway, I wrote a summary a long time ago:
http://xlengine.com/forums/viewtopic.php?f=14&t=753

The thing I have closest to heart is sound and music. Expanding the ambiance and incorporating the already created music in a non-intrusive way is the thing I would like to do. Just for clarification; ambiance is wind going through the trees, birds, cityskapes etc.

[Brainstorming warning]
What I would like ideally is some way to create "sound script files" which triggers on certain events.

E.g. one for when you are in the middle of a forest and I for example can say:
- Play wind1.mp3 with volume X
- Randomly play distant_crow.mp3 from angle x
- If nothing has happened for 10 s, fade in sunnyday.mp3

You get the point.

When another event triggers, another sound script file would crossfade. E.g. if you meet an enemy or if you enter a town or a dungeon.
[/Brainstorming warning]

Re: Mod Discussion

Posted: Tue Apr 07, 2015 2:11 am
by mingorau
Here's the link to my google drive containing all the files i salvaged from daggerxl, except for the musics that are in lars site:

https://drive.google.com/folderview?id= ... sp=sharing

To download each archive click on an icon, then on the down arrow button, on the command bar above.

There is some very good modding material and a few bad dungeon textures that can be ignored. All the textures ragholio and models from alexander are very good. Both ui mods are of good quality. The npc portraits are very good and there are also a few sound effect replacements that sound a lot better than the old ones. All Daggerfall musics in lars site are top quality too.

Re: Mod Discussion

Posted: Tue Apr 07, 2015 6:00 am
by Interkarma
Thanks for gathering all these together mingorau. Very handy!

Hopefully this will provide a great starting point and set the bar for future mod efforts.

Re: Mod Discussion

Posted: Tue Apr 07, 2015 6:04 pm
by mingorau
No problem. This had to be done quickly because there was the risk of some contributions being lost. There's still a few resources that can be used, from Morrowind and Oblivion mods that come with a free license. I have zero free time at the moment but when i get more time i will look into this.

Re: Mod Discussion

Posted: Thu May 14, 2015 7:00 am
by Hoon
Hello all. HoonDing from the DaggerXL forums here (and BOX MAAAN on the Bethsoft forums), some of you might actually remember me. >.>

Anyway, I want to talk about audio. Lazaroth was talking about creating a better infrastructure for ambient sounds, but I'm interested in a wholesale overhaul of the sound design in Daggerfall that brings it up to par with modern games like Skyrim and Dishonored. A brief and incomplete rundown of what I'd like to see for Daggerfall:

-Replacing all of the vanilla audio with sounds that match modern quality standards. This is in some ways the "easiest" task, since it's just ordinary asset replacement and few (if any) new systems would have to be programmed to accommodate it. One question, though: do any new systems have to be made for creatures to support multiple sounds? So instead of having one skeleton scream, I could have a folder full of different ones and the engine would just randomly pick a different one each time?

-As Lazaroth and others described, a system for ambient sound effects that gets the time of day, weather, and environmental information to play ambient loops. Weather and time of day should be factored in regardless of whether you're in an interior or exterior - for instance, being able to hear the rain or market rabble from the inside of a shop. Also, special considerations for Daggerfall City at night - until you lay Lysandus to rest, anyway.

-Being able to attach loops (or randomly fired sound effects!) to game objects. For instance, attaching fire loops to campfires, torches, and fireplaces. Or! Adding loops and randomly fired bird sound effects to trees, or creature noises to the static creatures like dogs, cats, or pigs (that should honestly be converted into bona fide actors, but hey I'm just a sound guy). I think Daggerfall already does this to an extent; I recall passing torches in dungeons and hearing a torchfire loop. Adding loops to doors would be interesting, too - approach a tavern door and you begin to hear the chatter going on inside, or you can know you're close to the dungeon exit by a distinctive wind loop.

-New footstep sound effects that vary based on the surface and the type of footwear being worn. I don't know how Daggerfall or DFTFU gets info on the surface being walked on, but adding equipment-specific sound effects should be as simple as getting info on what the character is wearing. Of course, creatures and other NPCs should get their own footstep sounds based on whether they have boots, bones, paws, or claws for walking. :P

-This one might be tricky, but how about real-time signal processing so that we can add different reverb/delay settings to different interiors and dungeon blocks, or processing for being underwater and whatnot? This can do a lot for the atmosphere of the game.

I should mention that I don't know a lick of programming. But I'm majoring in audio production and sound design, and if there's one way I can help Daggerfall, it's the audio. This summer I'll see what I can do about collecting assets from everywhere I can find them, and piecing them together. Creating new magic sound effects especially sounds like fun.

I'll probably PM Lazaroth soon to seek his counsel and see if he's interested in having my assistance. Are there any other efforts going on right now in regards to Daggerfall and audio? I've only just started posting on these forums. I'll try to keep posting and stay relevant, I don't want to be one of those "makes-one-ambitious-post-and-leaves-forever" types. >.>