Portal 和伺服器

Internet│  ┌──────────┐ ┌─┐           ┌─┐ ┌─────────┐
        │  │Portal    │ │S│   ┌───┐   │S│ │Server   │
    P   │  │          │ │e│   │AMP│   │e│ │         │
    l ──┼──┤ Telnet   ├─┤s├───┤   ├───┤s├─┤         │
    a   │  │ Webclient│ │s│   │   │   │s│ │ Game    │
    y ──┼──┤ SSH      ├─┤i├───┤   ├───┤i├─┤ Database│
    e   │  │ ...      │ │o│   │   │   │o│ │         │
    r ──┼──┤          ├─┤n├───┤   ├───┤n├─┤         │
    s   │  │          │ │s│   └───┘   │s│ │         │
        │  └──────────┘ └─┘           └─┘ └─────────┘
        │Evennia

_Portal_和_Server_構成Evennia的兩個主要部分。

這是兩個獨立的 twistd 程式,可以從遊戲內部或從指令列進行控制,如 Running-Evennia 檔案 中所述。

  • Portal 瞭解有關網際網路協定(telnet、websockets 等)的一切,但對遊戲知之甚少。

  • 伺服器瞭解遊戲的一切。它知道玩家已連線,但現在知道他們_如何_連線。

這樣做的效果是您可以完全reload伺服器並且讓玩家仍然連線到遊戲。一旦伺服器恢復,它將重新連線到 Portal 並重新同步所有玩家,就像什麼都沒發生一樣。

Portal 和伺服器旨在始終在同一臺電腦上執行。它們透過AMP(非同步訊息協定)連線黏合在一起。這使得兩個程式能夠無縫通訊。