Since I saw „support for memotica stimuli“ in my RSS reader this morning, I thought I’d better give an update on the status of the Memotica side.
I’ve just finished – or nearly finished actually – a very long development stretch regarding “conditions”, which could best be thought of as SOA style, reusable “if” statements for Memotica. Conditions are a key component of stimuli because they govern how stimuli are resolved and distributed. How a particular stimulus makes an appearance under varying circumstances, or appears differently indifferent circumstances, that state is determined by conditions. The client distribution list is also governed by conditions… based on arbitrary ruleset considerations (e.g. is whatever disguise or perception capacity that a character has sufficient to see the little girl for the demon she really is?), spatial considerations (e.g. line of sight?) and technology considerations (e.g. is the client graphical or text based? If graphical, send the model+mesh. If text, send the text description)
They took quite a while to get working perfectly because I was also introducing the mechanism for self executing content and for (python) script handling of Memotica objects. I’m also fussy about building automated test cases, testing all the corner cases I can think of and then constantly retesting to prevent regressions. It makes each development step in Angela (the Memotica interpreter engine) take longer of course.
As an FYI, Memotica stimuli don’t know about characters or players and it also does not know about interface technologies. What it knows about are entities, controllers and channels. An entity is an individual instance of a meme. One or more controllers might be associated with an entity. A controller is he who gives commands and gets updates”; an abstract client proxy. It:
Defines what stimuli are allowed to be sent due to the user profile it is associated with. E.g. a controller associated with a GM account would have a wider array of possible stimuli that could be sent than one associated with a player.
- Defines the appropriate stimuli channels. If a player is logged in via a text only client, the controller associated with his/her account would be updated to only allow text messages.
Has a UID identifier, so it is easy for a game engine to associate a Memotica controller with a client.
- Angela Stimulus Queue will then forward the resolved stimulus to the broadcaster associated with the channel, earmarked for controller X. The broadcaster is where Angela meets the metal so to speak. I have a design for and will implement a SOAP based universal broadcaster that will simply forward the resolved stimulus as is to the client. In the case of a specific game engine, that resolved stimulus might need to be transformed into an engine specific format.