» Wed Sep 09, 2009 11:21 am
Although this post may well show the breadth and scope of my ignorance, I was wondering about some of OpenMW's internal workings and how it will handle Morrowind data. I started wondering about this because it occurred to me that Morrowind is essentially a large database. I'm not sure how it actually works, though it appears that all the game assets, whatever type they may be, seem to be one sort of object or another, related across various database tables.
One of the major weaknesses apparent in vanilla Morrowind's implementation is the static nature of its database (or at least "database-like" structure). For instance, suppose I wanted to create a mod that added custom items to the game. To do that, I would have to manually create entries for each such item as its own unique object in the construction set and then place them in the game, either explicitly (e.g. on a shelf) or implicitly (e.g. in a leveled list or through scripting). Having to first create the object I wish to see implemented in the game inherently limits the variability of available objects in both Morrowind and its mods.
Suppose I wanted to create items or spawn loot, monsters, etc. with characteristics depending on the player's actions and properties. To do this, I would want to use a rules-based system. Instead of focusing on the proper circumstances to include one of a handful of objects, I would focus on defining the rules that would dynamically create unique new ones.
An example of this sort of thing that already exists in vanilla Morrowind would be the alchemy system. When a player wants to create a potion, the game does not yet have an object corresponding to the potion that will be created. Instead, the engine follows a series of rules and then produces the appropriate output based on the variables in its calculation. Depending on the player's intelligence, alchemy skill, luck, the quality of the apparati used, the combination of ingredients used, and various "behind the scenes" global settings, (I think that accounts for all the variables but don't hold me to it), the game then creates a new potion that did not previously exist. Player created potions are not listed in the Alchemy "table" visible in the Construction Set. That is to say, their creation is rules-based.
Imagine what could be done if more of the game operated in this way. NPC's/creatures could be generated according to rules based on the player's characteristics at the time. And not just which NPC's/creatures spawn but also their properties: their number, stats, abilities, spells, items, etc. could be dynamically created as well. Whole new systems could be created. Suppose you wanted to create a ranger mod. One could create a system that acts similarly to alchemy, allowing the player to apply the negative effects of a combination of ingredients to a bundle of arrows. The type and strength of those effects would of course depend on various factors, be generated in a rules-based way, and result in a virtually infinite number of possible outcomes. There are many, many ways this sort of thing could be used to make Morrowind a much more dynamic, interesting world.
As I imagine it, some sort of formal database system would be implemented in the game engine. The engine would parse the *.bsa, *.esm, *.esp, and *.ess files during loading times, generating its own database file (or merely updating it as necessary after first run), which the game would then use primarily. With a suitable interface to the database backend, its contents could be modified through modifications to the rules of the database itself, scripting, and the player's actions in game. This approach would allow for many more options while maintaining the consistency/coherence of the original game/mod files (at the expense of some hard drive space).
What I'm trying to ask is will OpenMW implement OGRE's resource/scene management or add to it in a more "database-like way" than Morrowind's original implementation (or at least one that allows for similar results as far as the modder/user is concerned)?
Whatever the answer, much thanks to all the people working to make Morrowind even better.