I’ve been making slow progress over the last week; I have only some minor issues to report.
Morale
I’ve been having a difficult time knuckling down and working on Siboot. It’s due, I think, to a loss of confidence on my part. Many years ago I wrote an essay for The Journal of Computer Game Design entitled Egotism, in which I maintained that egotism is crucial to the game designer who seeks to open up new realms. You can’t explore the unknown without the unjustified self-confidence that you can solve any problem you encounter.
But the continuing struggle with Siboot is undermining my confidence. It seems as if, at every point, I encounter major problems. I keep expecting to break out of this morass and sail into open waters, where the work is clear and simple, but it seems that every obstacle I overcome leads only to another obstacle.
‘Go to’ versus ‘Go see’
Currently the only verb for moving around is the ‘go to’ verb. This allows you to select a stage as a destination. This is stupid; who in the world wants to go to a location? In social interaction, you go somewhere to see people, not to reach a location. I have wrung my hands about this problem many times before:
In “Some More Display Issues”, I first considered the idea of eliminating conventional stages.
In “The Complexities of Space and Time”, I wrestled with an idea for creating meeting-only stages.
In “Back to Square One”, I considered the idea of not using stages at all.
Yet I still continue to wring my hands ineffectually about this problem, so the time has come to tackle it. As I write this, it is exactly 1:00 PM : High Noon. I need to go outside and stand on the dusty dirt road on my property, hands itching to fast-draw my pistol as I square off against the Bad Guy (the problem of stages). If I win, I’ll be back.
Much later…
I think I have figured out a solution. It’s radical. First, I dispense with multi-threading. The engine has always had this: actors can operate independently of each other. This is what causes so many complicated and difficult interactions that drive me crazy. Instead, I shall make the thing single-threaded. Each actor gets his turn, during which he goes to see another actor. He carries out the interaction with his interlocutor, and when it is complete, he says goodbye and returns to his home, at which point the next actor takes his move.
This destroys time as a significant factor. Actors simply take their moves in sequence. At any given moment, there’s only one interaction going on. There are only seven stages, one for each actor; during his turn, an actor leaves his stage and goes to another actor’s stage; when done, he returns to his home stage.
This also means that I don’t need to tell the player what stage he’s on. That greatly simplifies things.
OK, I think I have a plan.