簡易檢索 / 詳目顯示

研究生: 林秝安
Li-An Lin
論文名稱: 具自動拓展無縫更新功能之巨量單人遊戲伺服器架構研究
A Study on Massive Single-player Game Server with Auto-scaling and Seamless Updating Functionality
指導教授: 戴文凱
Wen-Kai Tai
口試委員: 沈上翔
SHAN-HSIANG SHEN
葉奕成
I-Cheng Yeh
學位類別: 碩士
Master
系所名稱: 電資學院 - 資訊工程系
Department of Computer Science and Information Engineering
論文出版年: 2019
畢業學年度: 107
語文別: 中文
論文頁數: 53
中文關鍵詞: 遊戲伺服器伺服器架構無縫更新
外文關鍵詞: Game Server, Server Architecture, Seamless Update
相關次數: 點閱:238下載:33
分享至:
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報

近年線上遊戲的興起,許多文獻提出遊戲伺服器的方法與架構,大部分的方法與架構都探討如何解決多人連線的相關問題,甚少提及遊戲平台的問題。雖然市面上已經擁有許多遊戲平台,但有些平台服務還不夠完善,造成遊戲開發商需要花大量時間去處理不關於遊戲內容的部分或是遊戲平台支援的遊戲類型具有限制性。因此,我們的目的為,建置遊戲平台既可支援多類型的單人遊戲,也可提供一些平台服務例如拓展、斷線、更新服務,降低遊戲開發商開發遊戲的成本,提高開發遊戲的效率之外,更能便利的支援多種類型之單人遊戲。

在本論文中,我們將建構遊戲平台;以及提出串接遊戲之解決方案 — 遊戲開發商可以用不同程式語言實作遊戲伺服器提供之API,接著利用Docker的技術打包成Image,最後於平台中的資料庫進行些微調整,讓遊戲伺服器能支援更多種類的單人遊戲;此外提出無縫更新數學伺服器之方法 — 遊戲開發商修改完數學伺服器後,利用Docker技術對Image進行壓縮,接著上傳至管理伺服器進行解壓,並輔助部屬於Kubernetes之上,最後遊戲伺服器於玩家進入結算狀態時進行更新,並建立輕量級的更新伺服器服務介面;最後提出四大項關鍵績效指標協助評比遊戲平台伺服器。

最後本篇論文成功建置遊戲平台、支援多種類的遊戲伺服器以及輔助更新的管理伺服器,並與現有遊戲平台進行關鍵績效指標,可以看出我們為了降低玩家受到更新影響的程度,略微增加新增遊戲的難易度。此外,在網路上處理效率也比其他架構好。最後並實際測試我們提出的無縫更新功能與其他未具備的之間的差異,從結果上,對於玩家的遊玩體驗無縫更新是有必要的。


In recent years, the rise of online games, many literatures proposed the method and architecture of the game server, most of the methods and architectures explore how to solve the problem of multiplayer connection, and rarely mention the problem of the game platform. Although there are already many game platforms on the market, some platform services are not perfect enough, which makes it necessary for game developers to spend a lot of time dealing with the parts that are not related to the game content or the types of games supported by the game platform. Therefore, our goal is to build a game platform that can support multiple types of single-player games, as well as provide some platform services to reduce the cost of game developers developing games.

In this paper, we will build a game platform; and propose a solution for a cascaded game — game developers can implement APIs provided by the game server in different programming languages, then package them into Image using Docker's technology, and finally adjust its configurations in the database. That allows the game server to support a wider variety of single-player games; in addition, the method of seamlessly updating the math server allows the player to update at the correct timing and establish a lightweight update server service interface. Finally, four key performance indicators are proposed to assist in the evaluation of the game platform server.

Finally, this paper successfully builds a game platform, supports a variety of game servers and an auxiliary update management server, and performs key performance indicators with existing game platforms. And actually test the difference between our proposed seamless update function and other unsupported, from the results, it is necessary to seamlessly update the player's play experience.

論文摘要. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . II 誌謝. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . III 目錄. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IV 圖目錄. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VII 表目錄. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IX 資料結構目錄. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X 1 緒論. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1 研究背景與動機. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 研究目的. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.3 方法概述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.4 研究貢獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.5 本論文之章節結構. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2 相關工作. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.1 Server Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.1.1 Client-Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.1.2 Peer-to-Peer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.1.3 Multi-Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.1.4 總結. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2 Existed Gaming Platform . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.3 Docker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.4 總結. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3 研究方法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.1 Key Performance Indicators . . . . . . . . . . . . . . . . . . . . . . . . 12 3.1.1 遊戲開發. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.1.2 網路. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.1.3 運營. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.1.4 玩家. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.2 遊戲平台伺服器架構. . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.3 串接遊戲之解決方案. . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.3.1 RESTful API . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.3.2 Database Schema . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.4 無縫更新. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.4.1 Update Game . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.4.2 Game Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.5 自動拓展. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 4 實驗結果. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 4.1 Golang & .NET Core . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 4.2 評比Game Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 4.2.1 遊戲開發. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 4.2.2 網路. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.2.3 運營. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.2.4 玩家. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.3 更新影響. . . . . . . . . . . . . . . . . .. . . . . . . . . 34 5 結論與未來工作. . . . . . . . . . . . . . . . . . . . . . . . . 37 5.1 貢獻與結論. . . . . . . . . . . . . . .. . . . . . . . . . . . 37 5.2 未來工作. . . . . . . . . . . . . . .. . . . . . . . . . . . . 37 參考文獻. . . . . . . . . . . . . . . . . . . . . 38 附錄A:Database Schema . . . . . . . . . . . . . . . . . . . . . . . . . 40

