The left column is a set of booleans: the way NPC knowledge is
normally represented. It is not a competitor and not a straw man — the
implementation is unscripted/flat.py, about eighty lines, and it is fed the
identical events. Both columns answer from their own state.
| Ask both of them | Flags | Unscripted |
|---|---|---|
| Who knows it? | all 8 of them — the news fired, so the flag is set | 7 of 8; Officer Kane was not listening to that channel and never hears it |
| A boolean is set at a moment, for everyone who can read it. Attention, distance and whether a character was even in the room are not representable. | ||
| Who told Dima? | nowhere to put it | Vee, at hop 1, tracing back to the original incident |
| This is the row everything else rests on. Without it, repetition cannot be discounted, a liar cannot be exposed, and no character can answer 'who told you that'. | ||
| How sure is Honce? | knows it — there is no third state | 0.61, on 2 pieces of evidence |
| Doubt is not a smaller boolean. A character who is unsure either knows or does not, so they cannot be talked round, and better evidence cannot arrive later. | ||
| Which version does Honce hold? | nowhere to put it | one that changed on the way, still traceable to the true original |
| There is one fact. A version that lost a detail in the retelling is either the same flag or a second fact nobody authored. | ||
| Did anyone lie about it? | nowhere to put it — an honest report and a lie set the identical flag | Mr. Okada asserted it while believing the opposite, to 4 listeners, each recording him as the source |
| Deception is not a special case here: a lie is a commitment whose proposition differs from the speaker's belief, and the runtime knows which is which. | ||
| The player proves the liar lied. What changes? | nothing — 0 flags move | 4 beliefs recomputed back toward not knowing; 0 of them had a second source and were left standing |
| This is the one that costs a game the most. Exposing a liar cannot undo what he convinced people of unless something recorded that he was the reason they believe it. | ||
| The player asks the same character four times. | no change — a boolean cannot be set twice | 0.504 → 0.506. Four answers, one origin, and the correlation discount does the rest |
| The failure mode a flag avoids by accident and a naive confidence score walks straight into: hearing one witness four times is not four witnesses. | ||
| Does anyone ever forget? | no — 0 flags decay | by the end, 7 of 7 can no longer recall being told, and still believe it |
| Memory that only grows is why a generative character can quote something from forty hours of play ago as though it happened this morning. | ||
| How much state per character? | one bit | beliefs, provenance, memory and affect |
| Measured at about 76 KB per character in a saved game. Fine for a cast of hundreds; not free, and not the right answer for a character who only needs a door flag. | ||
| How fast to check? | a set lookup | a read model, kept warm for who matters |
| 2,000 characters across 400 places cost 141 ms per simulated hour. Not a set lookup, and it should not be used like one: keep flags for doors and gates. | ||