March 1999
- Storytelling vs simulation, Koster, Raph
- Storytelling vs simulation, Eli Stevens {KiZurich}
- Storytelling vs simulation, Mik Clarke
- Storytelling vs simulation, J C Lawrence
- Storytelling vs simulation, Matthew Mihaly
- Storytelling vs simulation, J C Lawrence
- Storytelling vs simulation, Matthew Mihaly
- Storytelling vs simulation, Caliban Tiresias Darklock
- OT: MUSH semantics (was: Influential muds) T. Alexander Popiel
- Storytelling and Gods (fairly long) Matthew Mihaly
- Storytelling and Gods (fairly long) Koster, Raph
- Storytelling and Gods (fairly long) Matthew Mihaly
- Generic event handling Adam Wiggins
- How to support 1000+ simultaneous connections, and some philosophy. Ben Greear
- How to support 1000+ simultaneous connections, and some philosophy. Matthew D. Fuller
- How to support 1000+ simultaneous connections, and some philosophy. Chris Gray
- How to support 1000+ simultaneous connections, and some philosophy. Chris Gray
- How to support 1000+ simultaneous connections, and some philosophy. Caliban Tiresias Darklock
- How to support 1000+ simultaneous connections, and some philosophy. Nathan F Yospe
- How to support 1000+ simultaneous connections, and some philosophy. Caliban Tiresias Darklock
- How to support 1000+ simultaneous connections, and some philosophy. Jason Spangler
- How to support 1000+ simultaneous connections, and some philosophy. Oliver Jowett
- How to support 1000+ simultaneous connections, and some philosophy. Oliver Jowett
- How to support 1000+ simultaneous connections, and some philosophy. Chris Gray
- How to support 1000+ simultaneous connections, and some philosophy. Caliban Tiresias Darklock
- How to support 1000+ simultaneous connections, and some philosophy. Chris Gray
- How to support 1000+ simultaneous connections, and some philosophy. Petri Virkkula
- How to support 1000+ simultaneous connections, and some philosophy. Chris Gray
- How to support 1000+ simultaneous connections, and some philosophy. Petri Virkkula
- How to support 1000+ simultaneous connections, and some philosophy. J C Lawrence
- How to support 1000+ simultaneous connections, and some philosophy. Petri Virkkula
- ADMIN: Kanga.Nu outage and other news -- please read J C Lawrence
- Elder Games Martin C Sweitzer
- Elder Games Adam Wiggins
- Elder Games Koster, Raph
- Elder Games Matthew Mihaly
- Elder Games Caliban Tiresias Darklock
- Elder Games Martin C Sweitzer
- Elder Games Matthew Mihaly
- Elder Games Kylotan
- Elder Games Caliban Tiresias Darklock
- Elder Games Kylotan
- Elder Games Koster, Raph
- Elder Games B. Scott Boding
- Elder Games Wes Connell
- Elder Games Caliban Tiresias Darklock
- Elder Games Matthew D. Fuller
- Elder Games B. Scott Boding
- Elder Games Michael Hohensee
- Elder Games Matthew Mihaly
- Elder Games Benjamin D. Wiechel
- Elder Games Chris Gray
- Elder Games Chris Gray
- Elder Games J C Lawrence
- Elder Games Nathan F Yospe
- Elder Games J C Lawrence
- Multiple clients (was How to support 1000+ simultaneous connections) Matthew D. Fuller
- Multiple clients (was How to support 1000+ simultaneous connections) Chris Gray
- Naming and Directories? Mark Gritter
- Naming and Directories? Matthew D. Fuller
- Naming and Directories? Adam Wiggins
- Naming and Directories? Hans-Henrik Staerfeldt
- Naming and Directories? Chris Gray
- Naming and Directories? Mark Gritter
- Naming and Directories? Mik Clarke
- Naming and Directories? Mark Gritter
- Naming and Directories? Nathan F Yospe
- Naming and Directories? Ola Fosheim Grøstad
- Naming and Directories? Nathan F Yospe
- Naming and Directories? Mik Clarke
- Naming and Directories? Mark Gritter
- Naming and Directories? Jon A. Lambert
- Naming and Directories? Hans-Henrik Staerfeldt
- Naming and Directories? Ola Fosheim Grøstad
- Naming and Directories? Chris Gray
- Naming and Directories? Caliban Tiresias Darklock
- Naming and Directories? Ben Greear
- Naming and Directories? Mik Clarke
Chris Gray wrote:
> [Mik Clarke:]
>
> >Given a task of sending a message to a specific player, when that player could be
> >located anywhere within the mud, how do you propose to do it faster than by running
> >the list of all connected players? Sure, a binary index by name might help, but I
> >suspect you'd have trouble seeing the saving...
>
> Depends on how often you do it. After removing some idiocy in my database
> code, and skipping the MUD language interpreter, the biggest hits on
> my profiling of a test with 600 "machines" was the code that sees who
> should get a message whenever a machine does something. E.g., a machine
> goes from one room to another. All characters and machines in both
> rooms may need to know about that. So, with 600 machines moving around
> every couple of seconds, thats an order 600 * 600 = 360,000 cost. It
> starts to be noticeable. So, the bit of work I've done recently has
> been to start adding more pointers to the agent structures, so that
> I can link them together based on location, and also via a table
> hashed by locations. The first ring gets me those in the old location.
> The hashing gets me to any ring for the new location. I expect a
> noticeable speedup once I get all the pointer fiddling right.
Ever heard of event driven interaction?
In a Diku each room has a list of all of the objects and all of the players that are in
the room. The thing to do, as you are finding, is to utilize this 'locality' to reduce
the amount of work you have to so.
The way CthulhuMud handles this is as follows:
1. A context is created. This describes the participants and their roles (actor, victim,
observer (yes, it changes for each observer), primary object, secondary object, number,
text and room).
2. An event is created this references the context and has a description of both the type
of action and a more specific subtype. Examples might be GET and GET_ITEM or DEPART and
DEPART_WALK. Further details of the action are stored in the context. The context also
contains pointers to the templates for the messages that the actor, the victim and any
observes get to see.
3. The event is issued to the room (as this is C it just a function call with the room
and the wev as its arguments).
4. The room then passes to event to each mob in the room (who might be interested in it).
5. Code for the mob then decides what to do with it. For player Mobs, the message is
sent to the player. For NPC mobs it can trigger mobprogs.
There are a couple of refinements:
Challange events.
The event is issued as a challange before the event occurs. Mobs may veto the action by
triggering a mob prog. This prevents the action from happening, but it is up to the mob
to explain why. (The best traditional mobprogs can do is to say 'Naughty player, put
that down right now!' and maybe force them to drop it.)
Scrying and Monitoring
If everything that happens in the room is described by an event (and CthulhuMud is about
75% of the way there), then its possible to extend the room_issue_wev function to send
the event to mobs which are elsewhere but which want to monitor the room (for cool
animation effects) and to feed them to objects that are 'remotely observing' the room.
(Scrying isn't yet implemented, but I've got all the bits.)
Echos
If you define exits to be 'transparent' 9to light, sound or both) you can punt the event
into neighbouring rooms, allowing people to see further in open spaces.
Mik
- Naming and Directories? Chris Gray
- Naming and Directories? Chris Gray
- Naming and Directories? Chris Gray
- Naming and Directories? Jo Dillon
- Naming and Directories? J C Lawrence
- Naming and Directories? Mark Gritter
- Naming and Directories? Ola Fosheim Grøstad
- Naming and Directories? Mark Gritter
- Naming and Directories? Ola Fosheim Grøstad
- Naming and Directories? Chris Gray
- Naming and Directories? J C Lawrence
- Naming and Directories? Jo Dillon
- Naming and Directories? Jay Carlson
- Naming and Directories? Jon A. Lambert
- Naming and Directories? Ola Fosheim Grøstad
- Naming and Directories? J C Lawrence
- Naming and Directories? Ola Fosheim Grøstad
- Balancing a Mud Martin C Sweitzer
- Balancing a Mud Neerenberg, AaronX
- Balancing a Mud Mik Clarke
- Balancing a Mud Martin C Sweitzer
- Multiple clients (was How to support 1000+ simultaneous connec Marc Bowden
- ADMIN: Signature length J C Lawrence
- distributed, _untrusted_ servers Oliver Jowett
- OT ADMIN: Web links to MUD-Dev J C Lawrence
- (fwd) MUD Economies J C Lawrence
- (fwd) MUD Economies J C Lawrence
- (fwd) MUD Economies J C Lawrence
- (fwd) MUD Economies J C Lawrence
- Potential New Laws Benjamin D. Wiechel
- Mud Economies (A simple idea) Wes Connell
- Self-organizing worlds (was: Elder Games) B. Scott Boding
- Self-organizing worlds (was: Elder Games) Mik Clarke
- Self-organizing worlds (was: Elder Games) Koster, Raph
- Self-organizing worlds (was: Elder Games) Nicholas Lee
- Self-organizing worlds (was: Elder Games) Koster, Raph
- Self-organizing worlds (was: Elder Games) B. Scott Boding
- Self-organizing worlds (was: Elder Games) Nicholas Lee
- Self-organizing worlds (was: Elder Games) Ola Fosheim Grøstad
- Self-organizing worlds (was: Elder Games) Martin Keegan
- Self-organizing worlds (was: Elder Games) Ola Fosheim Grøstad
- Self-organizing worlds (was: Elder Games) Nicholas Lee
- Mass Creation OLC Functions (idea from Elder Games) Wes Connell
- Mass Creation OLC Functions (idea from Elder Games) Matthew Mihaly
- Mass Creation OLC Functions (idea from Elder Games) Nathan F Yospe
- Mass Creation OLC Functions (idea from Elder Games) Matthew Mihaly
- Mass Creation OLC Functions (idea from Elder Games) Nathan F Yospe
- Mass Creation OLC Functions (idea from Elder Games) Ola Fosheim Grøstad
- Mass Creation OLC Functions (idea from Elder Games) Nathan F Yospe
- Mass Creation OLC Functions (idea from Elder Games) Ola Fosheim Grøstad
- Mass Creation OLC Functions (idea from Elder Games) Brandon A Downey
- Mass Creation OLC Functions (idea from Elder Games) Adam Wiggins
- Mass Creation OLC Functions (idea from Elder Games) Martin C Sweitzer
- Mass Creation OLC Functions (idea from Elder Games) Quzah [softhome]
- Mass Creation OLC Functions (idea from Elder Games) Richard Woolcock
- Mass Creation OLC Functions (idea from Elder Games) Chris Gray
- Mass Creation OLC Functions (idea from Elder Games) J C Lawrence
- Mass Creation OLC Functions (idea from Elder Games) Christopher Allen
- Mass Creation OLC Functions (idea from Elder Games) Matthew Mihaly
- Mass Creation OLC Functions (idea from Elder Games) Chris Gray
- Mass Creation OLC Functions (idea from Elder Games) J C Lawrence
- Mass Creation OLC Functions (idea from Elder Games) J C Lawrence
- On the topic of Mud AI Leif Hardison
- On the topic of Mud AI Nicholas Lee
- On the topic of Mud AI Andrew Norman
- Unicode, ascii and names Ola Fosheim Grøstad
- Variable-sized structures in C (was: Naming and Directories) T. Alexander Popiel
- Variable-sized structures in C (was: Naming and Directories) Ola Fosheim Grøstad
- Renaming objects. John Hopson
- Renaming objects. David Bennett
- Variable-sized structures in C (was: Naming and Directories) Petri Virkkula
- Self-organizing worlds (was: Elder Games) Koster, Raph
- Self-organizing worlds (was: Elder Games) Ola Fosheim Grøstad
- online economy behavior (was: Self-organizing worlds) Robert Green
- online economy behavior (was: Self-organizing worlds) Matthew Mihaly
- online economy behavior (was: Self-organizing worlds) Adam Wiggins
- online economy behavior (was: Self-organizing worlds) Robert Green
- online economy behavior (was: Self-organizing worlds) Matthew Mihaly
- online economy behavior (was: Self-organizing worlds) Matthew Mihaly
- online economy behavior (was: Self-organizing worlds) Christopher Allen
- Self-organizing worlds (was: Elder Games) Koster, Raph
- Self-organizing worlds (was: Elder Games) Koster, Raph
- Self-organizing worlds (was: Elder Games) Chris Gray
- Self-organizing worlds (was: Elder Games) Benjamin D. Wiechel
- Self-organizing worlds (was: Elder Games) Mik Clarke
- online economy behavior (was: Self-organizing worlds) Chris Gray
- OT: just a little something... Ola Fosheim Grøstad
- (fwd) implications J C Lawrence
- Downtime J C Lawrence
- Getting Started with Mud Server Stormblade
- Getting Started with Mud Server Ross Nicoll
- Getting Started with Mud Server Jim Clark
- Getting Started with Mud Server Ben Greear
- Getting Started with Mud Server Chris Gray
- Getting Started with Mud Server Jo Dillon
- Getting Started with Mud Server Hans-Henrik Staerfeldt
- Terms Ola Fosheim Grøstad