Difference between revisions of "User:Thingy Person"

The Beyond Skyrim Wiki — Hosted by UESP
Jump to: navigation, search
(Master Limit)
(Master Limit)
Line 24: Line 24:
 
This section details how the merging process evolved, and its impact on which master files a project could have as its dependencies.
 
This section details how the merging process evolved, and its impact on which master files a project could have as its dependencies.
  
Before the Creation Kit's release, many small mods were already being made, mostly using a utility called [https://en.uesp.net/wiki/Skyrim_Mod:SkyEdit SkyEdit], which was developed by reverse engineering part of the plugin data format used by the engine, and did not allow for any level design. (Contrary to popular belief, Moonpath to Elsweyr mod is not one of these mods, as it was made using the Creation Kit. [https://www.reddit.com/r/skyrimmods/comments/7nbzxw/comment/dwyu2xw/ See here from the author himself]. The first and perhaps only mod that managed to implement new, albeit very crude, level design before the Creation Kit is called [https://www.curseforge.com/skyrim/mods/wounded-knee-gulch Wounded Knee Gulch].)
+
Before the Creation Kit's release, many small mods were already being made, mostly using a utility called [https://en.uesp.net/wiki/Skyrim_Mod:SkyEdit SkyEdit], which was developed by reverse engineering part of the plugin data format used by the engine, and did not allow for any level design. (Contrary to popular belief, [https://www.nexusmods.com/skyrim/mods/9782 Moonpath to Elsweyr] is not one of these mods, as it was made using the Creation Kit. [https://www.reddit.com/r/skyrimmods/comments/7nbzxw/comment/dwyu2xw/ See here from the author himself]. The first and perhaps only mod that managed to implement new, albeit very crude, level design before the Creation Kit is called [https://www.curseforge.com/skyrim/mods/wounded-knee-gulch Wounded Knee Gulch].)
  
https://ck.uesp.net/w/index.php?title=Category:TESVSnip
+
For the Beyond Skyrim heightmap's development, not even the Creation Kit's release was enough to satisfy all requirements; a worldspace plugin produced by TESAnnwyn cannot be converted to an .esm with the Creation Kit, so the esm flag would have to be set using unofficial tools. In addition, plugin cleaning and merging, essential functionalities in modding including Beyond Skyrim, are tricky to do with the Creation Kit, if not poorly understood at the time.
TESVSnip https://web.archive.org/web/20160303184916/http://www.darkcreations.org/forums/topic/1799-skyrim-handling-compressed-records-do-not-use-tesvsnip
+
 
 +
