Site Tools


tutorial:boss-iudex-gundyr

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

tutorial:boss-iudex-gundyr [2025/02/24 21:25] – created admintutorial:boss-iudex-gundyr [2025/02/24 21:27] (current) admin
Line 5: Line 5:
 Every character in the game-players, enemies, bosses, npcs, and even the bonfire-have a unique character id in the form of cXXXX. The assets for all these characters reside in the chr/ directory when you unpack the game's assets. Iudex Gundyr's character ID is c5110, and as you can see there are four "bnd" files associated with this character: Every character in the game-players, enemies, bosses, npcs, and even the bonfire-have a unique character id in the form of cXXXX. The assets for all these characters reside in the chr/ directory when you unpack the game's assets. Iudex Gundyr's character ID is c5110, and as you can see there are four "bnd" files associated with this character:
  
-{{anatomy_of_a_boss_fight_1}}+{{tutorial:anatomy_of_a_boss_fight_1.jpg}}
  
 "bnd.dcx" files are simply a proprietary archive format that groups together a set of related assets and then compresses them. They can be thought of as analogous to a "zip" file (or more specifically a "tar.gz" file). These archives can be unpacked and repacked using a tool called yabber. The purpose of each of the archives is the following: "bnd.dcx" files are simply a proprietary archive format that groups together a set of related assets and then compresses them. They can be thought of as analogous to a "zip" file (or more specifically a "tar.gz" file). These archives can be unpacked and repacked using a tool called yabber. The purpose of each of the archives is the following:
Line 16: Line 16:
 Assets for the boss are great and all, but one might notice that there's still a lot missing in regards to what's needed to make a full boss fight. There's nothing that says how the enemy will behave (its AI), when it is active, where it is on the map, how much HP it has, and many other things. Our next step in understanding the inner workings of the boss take us to the map files, which control enemy placement among other things. Map files have a four part ID (mAA_BB_CC_DD) and are stored in a complex proprietary format known as MSB (presumably "Map Studio Binary" in reference to what From calls their internal map editor). Maps can be opened, viewed, and edited to some degree in a program called Dark Souls Map Studio (yes I ripped off their name so sue me). Opening the Cemetery of Ash map (m40_00_00_00) in Map Studio and going to the Iudex Gundyr arena you will see roughly the following: Assets for the boss are great and all, but one might notice that there's still a lot missing in regards to what's needed to make a full boss fight. There's nothing that says how the enemy will behave (its AI), when it is active, where it is on the map, how much HP it has, and many other things. Our next step in understanding the inner workings of the boss take us to the map files, which control enemy placement among other things. Map files have a four part ID (mAA_BB_CC_DD) and are stored in a complex proprietary format known as MSB (presumably "Map Studio Binary" in reference to what From calls their internal map editor). Maps can be opened, viewed, and edited to some degree in a program called Dark Souls Map Studio (yes I ripped off their name so sue me). Opening the Cemetery of Ash map (m40_00_00_00) in Map Studio and going to the Iudex Gundyr arena you will see roughly the following:
  
-{{anatomy_of_a_boss_fight_2}}+{{tutorial:anatomy_of_a_boss_fight_2.jpg}}
  
 You can see Iudex Gundyr in his full glory placed on the map. You'll notice that the form displayed in Map Studio is his transformed phase 2 form. This is because the model file contains the data for all his forms and the game actually hides the mesh for his phase 2 form in phase 1. More on this later. You can see Iudex Gundyr in his full glory placed on the map. You'll notice that the form displayed in Map Studio is his transformed phase 2 form. This is because the model file contains the data for all his forms and the game actually hides the mesh for his phase 2 form in phase 1. More on this later.
Line 24: Line 24:
 Anyways, on the right you will see many properties for configuring the enemy. Most of it is uninteresting and configures some settings such as the position, the character model used, some configuration that determines when and how its rendered by the engine, and other things. There's a few important fields though: one is the EntityID, which is a unique identifier for referring to the entity in event scripts (more on this later). There's also some fields that reference some so called "params": Anyways, on the right you will see many properties for configuring the enemy. Most of it is uninteresting and configures some settings such as the position, the character model used, some configuration that determines when and how its rendered by the engine, and other things. There's a few important fields though: one is the EntityID, which is a unique identifier for referring to the entity in event scripts (more on this later). There's also some fields that reference some so called "params":
  
-{{anatomy_of_a_boss_fight_3}}+{{tutorial:anatomy_of_a_boss_fight_3.jpg}}
  
 In case you don't know, params are a large amount of gameplay variables organized into various spreadsheets that are used by the game for various functions. Each param "row" has an identifier and each row contains a large amount of fields of various data that often configure how a particular game system works or is balanced. In this case, "think param" refers to a set of AI related variables such as configuring the range and field of view an enemy can spot you and aggro with, how it will cooperate with other enemies, when it will give up and stop chasing you, what parts of the level its capable of navigating, and most importantly what AI script it is using. In case you don't know, params are a large amount of gameplay variables organized into various spreadsheets that are used by the game for various functions. Each param "row" has an identifier and each row contains a large amount of fields of various data that often configure how a particular game system works or is balanced. In this case, "think param" refers to a set of AI related variables such as configuring the range and field of view an enemy can spot you and aggro with, how it will cooperate with other enemies, when it will give up and stop chasing you, what parts of the level its capable of navigating, and most importantly what AI script it is using.
Line 30: Line 30:
 NPCParam param configures some non-behavior related data for an enemy, such as its base health, how fast it can turn, what loot it drops, defenses and resistances, what meshes in the model are visible by default (how phase 2 mesh is hidden), and much more. NPCParam param configures some non-behavior related data for an enemy, such as its base health, how fast it can turn, what loot it drops, defenses and resistances, what meshes in the model are visible by default (how phase 2 mesh is hidden), and much more.
  
-{{anatomy_of_a_boss_fight_4}}+{{tutorial:anatomy_of_a_boss_fight_4.jpg}}
  
 If you look at the two different Gundyrs, you'll notice that the row ids for their thing and NPC params are different, and the data for these two params are also quite different. Champion Gundyr for example has a lot more HP and a different attached AI script. The param differences alone account for most (but not all) of the differences between the fights. To learn more about the other differences though, we will need to deep dive into the other half of Souls maps: event scripts. If you look at the two different Gundyrs, you'll notice that the row ids for their thing and NPC params are different, and the data for these two params are also quite different. Champion Gundyr for example has a lot more HP and a different attached AI script. The param differences alone account for most (but not all) of the differences between the fights. To learn more about the other differences though, we will need to deep dive into the other half of Souls maps: event scripts.
tutorial/boss-iudex-gundyr.1740432349.txt.gz · Last modified: by admin