I have decided that the time has come to take the plunge and start thinking about the coding that will be necessary to make all of this work. There are two programs that I must work on:
Encounter Editor 4.0
I’ll have to revise the Encounter Editor to match the needs of Le Morte D’Arthur. That’s going to involve a lot of work. Worse, it uses Java. I hate the graphical system (Swing) used in that language; it’s optimized to handle variable-size windows, which makes it impenetrable. My primary task, however, is to strip out material, which is a lot easier than adding material. I won’t be needing the exclusionary panel or the authorship button; that saves screen space.
The biggest change will be switching from the current data format (XML) to the JSON format. That will require me to learn new technology, which I always hate, but I think I can manage it.
This also forces me to decide the personality model. The standard three-trait model is the obvious route to follow, but I am sorely tempted to drop it down to what I’ll call the “Caligula Model”, based on Caligula’s claim that “It is better to be feared than loved.” So should there be only two traits: fear and love? As I have been writing encounters, in the back of my mind I have thought in terms of being liked and being respected as king. The operational difference between these two traits might be reflected in a case where Arthur must choose whether to execute a dear friend who has committed a serious crime.
But a two-trait system presents the player with too simple a challenge. A three-trait system would require a finer sense of balance. Can the three standard traits work here? The second trait (False_Honest) is the problem here. In this case, False_Honest would not attend the truth or falsity of Arthur’s statements; instead, it would revolve around his fidelity in keeping promises. But that in turn requires that promises be made and later tested. Such tests would have to be split across two encounters in delayed sequence. That adds complexity to the design. Nevertheless, I think this is a valuable addition to the design, as it permits encounters in which Arthur is able to deal with a tough problem with a promise which at some later point he’ll be called upon to honor.
Yes, I shall use the full three-trait personality model, but I’ll tweak Submissive_Dominant towards something like Weak_Kingly.
JSON format
So here’s the format of the JSON file for encounters. I’m leaving out the data on actors for now.
{“Title”: “BorsBeatsBoy”,
“DirObject”: “Bors”,
“Text”: "Bors comes by to talk about the routes and timings his scouts will be taking, the better to coordinate them with the other leaders. You and he spend several hours poring over the map that Merlin drew for you years ago, discussing the likely Saxon routes of attack. Bors holds strong opinions about exactly how things should be done, and if his plans don’t mesh well with others’ plans, then Bors expects them to change their plans to mesh with his. With plenty of tact and patience, you eventually get him around to a scheme that should work well. Bors takes his leave and walks over to his horse. One of your boys holds the reins while Bors attempts to mount the horse, but it skitters sideways and Bors falls flat on his face. Enraged, he turns on the boy, hitting him with his fists and kicking him.”
“Options”: [
{
“Text”: "Best to let it pass unremarked. Bors is in a foul mood."
“Reactions”: [
]
}
{
“Text”: “Bors, what’s gotten into you? He’s just a boy! Leave him alone!”
],
}
I see a number of problems here. I estimate that I’ll have an absolute minimum of 200 encounters. If each encounter requires about 5K characters, then the encounters in toto will consume about 1 MB of space. I suppose that isn’t so bad, considering how a lot of web pages these days require a LOT of space for their imagery. Still, it offends my bit-counting mentality.