Example session

Scenario

This is homework by Lavoie Philippe (slightly modified)

'quoted text': Makes things more compact in example, actual content will be added later as appendix.


  
         A
         perception
         'previous section copied here'
  
  
         A
         change
         sleep
  

         

S->B (notice spell and see A to fall asleep):


  'perception op similar to above'
  
         B
         sight
         'include above change op to A here'
  

         

Login There are two players: JoeBlatz and Bork. They will both connect to the same server S. They have characters A and B respectively. There is a monster M that resides on monster server X.
Looking A and B 'connect' to the server S. The server puts them in their current location which is in the middle of a road. A tree is to their left (at 10 meters). They see nothing else.
Appearing and movement Then a monster jumps from a tree branch and goes for them.
Description The monster is a geeklizard: a computer user who became green and lizard like after staring too long at his computer.
Spell casting and results The geeklizard will try to slay them by talking them to death. It will start by a story about the advantage of calcium in the development of the infant. That speak is magic and will cause A to fall asleep,
Prepare for fight player B will kill M by using a sword. The fight sequence is: B gets his sword in his hand, M continue to talk (no effect),
Swing with sword and damage B swing and misses, M moved out of the way, M swing and hit (but only minimal damage), B swing and hit, M talks about the advantage of asynchronous transfer over TCP/IP will trying to flee,
Transmission error B catches up to M,swings again. The server doesn't receive the last swing message. B sends the message again
Kill and it kills M.
Steal money Player B will steal the money from A
Tracking and take off. A wakes up 1 hour later and tries to read the tracks on the road to see where B went.


  B
  info
  
         sleepy bore
         talkspell
  

         


Prepare for fight

player B will kill M by using a sword. The fight sequence is: B gets his sword in his hand, M continue to talk (no effect),

B->S (gets his sword in his hand):


  B
  grab
  
         swordB
         B#hand
  

         

M->S and S->B (Ms spell):

similar to previous+sees sword to move it's hand


  B
  sight
  'include previous op here'

         


Swing with sword and damage

B swing and misses, M moved out of the way, M swing and hit (but only minimal damage),

B->S (B swings):


  B
  swing 
  
         swordB
         B_hand
                        'where M is - sword length'     
  

         

S->B (misses):

M moves out of the way and swordB moves where M was.

movements, similar to above grab

M->S, S->B (M swing and hit):

swing like above, sight of it like above

hit:


  M
  B
  change
  
         B
         0.9
         
  

         

B swing and hit, M talks about the advantage of asynchronous transfer over TCP/IP will trying to flee,

Similar to previous...


Transmission error

B catches up to M,swings again. The server doesn't receive the last swing message. B sends the message again

Content similar previous.

To facialiate detection of missing messages:

B->S:


  

Atlas XML examples

Now libatlas detects missing message "101" and asks sender to resend it.


Kill

and it kills M.

B->S (swing M):


  'similar to earlier swing'

         

S->M (B kills M):

It disappears:

 
  B
  M
  kill 
  M

         

Alternative if it leaves corpse:


  B
  M
  dead 
  
         M
         0.0
         dead
  

         

S->B (sees above):


  B
  sight
  'above included here'

         


Steal money

Player B will steal the money from A

B->S (search body of A):


  B
  search 
  A

         

S->B (sees possessions):


  B
  sight
  
         A
         'other attributes here..'
         
                swordA
                backpackA
         
  

         

B->S (look at backpack)
S->B (sees money):


  B
  sight
  
         backpackA
         'other attributes here..'
         
                moneyA
         
  

         

B->S (look money):
S->B (sees amount):


  B
  sight
  
         moneyA
         120
  

         

B->S (try to steal sword and divide money to two heaps):


  
         B
         steal 
         
                swordA
                backbackB
         
  
  
         B
         divide
         moneyA
         
                moneyA
                10
         
         
                money
                110
         
  

         

S->B (B sees sword stealing sword failed and dividing money succeeded):


  
  
          B
          sight
          
                 B
                 move
                 
                        swordA
                        handA'changes 0.02 meters'
                 
          
  
  
  
          B
          sight
          
                 B
                 
                        move
                        
                          handA
                          A'changes 0.3 meters'
                        
                 
          
  
  
  
          B
          sight
          
                 B
                 'like content of divide except this line is added to latest entity:'
                 moneyA_110
          
  

         

B->S (steal second part of divided money):
similar as stealing sword above (with op no="107")

