[Ohrrpgce] Game data

Adam Perry arperry at gmail.com
Mon Nov 24 10:55:15 PST 2008


Okay, this is a thought-in-process, so bear with me and please tack on
your suggestions.

As plotscripting becomes more advanced, the things we can do with it
also become more advanced. Right now, I'm writing a "total remake"
script that will hopefully allow users to easily create Dragon
Quest-style battles. One of the largest obstacles in doing so is the
lack of interoperability between the game file and the script. I'd
like to be able to reference arbitrary internal game data from the
script, but currently the only way to store that arbitrary data is in
textbox format.

Let's take a simpler (albeit fictional) example. Suppose I have a quiz
game where I display a question and four randomly-sorted answers. I
can store all the text for these in textboxes, and it sort of makes
sense in this context, since that's all textual data that requires
little processing. However, suppose I want to create a game around it,
one that uses dialogue. Initially, I decide that I'll reserve the
first 100 textboxes for questions and the rest for dialogue, but it
later becomes obvious that 100 questions was insufficient. My script
becomes hackish because I'm intermingling two types of data.

In the case of the DQ scripts, it's a lot of data to store. Here's a
sample text box storing data for an attack:
 Slow                                // name
 ${S0} fires a laser at ${S1},       // description
 cutting ${S4} speed in half!        // desc cont'd
 S5 I6 P13 vi                        // appearance, whatever
 A0 %50 SS e                         // cut one enemy's Spd by 50%
 P10                                 // this costs 10% of max PP
 FU D                                // fail versus undead, don't display damage
                                     // no chaining, either

Now, this is functional to be sure, and you might even be able to make
out what the abbreviations mean in this case. But it's very ugly.

Here's what I'm proposing: an "Extra Data" editor. Something that can
be accessed and perhaps altered via plotscripting. You'd be able to
set up sets of data -- in the other example, I might set up a
"questions" data type that consisted of five strings that I'd call
"question, answer A, answer B, answer C, answer D." I could then fetch
them via plotscripting:

question id := random(0, max question)
get game data string (game data:questions, game
data:questions:question, question id, 0)
get game data string (game data:questions, game data:questions:answer
a, question id, 1)
get game data string (game data:questions, game data:questions:answer
b, question id, 2)
get game data string (game data:questions, game data:questions:answer
c, question id, 3)
get game data string (game data:questions, game data:questions:answer
d, question id, 4)

More generally,
get game data (data bank, data field, entry id) returns an integer
get game data string (data bank, data field, entry id, string id) sets
string #string id to the appropriate value

Maybe "set game data" functions as well, but altered data wouldn't be
able to be saved (at least not in the current SAV format). I'm less
concerned about the ability to alter the game data.

Does this make sense? I'm sure the idea of arbitrary data types is not
foreign to any of the developers, but hopefully I've presented an
adequate use case.

--
"Today is victory over yourself of yesterday; tomorrow is victory over
lesser men" -Miyamoto Musashi.



More information about the Ohrrpgce mailing list