-
Many games claim to offer a dynamic world, when in reality, what is offered is one of two things:
[list=1]
[*]The 'dynamic' portion of the game is extremely limited, often restricted to alterations to the wilds via logging/mining/etc.
[*]The game has several 'states' for rooms (damaged, burned, etc) and will respawn to normal after a time. This is not truly dynamic, as it only allows for a few states which change back and forth. [/list]
What I propose is the following:
[u]String Bank[/u]
A list of strings, based on materials, locations, etc. May also be organized by:
Adjectives: Seasons (adjectives for each season, etc)
Verbs: Combat
Etc.
This would allow us to make semi-automated descriptions that the game can insert in various locations.
[u]Building Editor[/u]
This allows the generation of buildings ingame. This editor would let us set materials (with % priority, which would allow for substitutions in most cases of other materials), the approximate dimensions and shape of the building, as well as particular strings and string banks to use in generating descriptions. Could also be used to make templates for buildings, down to possible items that can be found inside.
[u]City Editor[/u]
A more general editor, which would allow us to see a bird's eye view of the city, set the districts (residential, etc), how wide the city can spread, and the list of buildings required by the city (including minimum condition of each building for repairs). This is the main editor, and is checked when the city is damaged.
[b][u]How it fits together[/u][/b]
When a city is attacked/damaged by player or npc actions, the city checks against its list of required buildings to see if a job needs to be queued for repair/replacement. If a building needs to be placed in an area with ruined structures, additional jobs are queued to clear the area up first. When a building is queued for construction/repair, the game will check against the building template's required materials and hav the inhabitants of the city gather them. If the city has what it needs, it will attempt to build the structure in a fitting location, pulling from the string bank to write the descriptions of the building and allowing for a unique, changing environment for players.