While thinking about the TBS Engine, I came to think about the difference between games and other application such as inventory management and such. My conclusion is that the only difference between the two is the output and input structure. Output being the rendering and GUI. Input being the way information such as mouse movements and button clicks are handled.
This led me to the question why games don't use database structures such as an SQL based system to handle data management. Almost every data class you can think of can be described as a table within a database. Referencing between classes, hierarchical dependencies and templating are things that can be done (more or less) easily in databases. Heck, even class specific implementation could be stored as procedures within a database (or as a script for a scripting engine).
There are many advantages for the usage of databases :
- There are standards defined for the access to the database. Every application (tools and games) accesses the database in the same way so there is no way of data inconsistency within the data creation to game including workflow.
- Databases are easy to update so (via an internet connection) you could easily transfer new datasets to your customers.
- You can easily switch an entire game by just refering to a completely different table set. This increases the way a game can be modded by the gamers.
- Your workflow has to be clearly defined so that new content can be added to the database.
- You easily can have a CC of your database for every state of the development. From prototype through alpha and beta until the master version and/or demo versions.
- and many more...
The only reason for not using a database would be the question of speed for such a database. I have to think more about this but I would like to hear your comments about this. So please write :)