A Larger Problem

Well, it’s another one of those “You snivelling fool!” days. Sometimes I design a rough solution to a problem, even though I know it has problems, but then get so used to it that I forget its flaws and take it for granted. Such is the case with the basic strategy for dream combat. It’s all screwed up.

In the original game, it was all so simple. Every morning, each actor woke up knowing exactly one auragon count for each of the other actors. The knowledge was perfect — there was no uncertainty. The actor knew absolutely nothing about the value of the other two auragons. During the course of the day, actors swapped information about auragon counts. Lies were disallowed. Complete knowledge of another’s auragon counts gave you a pretty good idea of which auragon an actor would play against you.

I made several crucial changes to this system. The biggest change was replacing integer knowledge with floating point knowledge. In other words, you didn’t know that somebody had 1, 2, or 3 auragons of a given type (as in the original design); instead, you know that they have 1.67 or 2.41 auragons. This permits actors greater flexibility in lying. If you think that Actor A has 2.63 auragons, you could tell somebody else that A has 2.11 auragons, thereby slightly misleading them without being a blatant liar.

The problem with this is that you CAN’T actually say that. In eeyal, you are forced to communicate integer values — so why do I permit non-integer internal values? That’s just stupid.

But shouldn’t the internal representation of an auragon count be non-integer? Suppose that I currently hold a pAuragonCount value of, say, 1.59, and somebody tells me that their value is 2. I don’t want to have to choose between accepting their report at face value and completely rejecting it. I instead want to nudge my own value towards the new value in proportion to my trust for the speaker. So yes, I need to keep internal representations non-integer.

But there’s a greater problem: auragon counts are made obsolete every night. An actor’s total auragon count could decrease in one night by 0, 1, 2, or even 3. Thus, yesterday’s values are useless and should be discarded. How then are they to be renewed?

In original Siboot, I had the automatic revelation of one auragon count. I could do something like that again. But there are many more possibilities:

Every morning, your pAuragonCount values are nudged closer to the correct values. Your own values almost keep up with the changes. But this suggests that your values will always be too high.

The combat results of the previous night are common knowledge. You know what each actor played in each combat, so you know the changes in auragon counts. This would permit you estimate likely actions — but that’s getting too damn analytical. I need something more intuitive, more personal.

What if auragon counts are more closely tied to behavior? What if the auragons you hold are somehow expressed in your behavior? The problem with that, of course, is that the human player can override any such algorithms and mislead the other actors. Perhaps auragon counts are somehow presented in the facial expressions? That would be excellent, but can it work?

I have bumbled onto something very important. If a major element in the game is successfully reading the facial expression, then the game is catapulted into something much, much more interesting. But can it be done? Is it really possible to subtly introduce elements of Good_Bad, Honest_False, and Dominating_Submissive into a single facial expression?

Theoretically, yes. But this is a major change, and it would certainly screw up our current plans. Nevertheless, I think it worth close examination.