[1] M. Merabti and A. E. Rhalibi, “Peer-to-peer architecture and protocol for a massively multiplayer online game,” in IEEE Global Telecommunications Conference
Workshops, 2004. GlobeCom Workshops 2004., Nov. 2004, pp. 519–528.
[2] Leo, “從實驗室到掌中:電子遊戲產業發展歷程,” 2018, accessed on: Jun 2019. [Online]. Available: https://www.stockfeel.com.tw/%E9%9B%BB%E7%8E%A9%E7%94%A2%E6%A5%AD-%E9%9B%BB%E5%AD%90%E9%81%8A%E6%88%B2-%E6%89%8B%E9%81%8A/
[3] H. Engelbrecht and J. S. Gilmore, “Pithos: Distributed storage for massive multi-user virtual environments,” ACM Transactions on Multimedia Computing, Communications, and Applications, vol. 13, pp. 1–33, Jul. 2017.
[4] Valve Corporation, “Steam,” 2019, accessed on: Jun 2019. [Online]. Available:
https://store.steampowered.com/
[5] Supercell Inc., “Brawl stars,” 2018, accessed on: May 2019. [Online]. Available: https://supercell.com/en/games/brawlstars/
[6] XIANG SHANG GAMES, “老子有錢官網,” 2019, accessed on: Jul 2019. [Online]. Available: https://www.08online.com/Mvc/Home/Index/
[7] R. T. Fielding, “Architectural styles and the design of network-based software architectures,” Ph.D. dissertation.
[8] Wikipedia, “Stevedore — Wikipedia, the free encyclopedia,” 2019, accessed
on: Jun 2019. [Online]. Available: https://en.wikipedia.org/w/index.php?title=
Stevedore&oldid=900914076
[9] Wikipedia, “Kubernetes — Wikipedia, the free encyclopedia,” 2019, accessed
on: Jun 2019. [Online]. Available: https://en.wikipedia.org/w/index.php?title=
Kubernetes&oldid=903021989
[10] Google Inc., “Go,” 2009, accessed on: Jan 2019. [Online]. Available: https:
//golang.org/
[11] F. Lamberti and A. Sanna, “A streaming-based solution for remote visualization of 3D graphics on mobile devices,” Visualization and Computer Graphics, IEEE Transactions on, vol. 13, pp. 247–260, Apr. 2007.
[12] R. Pellerin, F. Delpiano, E. Gressier-Soudan, and M. Simatic, “Gasp: un intergiciel pour les jeux en réseaux multijoueurs sur téléphones mobiles,” in Proceedings of the 2Nd French-speaking Conference on Mobility and Ubiquity Computing, ser. UbiMob’05. New York, NY, USA: ACM, 2005, pp. 61–64.
[13] A. M. Khan, I. Arsov, M. Preda, S. Chabridon, and A. Beugnard, “Adaptable clientserver architecture for mobile multiplayer games,” in Proceedings of the 3rd International ICST Conference on Simulation Tools and Techniques, ser. SIMUTools ’10. ICST, Brussels, Belgium, Belgium: ICST (Institute for Computer Sciences, Social- Informatics and Telecommunications Engineering), 2010, pp. 11:1–11:7.
[14] GW Inc., “GW,” 2017, accessed on: Jun 2019. [Online]. Available: https:
//game.shicai-intl.com/
[15] Google Inc., “Agones,” 2018, accessed on: Dec 2018. [Online]. Available:
https://agones.dev/site/
[16] Docker Inc., “What is a container?” 2019, accessed on: Jan 2019. [Online].
Available: https://www.docker.com/resources/what-container
[17] G. Redelinghuys, “Docker Doom,” 2015, accessed on: Nov 2018. [Online].
Available: https://gideonred.com/dockerdoom/
[18] S. Garcia and S. Sinha, “Docker Arcade,” 2016, accessed on: Nov 2018. [Online]. Available: https://hybridivy.wordpress.com/2016/06/03/how-we-came-up-with-docker-arcade/
[19] Wikipedia, “.net core — Wikipedia, the free encyclopedia,” 2019, accessed on:
Jan 2019. [Online]. Available: https://en.wikipedia.org/w/index.php?title=.NET_
Core&oldid=904063994
[20] Apache Software Foundation, “Apache jmeter,” 1998, accessed on: Jun 2019.
[Online]. Available: https://jmeter.apache.org/

QR CODE