For these functionalities, another utility called [https://ck.uesp.net/w/index.php?title=Category:TESVSnip TESVSnip] was widely used. However, TESVSnip had a huge problem, in that it used an incorrect compression library and irreversibly damaged many plugins it edited (see e.g. [https://web.archive.org/web/20160303184916/http://www.darkcreations.org/forums/topic/1799-skyrim-handling-compressed-records-do-not-use-tesvsnip this forum thread]). When this came to light, an initiative was mounted to obtain the source code for [https://en.uesp.net/wiki/Oblivion_Mod:TES4Edit TES4Edit] and update it for Skyrim, resulting in [https://ck.uesp.net/wiki/Category:TES5Edit TES5Edit], which finally allowed these operations to be done safely. Another utility called [http://web.archive.org/web/20130525141538/http://www.darkcreations.org/forums/files/file/388-tesvgecko/ TESVGecko] had been in development with many of the same goals, but it was put on hold.
 +
 
 +
For a long time, however, TES5Edit still did not support editing or merging one kind of data: the VMAD subrecord, which contains information on scripts attached to objects, and their properties. This meant that plugins implementing quest content could not be merged into the master file using TES5Edit, which is a limitation that the Cyrodiil project ran into.
  
  

Revision as of 14:08, 25 October 2023

A Technical History of Beyond Skyrim (WIP)


This article outlines some technical aspects of Beyond Skyrim in order to preserve a correct history and debunk some myths.


Heightmap

Reasons for developing a common heightmap, the two worldspace bugs, BSTamriel.esm

Beyond Skyrim grew out of a forum thread some weeks after Skyrim's release, urging beginning province mods to avoid some of the mistakes seen in the modding scene for Oblivion. One such alleged mistake was that province mod projects did not collaborate, using custom heightmaps that did not fit together, rendering the mods incompatible. When Tamriel Heightmaps, a common heightmap resource for Oblivion, eventually did appear, it was too late and too unattractive for existing mod teams to consider using it.

Although there is visible land beyond Skyrim's borders, it is only LOD, i.e. low-resolution versions of the land that is visible from a distance but cannot be interacted with; furthermore, it cuts out roughly half of the way into the neighboring provinces and is not accurate to the scale of Tamriel implied by Skyrim's landmass. And thus, the All-Tamriel Heightmap project was started to create lore-friendly and correctly scaled heightmaps for the other provinces that are compatible with Skyrim and with each other. The heightmaps were modeled in World Machine and imported into Skyrim with TESAnnwyn. Eventually these heightmaps would become the collective heightmap for the Beyond Skyrim heightmap, contained in BSTamriel.esm, a master which each project depended on alongside BSAssets.esm.

The original plan was that the heightmaps would be placed into the vanilla worldspace, meaning one could travel out of Skyrim with no load screen. Several issues changed this plan.

  • A problem with LOD, caused by difficulties with creating a custom lodsettings/Tamriel.lod file and having it be loaded by the game, jeopardized the prospects of being able to display LOD beyond the limits specified for the vanilla worldspace. Since there were no such difficulties involved with a lodsettings file for a custom worldspace, it was eventually decided to put all the custom provinces into one custom worldspace, separate from the vanilla one.
  • The first "worldspace bug", where collision issues occur for actors that are too far east and west of the world origin. Actors - such as NPCs, enemies, and a horse the player is riding - will appear to sink into and pop out of the ground repeatedly. The problem occurs in cells beyond 64 and -64 along the X axis; it does not affect cells far to the north or the south that are within this east-west limit. Because of this, one proposed solution was to divide Tamriel into three world spaces, one of which would have included Morrowind and Black Marsh.
    • Then an ini tweak was found that works around the issue, along with a conjectured technical explanation. With this tweak, the plan for a unified heightmap was back on the table.
  • The second "worldspace bug". If the player is beyond 64 or -64 cells, on either axis this time, and is facing away from the world origin, then all gameplay interactions break. Harvestables cannot be picked, doors cannot be opened, attacks will not hit enemies, and so on. This bug was discovered late because it took until someone placed an interactible object outside the safe limit - specifically, a level designer from the Northpoint project placing a flower. There is no known workaround for this one, and as such this bug definitively killed the idea of a large Tamriel worldspace.

Master Limit

DLCs as masters, SSE CK Fixes master limit remover

This section details how the merging process evolved, and its impact on which master files a project could have as its dependencies.

Before the Creation Kit's release, many small mods were already being made, mostly using a utility called SkyEdit, which was developed by reverse engineering part of the plugin data format used by the engine, and did not allow for any level design. (Contrary to popular belief, Moonpath to Elsweyr is not one of these mods, as it was made using the Creation Kit. See here from the author himself. The first and perhaps only mod that managed to implement new, albeit very crude, level design before the Creation Kit is called Wounded Knee Gulch.)

For the Beyond Skyrim heightmap's development, not even the Creation Kit's release was enough to satisfy all requirements; a worldspace plugin produced by TESAnnwyn cannot be converted to an .esm with the Creation Kit, so the esm flag would have to be set using unofficial tools. In addition, plugin cleaning and merging, essential functionalities in modding including Beyond Skyrim, are tricky to do with the Creation Kit, if not poorly understood at the time.

For these functionalities, another utility called TESVSnip was widely used. However, TESVSnip had a huge problem, in that it used an incorrect compression library and irreversibly damaged many plugins it edited (see e.g. this forum thread). When this came to light, an initiative was mounted to obtain the source code for TES4Edit and update it for Skyrim, resulting in TES5Edit, which finally allowed these operations to be done safely. Another utility called TESVGecko had been in development with many of the same goals, but it was put on hold.

For a long time, however, TES5Edit still did not support editing or merging one kind of data: the VMAD subrecord, which contains information on scripts attached to objects, and their properties. This meant that plugins implementing quest content could not be merged into the master file using TES5Edit, which is a limitation that the Cyrodiil project ran into.


Perforce https://web.archive.org/web/20130211112525/http://www.darkcreations.org/forums/topic/3545-the-merging-process-collaboration/

Legendary Edition

Projects switching to SE, parallel versions of BSAssets, eventual deprecation of LE assets

SKSE

SKSE as end user requirement: dependency of Bruma LE (and used SKSE script functions before removal in order to work on Xbox), former dependency of Atmora (DOBJ manipulation for combat music)

SKSE as developer tool: Fuz Ro D'oh, Beta Comments, Ingame Editor, etc.

Animations

Improvements to ck-cmd and Skyrim Behavior Tool finally allowing for reliably creating custom behavior graphs