發表文章

目前顯示的是 5月, 2021的文章

nature online 的架構

圖片
nature online, no是以 多人連線版本吃金幣的人 為基礎所建立起來的一個網路架構實驗平台。 雛形版本功能如下: - 分散式的網路伺服器架構,後端使用mysql。 - 使用2張測試地圖,隨時可以任意切換至任意地圖任意位置。 - 地圖物件有二種:tree,bug。 - tree物件應用 生命遊戲規則 生成及更新。 - bug物件應用 基因算法 活動,食物為tree物件。 - 自動同步client可見視野內的內容。 - 使用 good 為client成象引擎。 新增功能如下: - 可監控,動態增減server節點。 - 新增地圖物件:bird,base,ship。 - bird物件應用 鳥群算法(boids) 控制。 - base物件對應每一個帳號在地圖上的基地。 - ship物件為bot/testclient自動從base出發前往地圖採集tree物件得到log資源。 -  調整 自動同步client可見視野內的內容機制提升效能。 no底層是以 smallworld2 的Bigworld架構為基礎再往上架構出來的一個分散式game server架構,每一個server都是一個Bigword節點,設定好conf後Bigworld底層會自動建立並保持節點關係。底下是架構圖: center:這是所有server的server,所有server都需要連線到它。center作為一個中央控制server,可以作其它server的訊息轉發者,也能夠控制其它server的開關。 login:負責轉發client的登入,因此每一台login都知道所有其它game的存在。login登入center後,即註冊自己讓client可以在登入時隨機選一台login作登入。 game:game負責gameplay功能實作。client由login登入game時,是由login幫client隨機選擇一個game登入。 client:client登入時由指定url取得一隨機login位址,登入login後再由login轉發至隨機一台game。client登入game後即和login斷線。 db:db負責作為no架構裡mysql的代理,所以狀態讀寫都針對db,再由db對mysql讀寫。client登入game後,game即向db讀取和此client有關的帳號資料。遊戲過程中有任何變化需要儲存即