r/daggerfallunity 13h ago

Watch LIFE CAN BE A DREAM

Thumbnail
streamable.com
165 Upvotes

More progress on overland travel mod.

Player billboard done. It uses vanilla enemy texture archives and reflects whether the player is riding or on foot. If the player possesses a cart, it will also be represented.

Added moonlight for night time as well as colored lighting in general.

First iteration of models to represent locations. Currently only using 1 vanilla model ID for each location type, then rotated a bit for variance and conforming to the terrain. A ship is placed in the water to mark locations that are ports. Had to rewrite a lot of data keeping stuff for caching and faster lookups to keep it performant. so this results in a more limited render distance for locations.

There is now a tooltip as well that shows you the name of locations when you hover over them.

Implemented a very rough random encounter system. Currently, there's just a 2% chance of a random encounter happening each hour each tick, with multiple hours in a tick increasing that chance. This isn't final as I would much prefer encounters being visible on the map as triggers, but it serves to test being able to interrupt travel and start a quest. Much thanks to Warm Ashes by SquidKamer for having mod messages allowing external mods to trigger encounters.


r/daggerfallunity 20h ago

Daggerfall Unity Co-op Project

23 Upvotes

Hey!

Since no one else took a shot, I tried to finish the years-ago abandoned MP project by Tanguy/Y07A. Keep in mind I can't code, so all the new code was written by ChatGPT. It still took me 1.5 years.

Unlike Tanguy's original version, in this version I actually modified the DFU base code pretty heavily. I tried to keep the SP part separate, working the same way as the default DFU as much as possible. I also heavily edited Tanguy's original files and added a few new ones.

- Migrated from DFU 0.14.5 to the May 2024 DFU 1.1.1 version (built with Unity 2019.4.41f2)

- Completely re-made, fully networked enemies (attacks, spells, health, animations, sound, targeting, enemy loot sync)

- Quest sync system automatically syncing quest progress for quests taken during MP. Quests taken in SP can be shared with "Share Quest" button in the journal, from that moment they will be synced too.

- Basic party system with optional fast travel to the other players (showing location, HP/MP/fatigue of other players)

- Players can use healing and other similar "friendly" spells on each other

- Revive/respawn system

- Random wandering NPC sync (optional if someone thinks it's too heavy on bandwidth)

- Added Mirror's basic direct connection alongside the Steam one as an option, could be handy for LAN

- Dungeon levers and switches should be in sync too

The way enemies are spawned and cleaned up is completely different from SP. Dungeons are also networked, and both dungeons and interiors are moved "underground", so I can't guarantee mod compatibility.

Save compatibility-wise, normal regular DFU saves should work in this co-op fork. Going backwards might be a bit trickier. Since interiors and dungeons are moved underground, the non-co-op version will have no idea what to do with those positions and will load you into the void. Exterior co-op saves should work fine with the non-co-op version.

You can save in MP dungeons, but if the dungeon no longer exists or never existed in the MP game, it will basically re-spawn the whole dungeon with enemies (but the player position will be correct).

I went through over 170 DF quests (including the main quests) over the past 3 months. Since the quest system grew alongside the tests, I had to go back to a few quests multiple times to "un-break" them.

I finally got to the point where I'm satisfied with both the enemy and quest systems. I fixed some bugs even in the past few days, and I'm sure there will be more, so it is not perfect. In case anyone finds a bug with anything related to quests, or enemy sync please report it with as much detail as possible.

I went into a lot more detail on the GitHub page in case anyone is interested.

You can download it from GitHub.

Connecting is pretty much the same as it was in Tanguy's, but I added an option for direct IP connection too in case someone wants to play it on LAN without steam.