Zarrgon66 wrote: ↑Mon Mar 23, 2020 11:43 pm
Hi, sorry for the late reply been coronavirus prepping, I am primarily looking to try and replicate the world streaming/dungeon, the quest system and character creation/sheet mechanics as that's what my FMP is centred around. thank you for the links but is there no one on the forum that is familiar with theses mechanics or any modding or technical guides or tools you can recommend?
I'm not sure it's feasible for one person to do this but here is what I know about the world streaming / dungeons mostly:
General
It helps to view DFU as a layer between classic Daggerfall files / data and Unity. That is severely underselling it because it's much more than that as you may well prove if you decide to go through with repurposing
Because it sits between Unity's core and classic DF files, the input (classic file reading) can theoretically be swapped out for anything you like as long as you accommodate the data that the code requires to be able to work.
If you are going to study the code, it will help to be familiar with the original file / data structures:
https://en.uesp.net/wiki/Daggerfall:Hacking_Guide
World Streaming
As for the world streaming / dungeon stuff, DFU is a bit odd when it comes to that. As stated, the terrain is generated on the fly, not just the streaming bit but all the height differences and ground features as well. Classic Daggerfall has 2 heightmaps, a 'small' one that's a greyscale 1000x500 pixels image and a larger one that is also greyscale and 5000x2500 pixels in size.
Locations in Daggerfall (located in MAPS.BSA) can all be placed in a 1000x500 grid which corresponds to the small map as well as the travelmap. During terrain generation, the pixels from the small map are referred to as map pixels. The large one is a noise map but has a strange grid overlaid on top of it.
The pixels in the small map correspond to roughly 800x800meter tiles, the pixels in the large one consequently to 160x160meter tiles. The default terrain sampler in DFU starts out by bicubic sampling the small and large maps, using the resulting height value as a starting point, it does this 128x128 times per map pixel while adding procedural noise for additional detail.
On top of that there is a climate map (also 1000x500) that determines which terrain textures and nature billboards will be rendered.
These two combined roughly account for the way terrain is handled in Daggerfall. Since the original files WOODS.WLD and CLIMATE.PAK are read at runtime, it would be possible to circumvent that and directly feed the terrain sampler your own data set as long as you either alter the render code enough or mimic the expected data values.
Dungeons
Dungeons are comprised of so-called RDB blocks which describe the layout of models, billboards and settings for activators etc. You can dump these data structure from the console within DFU. Check under
Assets\Game\Addons\UnityConsole\Console\Scripts\DefaultCommands.cs in DFUs source. The data gets dumped as JSON format and is relatively easy to figure out. Hazelnut has set up a system to override existing and add new locations:
viewtopic.php?f=22&t=2857.
It is possible to create custom dungeon layouts but there are no tools available, I have started creating a workable solution for myself through Blender and Python scripting but that is nowhere near ready.
Quests
I'm not all too familiar with quests so to explain the nitty gritty will be up to others but, again courtesy of Hazelnut, it is possible to add custom guilds with quest packs:
viewtopic.php?f=22&t=901
Character creation / sheet
Not my area at all, sorry
TLDR: What you want to do can probably be done but will be a lot of work, especially for one person.