[分享] 減少物件數量 入門篇

本文转载自小猫的世界MUD,原文链接:https://catworld.muds.me/forum/viewtopic.php?f=23&t=739

mudos 運作時, 會對系統內建立的物件進行管理, 如 clean_up/reset/heart_beat 等等

物件數量越多, 系統 loading 也就越重, 自然發生 lag 的情形就會比較頻繁

下面介紹一個觀念, 不用變更 mudos 與 mudlib 的架構 技術含量很低, 效果也只是普通, 所以稱之為入門篇 XD


延遲建立物件

簡單說, 就是只有在需要的時候才建立物件 盡量減少系統同一時間點的物件數量


例如 NPC 通常身上會放置一些任務道具, 或是金錢, 供擊殺者拾取

inherit NPC;

void create() {

// ...中略

    // 當 NPC 建立時, 也建立金錢物件
    // 如果這隻 mob 沒沒無聞, 那身上的錢就會一直佔據系統的資源
    add_money("silver", 50);
}

稍微調整後

inherit NPC;

void create() {

// ...中略

}

void die() {
    // 在 NPC 掛點後, 才建立金錢物件, 在此之前不佔用系統資源
    add_money("silver", 50);

    ::die();
}

這樣的調整, 對玩家來說是沒有任何感覺的 基本上也不會有任何副作用, 卻能有效降低系統 loading

京ICP备13031296号-4