August 2000
- Pfile Wiping: was The Player Wimping Guidebook William Katzell
- Pfile Wiping: was The Player Wimping Guidebook Koster, Raph
- Release of Blood Drops ver 0.1 adam@treyarch.com
- MUD Wimping -- An anecdote Zak Jarvis
- Responses to the Mudwimping article Dmitri Zagidulin
- Responses to the Mudwimping article Greg Underwood
- Responses to the Mudwimping article Nathan Clemons
- wimping/wiping and the big blind spot Peter
- wimping/wiping and the big blind spot Tamzen Cannoy
- wimping/wiping and the big blind spot Josh Rollyson
- World Event Model Matt Chatterley
- World Event Model adam@treyarch.com
- World Event Model Christoph Seifert
- World Event Model Josh Rollyson
- World Event Model Christian Loth
- Player-admins, was wimping/wiping and the big blind spot Patrick Dughi
- Player-admins, was wimping/wiping and the big blind spot Brian 'Psychochild' Green
- Player-admins, was wimping/wiping and the big blind spot Patrick Dughi
- Player-admins, was wimping/wiping and the big blind spot Matt Chatterley
- Player-admins, was wimping/wiping and the big blind spot Peter
- Player-admins, was wimping/wiping and the big blind spot Sellers, Michael
- Player-admins, was wimping/wiping and the big blind spot Matthew Mihaly
- Player-admins, was wimping/wiping and the big blind spot rayzam
- Player-admins, was wimping/wiping and the big blind spot adam@treyarch.com
- Player-admins, was wimping/wiping and the big blind spot Matthew Mihaly
- Pfile Wiping, etc. Jon Callas
- Pfile Wiping, etc. rayzam
- Pfile Wiping, etc. Sanvean
- Pfile Wiping, etc. rayzam
- Pfile Wiping, etc. adam@treyarch.com
- linked worlds (was: On Lockless Threading and X/Open XA) Bruce
- linked worlds (was: On Lockless Threading and X/Open XA) Matthew Mihaly
- Mud Evolution rayzam
- Mud Evolution Koster, Raph
- Mud Evolution rayzam
- Unique Items (was MUD Wimping) Lord Ashon
- Unique Items (was MUD Wimping) Neddy Seagoon
- Pfile Wiping, etc. Christoph Seifert
- Mud Metrics rayzam
- Mud Metrics Justin Rogers
- Mud Metrics rayzam
- Law of Resource Congestion Christian Loth
- Law of Resource Congestion Josh Rollyson
- Law of Resource Congestion Dan Merillat
- Law of Resource Congestion Dan Shiovitz
- Law of Resource Congestion Christian Loth
- Law of Resource Congestion Patrick Dughi
- Law of Resource Congestion Scion
- Law of Resource Congestion ens017@mizzou.edu
- Law of Resource Congestion Nathan F. Yospe
- Law of Resource Congestion Matthew Mihaly
- Law of Resource Congestion Nathan F. Yospe
- Law of Resource Congestion Matthew Mihaly
- Law of Resource Congestion Patrick Dughi
- Law of Resource Congestion Nathan F. Yospe
- Law of Resource Congestion Andy
- World Event Model (Christian Loth) Christoph Seifert
- World Event Model [Josh Rollyson] Christoph Seifert
- Player-admins, was wimping/wiping and the big blind Hess, Ian W {Ian}
- Majesty (was: Player-admins, was wimping/wiping and the big blind) Chris Jacobson
- World Event Model [Josh Rollyson] (long/technical) Christoph Seifert
Hi,
Josh Rollyson <dinodrac@summit.magenet.com> wrote:
> Josh:
> An alternative to executing the command over and over would be to
> have a flag system, such as 0 to 3. 0 is say pause, the command
> qeue can pause it, 1 is execute, 2 is re-execute, 3 is re-execute if it
> failed
> In this way, the player could keep trying to kick until he was successful...
> all a value of 3 or 2 would do is to re-add the command, in this way
> any command could be easily flagged as re-occuring. Hence, all you would
> need
> is an 'attempt' command, which would just do it once, otherwise you try
> until
> successful or something along these lines...
I like this idea of having the possibility to re-execute an activity.
The pause flag would be the same as a suspendable flag and
1 would be a normal activity I guess. 2 - re-execute I would implement
differently with a Suspended member function of the Event class which
could be overwritten by derived event classes - details below.
The re-execute if failed part could be integrated into the Event itself,
which can decide for itself very well, wether the activity was
successful
or not.
Anyway, thanks for this input :-).
I am looking forward to other input and again especially for comments
on the priority handling of events. Added is a draft about suspended
events which I developed the recent days. Comments for that are welcome
as well of course.
Christoph
Drafts for adding suspended events:
Events here are activities a character can be involved in - other
types of events should not be suspended, but just be overwritten
if the names of the events match.
(note: no suspend or overwrite of other activity events listed on
other types of event objects like items or rooms)
Events have a set of flags to classify them and a suspendable flag
has to be set in order to make an event being overridden gracefully.
(See previous posting on the event system and the flags used
for priority handling)
Each new event calls a generic Check function for every event
object involved e.g. character->Check(new_event) and installs
itself on the event objects, if the Check function was positive
for all objects e.g. with character->Add(new_event).
Each event object holds a list of events it is involved in -
regardless of its role. The generic Add function adds the new
event to the front of these lists.
Now the new event is checked against each old event for activity
conflicts before it gets added. If the old event is a locked one
i.e. protected against being overwritten, the new event will be
suspended and checking stops, otherwise the old one will be
suspended - that is calling Suspend function regardless of
suspendable flag set or not. This way of adding new events and
checking from front secures, that clashing activities are not
executed at the same time - more in an example later on.
The Suspend function takes two arguments: higher (priority) event and
lower i.e. suspending and suspended event:
- checks wether lower event can be suspended - if not set finished flag
on lower event and return
- create or find slot for suspending event in a sorted list and add
suspended event to the list of blocked events, increasing suspended
counter of suspended event by 1 - explanation below, why a counter
is preferred to a flag (and why an event can be more than once in
the blocked list)
- call Suspended member function of suspended event - this would allow
the event to decide what to do if suspended e.g. reset event to
starting point (following Josh Rollyson's ideas of adding
a capability of re-executing events). Example: kick should be reset
as event, as a kick needs some preparation.
An entry on this list looks like A -> B, C : event A pointing
to a list of blocked events including events B and C.
The event scheduler neither executes nor deletes a suspended event
and calls a Release function when an event is finished and gets
deleted. This function removes the entry from the
suspending-suspended list and decreases the suspended counter of
each event blocked by the deleted event by 1. A counter of 0
is the same as event not being suspended.
Example for one event object a and several activities A, B, ...:
Add event A:
a: A
Add event B clashing with A:
a: A, B ; A -> B
Add event C clashing with A, but not B:
a: A, B, C ; A -> B, C
Add event D clashing with B, but not A:
a: A, B, C, D ; A -> B, C ; B -> D
Now finishing A releases both B and C which do not clash with other,
but the clashing D event is still suspended.
Explanation for using a suspended counter instead of just a flag:
Here the example with only suspended flag:
Imagine objects a, b and events A,B,C,D having activity conflicts with
each other
First add A to both objects:
a: A ; b: A
Then B to object a:
a: A, B b: A Suspending: A -> B - B got suspended flag set
Then C to object b:
a: A, B ; b: A, C ; A -> B, C
Then D to both objects:
a: A, B, D ; b: A, C, D ; A -> B, C; B -> D AND C -> D
The worst case is that B gets finished before C does (or vice versa)
- this way the suspended flag of D would be removed, object a could
do something which object b is not yet ready for leading to a possible
deletion of Event D before C is finished.
This would be a corrupt pointer in the list of suspending events :
C -> D
Example with suspended counter (added in ()):
Add Event A to both objects:
a: A, b: A
Add Event B to object a:
a: A, B ; b: A ; A -> B(1)
Add Event C to object b:
a: A, B; b: A, C ; A -> B(1), C(1)
Add Event D to both objects (a first):
a: A, B, D ; b: A, C, D ; A -> B(1), C(1); B -> D(1); C -> D(2)
Now finishing A releases both events B and C, which can
proceed independently as they are on different Event objects.
Now finishing either B or C reduces the suspended counter of
event D to 1 - but only after both events B and C are
finished will event D be released - with suspended counter
being zero. - Skotos News & Skotos @ Gencon Christopher Allen
- Harry Potter stuff Timothy Dang
- Harry Potter stuff Chris Gray
- Harry Potter stuff Matthew Mihaly
- Child animations in MUDs (UO) Brett
- Child animations in MUDs (UO) Koster, Raph
- Constraint as a Design Problem Christopher Allen
- an opportunity Matthew Mihaly
- UO rants Matthew Mihaly
- UO rants Norman Short
- UO rants Wes Connell
- UO rants Schubert, Damion
- UO rants Wes Connell
- UO rants Matthew Mihaly
- UO rants John Buehler
- UO rants Shawn L Johnston
- UO rants Matthew Mihaly
- UO rants John Buehler
- UO rants Brian 'Psychochild' Green
- UO rants Matthew Mihaly
- UO rants Vincent Archer
- UO rants Dan Merillat
- UO rants John Buehler
- UO rants Tess Lowe
- UO rants Matthew Mihaly
- UO rants Dan Merillat
- UO rants Ian Macintosh
- UO rants Koster, Raph
- UO rants Matthew Mihaly
- UO rants Tess Lowe
- UO rants Paul Schwanz - Enterprise Services
- UO rants Jeff Freeman
- UO rants Chris Lloyd
- UO rants Koster, Raph
- UO rants Koster, Raph
- UO rants Dan Merillat
- UO rants John Buehler
- UO rants Chris Lloyd
- UO rants Richard A. Bartle
- UO rants Koster, Raph
- UO rants Zak Jarvis
- Object Representations? KevinL
- Object Representations? Lazarus
- Object Representations? Patrick Dughi
- Object Representations? Phillip Lenhardt
- Reality vs Fantasy (was Law of Resource Congestion) Mordengaard
- Reality vs Fantasy (was Law of Resource Congestion) Caliban Tiresias Darklock
- [gods] Player Representatives? (fwd) J C Lawrence
- Re:[gods] Player Representatives? (fwd) Christoph Seifert
- UO Virtues Schubert, Damion
- UO Virtues John Buehler
- Object Representations? Robert Zubek
- Reputation & Trust Circles [was UO rants] Joe Andrieu
- Reputation & Trust Circles [was UO rants] Bruce
- Reputation & Trust Circles [was UO rants] Ben
- Reputation & Trust Circles [was UO rants] John Buehler
- Reputation & Trust Circles [was UO rants] Matthew Mihaly
- Reputation & Trust Circles [was UO rants] Matt Chatterley
- Reputation & Trust Circles [was UO rants] Dan Merillat
- Reputation & Trust Circles [was UO rants] Matt Chatterley
- Reputation & Trust Circles [was UO rants] Michael Tresca
- Reputation & Trust Circles [was UO rants] Dan Merillat
- Reputation & Trust Circles [was UO rants] Paul Schwanz - Enterprise Services
- Reputation & Trust Circles [was UO rants] Ben
- Reputation & Trust Circles [was UO rants] Paul Schwanz - Enterprise Services
- Reputation & Trust Circles [was UO rants] Milne, Alistair
- Reputation & Trust Circles [was UO rants] Ian Macintosh
- MXP/Extending MUD Technologies (Was Object Representations?) Nathan Clemons
- Matching and Maximizing: How players choose between activities John Hopson
- PK vs. PvP (was: UO rants) Ananda Dawnsinger
- PK vs. PvP (was: UO rants) Matthew Mihaly
- PK vs. PvP (was: UO rants) Vincent Archer
- PK vs. PvP (was: UO rants) Matt Chatterley
- PK vs. PvP (was: UO rants) Vincent Archer
- PK vs. PvP (was: UO rants) Zak Jarvis
- PK vs. PvP (was: UO rants) Matt Chatterley
- PK vs. PvP (was: UO rants) Matthew Mihaly
- PK vs. PvP (was: UO rants) Zak Jarvis
- PK vs. PvP (was: UO rants) Vincent Archer
- PK vs. PvP (was: UO rants) Dan Merillat
- PK vs. PvP (was: UO rants) Dan Merillat
- Crime Ben
- Cooperation vs Competition Ron Moore
- Cooperation vs Competition Jo Dillon
- [Moebius] MXP/Extending MUD Technologies (Was Object Representations?) KevinL
- FW: UO rants John Buehler
- Reincarnation instead of Resurrection Lovecraft
- Reincarnation instead of Resurrection Shawn L Johnston
- Reincarnation instead of Resurrection Matthew Mihaly
- PvP solutions WAS: UO rants Zak Jarvis
- PvP solutions WAS: UO rants Paul Schwanz - Enterprise Services
- Playerkilling Pacifists Michael Tresca
- Playerkilling Pacifists Matthew Mihaly
- Playerkilling Pacifists Michael Tresca
- url for The Hundred Years War Ron Moore
- url for The Hundred Years War Marc Bowden
- [paper] The Sacred and the Virtual: Religion in Multi-User Virtual Reality Jon Lambert
- Avatar rights redux Koster, Raph
- Avatar rights redux Dave Rickey
- Holidays Jeff Freeman
- Transportation (was: UO rants) Chris Lloyd
- Transportation (was: UO rants) Patrick Dughi
- Transportation (was: UO rants) Brad Wyble
- Transportation (was: UO rants) Norman Short
- Transportation (was: UO rants) Chris Lloyd
- Transportation (was: UO rants) KevinL
- Transportation (was: UO rants) Patrick Dughi
- Transportation (was: UO rants) Dan Merillat
- Transportation (was: UO rants) Warren Powell
- Transportation (was: UO rants) KevinL
- Fraud (was: UO rants) Brian 'Psychochild' Green
- Fraud (was: UO rants) John Buehler
- Transportation Ron Moore
- Transportation Madrona Tree
- time delays on PK (was UO rants) gmiller@classic-games.com
- time delays on PK (was UO rants) Erik Jarvi
- Copyright Question for the Hobbyists Kristen L. Koster
- Copyright Question for the Hobbyists Patrick Dughi
- Copyright Question for the Hobbyists Travis Casey
- Copyright Question for the Hobbyists Alex
- Copyright Question for the Hobbyists Lazarus
- Copyright Question for the Hobbyists Marc Bowden