官术网_书友最值得收藏!

1.1 每走一步都有事情發生

從玩家的角度來看,一款網絡游戲大都會涉及如下流程:

1)打開游戲,客戶端向服務端發起網絡連接。

2)玩家輸入賬號密碼,經過驗證后,進入游戲場景。

3)操作交互,比如行走、打怪、購買道具等。

4)下線退出游戲。

在此過程中,藏在幕后的服務端做了很多事情,那究竟做了哪些?此服務端系統又是如何開發的呢?下面一起來看看。

1.1.1 走路的五個步驟

從玩家的視角來看,整個游戲系統如圖1-2所示,多個客戶端通過網絡與服務端相連,服務端處理網絡請求,存儲角色數據。

圖1-2 服務端像個黑盒子

說明:為了統一術語,本書中“玩家”代表玩游戲的人,“客戶端”代表玩家接觸的游戲程序,“角色”代表玩家控制的游戲角色。

客戶端和客戶端之間通過服務端間接通信。例如在MMORPG中,角色A移動一步,玩家B會在自己屏幕中看到角色A的位置變化,“走路”的背后至少發生了表1-1所示的5件事情。

表1-1 “走路”背后發生的事情

這5件事情如圖1-3所示,其中標注的①到⑤分別對應表1-1中的各個步驟。

圖1-3 位置同步的5個步驟

1.1.2 服務端視角的游戲流程

在服務端的“眼里”,“走路”只是它生命里的一小部分。游戲啟動,每個客戶端都會有連接、登錄中、游戲中、登出中和退出五個階段。如圖1-4所示,圖中縱軸代表客戶端的狀態,方框表示該狀態下執行的操作。

連接階段:客戶端發起網絡連接,雙端可以通信,但服務端還不知道玩家控制的是哪個角色。

圖1-4 服務端視角下的游戲流程

·登錄中:客戶端發送登錄協議,協議中包含賬號、密碼等信息,待檢驗通過后服務端會將網絡連接與游戲角色對應起來,并從數據庫中獲取該角色的數據(比如金幣數量),此后才算登錄成功。

·游戲中:雙端互通協議,玩家可以移動、打怪、購買道具。1.1.1節介紹的位置同步就是發生在這個階段。

·登出階段:玩家下線,服務端把角色的數據保存到數據庫中。對于保存角色數據的時機,不同的游戲會有不同的處理方式。比如,有些游戲采用定時存儲的方式,每隔幾分鐘把在線玩家的數據寫回數據庫;有些游戲采用下線時存儲的方式,即只有在玩家下線時才保存數據。

了解了這些知識后,如果想開發一個游戲服務端,該從哪里著手呢?

主站蜘蛛池模板: 远安县| 海城市| 尼玛县| 罗定市| 高碑店市| 远安县| 宁城县| 扎鲁特旗| 辽宁省| 来凤县| 玉溪市| 大渡口区| 鄯善县| 洞口县| 柯坪县| 凤翔县| 洞口县| 黑龙江省| 乐平市| 泰顺县| 塔城市| 九龙坡区| 崇明县| 沙河市| 井研县| 江西省| 鹤庆县| 双鸭山市| 磐石市| 永清县| 雷波县| 遂昌县| 白沙| 湘潭市| 海丰县| 岚皋县| 石台县| 泸水县| 桑日县| 印江| 晋中市|