S->B (sees stealing succeed):


  B
  sight
  
         B
         steal
         
                moneyA_110
                backbackB
         
  

                

B->S (Then combine it with existing money):


  B
  combine
         moneyB
         moneyB
         moneyA_110

                

S->B (sees result of combining):


  
         B
         change
         
                moneyB
                130 
         
  
  
         B
         delete
         moneyA_110
  

                


Tracking

and take off. A wakes up 1 hour later

B->S (movement like earlier)
S->B (sight like earlier)

S->A (awakening like sleeping earlier)

A->S (looking in the possession: like earlier)
S->A (result: similar like earlier)

What if A doesn't look at his possessions? Then it will become as surprise when he is next time shopping ;-)

and tries to read the tracks on the road to see where B went.

A->S (see road):


  A
  track 
  road

         

S->A (sees road):


  A
  sight
  
         road
         
                 'listing of some coordinates where B went'
         
  

         

How do you know track is derived from search?

X->S:

get
  track

         

S->X:

info
  
         track
         search 
  

         


Aloril

Login

There are two players: JoeBlatz and Bork. They will both connect to the same server S. They have characters A and B respectively. There is a monster M that resides on monster server X.

A->S (login):


  
         JoeBlatz
         login
         
                JoeBlatz
                Rqv67.%
         
  

         

S->A (login accepted):


  S
  JoeBlatz
  info
  
         JoeBlatz
         Player
         Joe Blatz
         Rqv67.%
         A
  

         

B->S, S->B: similar

M->S, S->M: similar (player=X, character=M)

  • Of course login is only once/all monsters
  • X server likely has privileges to create monsters too:
    • create them to S
    • or keep them in server X: then all messages that include M will have X/M instead of M (Note that if servers S and X have common id space, then S can choose to hide the existence of server X)


Looking

A and B 'connect' to the server S. The server puts them in their current location which is in the middle of a road. A tree is to their left (at 10 meters). They see nothing else.

Map by John R Street

  01234567890
 0+----+-+--+
 1|      | |  |
 2|      |A|  |
 3|*    | |  |
 4|      |B|  |
 5|      | |  |
 6|      |P|  |
 7|      |A|  |
 8|      |T|  |
 9|      |H|  |
 0+----+-+--+

*=tree

A->S (look around):


  A
  look

         

S->A (what A sees):


  A
  sight
  grass1

         

A->S (look at grass):


  A
  look
  grass1

         

S->A (what A sees):


  A
  sight
  
         grass1
         terrain
         
                path1
                tree1
         
         Grass plains
         
                0,010,010,10
                0,100,0
         
  

         

A->S (look again specific objects):


  
         A
         look
         path1
  
  
         A
         look
         tree1
  

         

S->A (what A sees):


  
         A
         sight
         
                path1
                road
                
                  A
                  B
                
                grass15,0
                Path
                
                  
                  0,02,02,10
                  0,100,0
                
         
  
  
         A
         sight
         
                tree1
                tree
                grass11,3
                Tree
                5.6
         
  

         

A->S (look at B):


  A
  look
  B

         

S->A (what A sees):


  A
  sight
  
         B
         human
         path16,4
         Player B, bla bla
         
                 swordB
         
  

         

[A looks at swordB and receivers answer]

B<->S: similar


Appearing and movement

Then a monster jumps from a tree branch and goes for them.

S->A (A sess Geeklizard jumping):


  
         A
         appear
         
                M
                tree10,0,3.0
         
  
  
         A
         sight
         
                jump 
                
                  M
                  grass10.5,3.0,0.0
                
         
  

         


Description

The monster is a geeklizard: a computer user who became green and lizard like after staring too long at his computer.

A->S (looks at M: similar to earlier looking)

S->A (send info about M: note multiple inheritance)


  A
  sight
  
         M
         humanlizard
         grass10.6,3.0,0.0
         Geeklizard
         3,0
  

         

A->S (get lizard type):


  A
  get
  lizard

         

S->A (Lizard is green):


  A
  info
  
         lizard
         monster
         Green
  

         


Spell casting and results

The geeklizard will try to slay them by talking them to death. It will start by a story about the advantage of calcium in the development of the infant. That speak is magic and will cause A to fall asleep,

M->S ('cast' magical speech):


  M
  sleepy bore 
  
         talk
         blah blah calcium blah blah
  
  
         spell
         sleep
  

         

S->A (notice spell and fall asleep):

B->S (get 'sleepy bore' op: see above Lizard for example)
S->B: