I’m not sure how in line my questions are with the original post or not. If not, perhaps this could be split. My questions are only about data authoring.
i think the concept of primary and foreign keys is the main thing I’m after.
Regarding quantifying how much data management there is, I’m not sure what significant means. Imagine a survival game with a few hundred types of entities, where each can be used as a key for various actions, and each is mapped to various components, and has various efficacy in different context…nothing like dwarf fortress, but probably slightly more complicated than The Long Dark, in terms of number of relationships between items and what they can do.
So like, for data authoring, we work in spreadsheets, right? One way or another that data gets parsed and ends up in the game. We want to work in spreadsheets so that our human eyes can easily see the full picture of whats going on, and also so we can easily cut,paste, rearrange, rename, etc, right? Like, we aren’t going to generate a list of 300 items and 20 different variables for each one by entering code line by line?
So imagine you have an item in the game called “Big Hammer”. It it described with a litany of basic types like ints, strings. You also need to associate it with texture files, and models, and sound effects, etc. That can all be described in one table called something like, “Items Basic Data.”
But in another table you might have all of the actions possible in the game listed. And for each action, you want to know an array of tools that are compatible with the action. So for the action, “Make Big House,” the “Big Hammer” has a viability rating of +1.
And “Little hammer” has a rating of “-1”.
This table would be called something like, “Actions mapped to items efficacy ratings”.
Maybe later you decide to rename the Big Hammer to “Super Hammer”, and you change the category it was in, and maybe you remove Little Hammer. Ideally, those changes should propogate to everywhere “Big Hammer” was used, and wherever Little Hammer was used, we should at least get a warning to indicate that a null reference now exist.
In excel we can do a find and replace, but its slow and manual.
Another thing you might want to do is say, “for columns, show me every action in the game. For rows, show me every item in the game. Draw a highlight where there are any items that do not match to any actions.”
That would be a basic check, but you could layer on more rules, like check for general balance to see if expensive items evenly distribute with actions, etc.