I felt this topic deserved its own discussion.
Personally, I use staticData quite often to store data because it will take virtually any code and is easily accessible anywhere. A ship type is preferable because of the number of events that can be associated with it and it can be queried with the typGet function.George wrote:The problems are:
1. It is difficult to represent characters across systems. For example, anything that happens to Kate in Rigel Aurelius should be reflected when you meet her in Heretic. Right now, this information is stored in global variables attached to a certain ship class, but there is no consistent way of doing this (e.g., Admiral Decker's status is stored in a different way).
Perhaps we need a way to track objects across systems in a consistent way. Every character in the game (Kate, Decker, etc.) could be represented as an object (generally a ship) and it would be possible to (e.g.) inquire about their status (dead, alive, etc.)
2. Another problem is state representation. At any point in time, Kate is in one of several states: alive and waiting for the player; mad at the player; dead; etc.
At each state, Kate should have different dialog with the player (and transitions to other states should depend on the current state). But today this state representation is spread out over multiple places. Sometimes it is at a station that the player docks at; sometimes it is at Kate's ships; etc.
It would be great if there were a single point at which one could program Kate's entire state-machine and all her responses and actions.
3. Ultimately, what I'd like to do is give characters more autonomy in how they respond to events. For example, right now the Kate storyline is entirely hard-coded. But what if we could program general goals and have the character attempt to accomplish those goals in whatever way possible. For example, if the player refuses to help Kate, perhaps she hires someone else.
This is extremely difficult to program correctly, but it might open up some very interesting interactions.
If the data storage were to be standardized, I would like that a new attribute be created; +Plot would be fine, to be placed on the ships so that they can be easily filtered and queried.