已閱讀5頁,還剩46頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
I摘 要隨著互聯(lián)網(wǎng)技術(shù),尤其是移動互聯(lián)網(wǎng)技術(shù)的發(fā)展,TCG集換式卡牌游戲在網(wǎng)絡(luò)游戲中占據(jù)越來越重要的地位,從早期的萬智牌、游戲王到如今火熱的爐石傳說:魔獸英雄傳,越來越多的游戲開發(fā)商都在努力打造自己的集換式卡牌游戲。集換式卡牌游戲以其上手容易,占用時間碎片化的特性以及豐富的趣味性和對抗性,成功擁有了大批忠實玩家,也成為了游戲廠商盈利的重要手段。伴隨著市場激烈競爭的是游戲研發(fā)技術(shù)的不斷革新,游戲服務(wù)端從最初的簡單http服務(wù)器,到初成架構(gòu)的MudOS服務(wù)器,再到為 MMORPG應(yīng)運而生的“通信,邏輯,存儲” 的模塊化服務(wù)端,以及時下熱門的基于動態(tài)負(fù)載均衡的分級服務(wù)端,游戲服務(wù)端研發(fā)技術(shù)也趨于成熟。本文從筆者畢業(yè)設(shè)計中研發(fā)的集換式卡牌游戲星際傳說服務(wù)端出發(fā),通過游戲服務(wù)端的通信協(xié)議、C/S架構(gòu)、設(shè)計模式和數(shù)據(jù)庫技術(shù)等方面淺談當(dāng)下TCG游戲服務(wù)端的設(shè)計與實現(xiàn)。 關(guān)鍵詞:集換式卡牌游戲;服務(wù)端設(shè)計;設(shè)計模式;C/S 架構(gòu)IIAbstractWith the development of the Internet technology, especially the mobile Internet technology, TCGs(Trading Card Game) are taking a more important position in online games. From Magic The Gathering in the 1990s, the Yu-Gi-Oh Card Game in the early twenty-first century to the Hearth Stone: Heroes of Warcraft in recent years, more and more game companies are developing their own TCGs. For its features of easy to get started, not time consuming, abundant interest and antagonism, TCGs have earned plenty of loyal fans, and also become an important tool for game companies to make benefits.Breakthroughs of game developing techniques come with the fierce competition, from the simple http server, preliminarily structured MudOS server, communication, problem domain, data storage modular server, which is built to meet the need of MMORPG, to the popular hierarchical game server based on dynamic load balancing, the techniques of game server developing have become mature recently.In this paper, I will introduce the design and realization of TCG server through communication protocol, C/S structure, design pattern and database techniques by the game I developed during my graduation project.Key words:TCG; server design; designing pattern; C/S structureII目 錄摘 要 .IAbstract .II1 緒論 .11.1 研究背景,目的及意義 .11.2 國內(nèi)外研究現(xiàn)狀 .11.3 研究內(nèi)容和論文結(jié)構(gòu) .32 相關(guān)技術(shù)概述 .42.1 Cocos2d-x 游戲引擎簡介 .42.2 C/S 架構(gòu)簡介 .42.3 Socket 通信技術(shù)簡介 .42.4 服務(wù)端設(shè)計模式概述 .52.5 IntelliJ IDEA 簡介 .62.6 MySQL 數(shù)據(jù)庫引擎簡介 .72.7 本章小結(jié) .73 集換式卡牌游戲服務(wù)端需求分析 .83.1 系統(tǒng)用戶用例分析 .83.2 系統(tǒng)功能性需求分析 .93.3 系統(tǒng)非功能性需求分析 .143.4 本章小結(jié) .164 集換式卡牌游戲服務(wù)端設(shè)計 .174.1 系統(tǒng)總體設(shè)計 .174.1.1 系統(tǒng)上下文定義 .174.1.2 系統(tǒng)軟件結(jié)構(gòu)設(shè)計 .174.2 系統(tǒng)主要功能模塊的設(shè)計 .184.2.1 網(wǎng)絡(luò)通信模塊 .184.2.2 登錄注冊模塊 .194.2.3 玩家對戰(zhàn)模塊 .204.2.4 商城模塊 .214.2.5 卡牌收藏模塊 .22III4.2.6 好友模塊 .244.3 數(shù)據(jù)庫設(shè)計 .264.3.1 數(shù)據(jù)庫概念設(shè)計 .264.3.2 數(shù)據(jù)庫詳細(xì)設(shè)計 .264.4 系統(tǒng)安全性設(shè)計 .304.4.1 網(wǎng)絡(luò)安全設(shè)計 .314.4.2 數(shù)據(jù)庫安全設(shè)計 .314.5 本章小結(jié) .315 系統(tǒng)實現(xiàn) .325.1 系統(tǒng)開發(fā)環(huán)境 .325.2 系統(tǒng)各功能模塊的實現(xiàn) .325.2.1 網(wǎng)絡(luò)通信模塊實現(xiàn) .325.2.2 玩家對戰(zhàn)模塊實現(xiàn) .335.2.3 數(shù)據(jù)庫訪問模塊實現(xiàn) .345.2.4 商城模塊實現(xiàn) .345.2.5 好友模塊實現(xiàn) .355.3 本章小結(jié) .366 系統(tǒng)測試 .376.1 功能測試用例 .376.2 性能測試用例 .386.3 測試結(jié)果 .386.4 本章小結(jié) .387 總結(jié)與展望 .397.1 全文總結(jié) .397.2 展望 .39致 謝 .41參考文獻 .421 緒論1.1 研究背景,目的及意義TCG 是英文Trading Card Game的首字母縮寫,中文學(xué)名是集換式卡牌游戲。1 顧名思義, TCG 需要游戲者購買卡牌擴充包來拓展自己的牌庫,然后根據(jù)一定的策略,靈活組合各類型的卡牌來構(gòu)筑一副符合游戲規(guī)則的套牌,玩家之間使用自行構(gòu)筑的套牌進行游戲。 2因為每個玩家構(gòu)筑卡組的思路和策略不同,加上每局游戲中玩家抽到卡牌的順序也不同,可以給游戲?qū)謳頂?shù)不勝數(shù)的變數(shù) 3,這也是 TCG 吸引玩家的最大玩點。筆者在 2017 年 1 月至 2017 年 5 月參與了集換式卡牌游戲星際傳說的研發(fā)工作,在項目組中負(fù)責(zé)游戲服務(wù)端的設(shè)計與實現(xiàn),游戲出色地體現(xiàn)了 TCG 多變的策略和豐富的可玩性,而筆者也積累了一定服務(wù)端研發(fā)的實踐經(jīng)驗。為本文的撰寫打下了基礎(chǔ)。本文研究的目的在于通過對當(dāng)下 TCG 服務(wù)端研發(fā)的技術(shù)的分析和實踐,總結(jié)出集換式卡牌游戲服務(wù)端設(shè)計與實現(xiàn)中實用的項目結(jié)構(gòu)和研發(fā)技術(shù),為今后TCG 的研發(fā)者提供可以借鑒的經(jīng)驗。1.2 國內(nèi)外研究現(xiàn)狀美國數(shù)學(xué)教授查理加菲于 1993 年 8 月設(shè)計了世界上第一款集換式卡牌游戲萬智牌(Magic The Gathering),游戲以西方神話故事為背景,玩家在游戲中收集武器,魔法和生物等不同類型的卡牌來構(gòu)筑自己的套牌, 4以模擬遠(yuǎn)古時期魔法師之間的對決。游戲一經(jīng)推出便俘獲了大量玩家,時至今日,萬智牌在全球已擁有約 600 萬名玩家。而日本也在 1999 年推出了游戲王卡牌游戲 ,這款由漫畫衍生出作品在集換式卡牌游戲中擁有里程碑式的意義 5,游戲首次將東西方文化元素巧妙地進行了融合,在卡牌的種類上相對于之前的集換式卡牌游戲也有極大的豐富,并且首創(chuàng)了卡牌蓋伏和正面表示的狀態(tài),以及怪物卡在不同的階段擁有的反轉(zhuǎn)、啟動、永續(xù)、誘發(fā)、即時誘發(fā)和規(guī)則改變效果都極大豐富了游戲的策略和可玩性,因此, 游戲王卡牌游戲也是吉尼斯世界紀(jì)錄認(rèn)證的全球最高銷量的集換式卡牌游戲 6。美國游戲公司暴雪娛樂于 2014 年 3 月發(fā)行的爐石傳說:魔5獸英雄傳則開創(chuàng)了集換式卡牌游戲的新時代。游戲?qū)⒆约覠衢T IP魔獸世界作為游戲背景,簡化了游戲復(fù)雜度和游戲進程,使得集換式卡牌游戲更加平民化,更加容易上手。同時, 爐石傳說:魔獸英雄傳也推出了每日任務(wù),讓玩家可以通過完成任務(wù)來獲取更多卡牌,不斷推出的游戲新環(huán)境和新機制也使得游戲保持著經(jīng)久不衰的活力 7。在我國,由于游戲研發(fā)技術(shù)和互聯(lián)網(wǎng)技術(shù)起步較晚,集換式卡牌游戲的出現(xiàn)也比國外遲。在國產(chǎn)集換式卡牌游戲中,最具有代表性的作品就是 2009 年面市的三國智 8了,游戲結(jié)合了集換式游戲元素和國內(nèi)玩家熱衷的三國題材,以卡牌對戰(zhàn)的形式展示了三國時期爾虞我詐,群雄逐鹿的風(fēng)云故事。在集換式卡牌游戲發(fā)展歷程中,游戲的研發(fā),特別是服務(wù)端的研發(fā)技術(shù)也經(jīng)歷了多次的更新?lián)Q代 9。最初的網(wǎng)絡(luò)游戲借助 HTTP 協(xié)議來完成客戶端和服務(wù)端之間的簡單通信,數(shù)據(jù)格式,數(shù)據(jù)量和傳輸速度都有很大的限制,這一階段的游戲服務(wù)端通常是一個靜態(tài)的服務(wù)器,只能按照規(guī)定好的規(guī)則返回簡單數(shù)據(jù),通常采用的編程語言是 C 語言,C+或者 Pascal10。在后續(xù)的發(fā)展中,人們?yōu)榱撕喕?wù)端程序編譯、調(diào)試和維護的過程,開始嘗試使用腳本語言研發(fā)服務(wù)端,1987年 Perl 語言和 1994 年 PHP 語言的問世,使得服務(wù)端的研發(fā)技術(shù)正式進入腳本化的時代 11。隨著服務(wù)端需求的不斷提升和研發(fā)技術(shù)的完善,多種適用于服務(wù)端研發(fā)的語言不斷出現(xiàn),同時也逐漸形成了 Web 應(yīng)用的行業(yè)標(biāo)準(zhǔn),即 Java 陣營的J2EE 和 Windows 陣營的 .Net 為開發(fā)者提供了解決不同需求的服務(wù)端的技術(shù)標(biāo)準(zhǔn)和通用解決方案,此時,服務(wù)端引擎的概念也逐漸產(chǎn)生,游戲服務(wù)端也從弱交互型服務(wù)器不斷向強交互型服務(wù)器轉(zhuǎn)變 12。到了 2000 年前后,網(wǎng)絡(luò)游戲進入全面圖形化時代,用戶的數(shù)據(jù)量也日益增多,頻繁的小文件讀寫和傳輸給服務(wù)器帶來了巨大挑戰(zhàn),這時人們開始將服務(wù)端拆分為邏輯服務(wù)端和數(shù)據(jù)庫服務(wù)端兩部分,邏輯服務(wù)端專門處理用戶的各類請求,而數(shù)據(jù)庫服務(wù)端專注于數(shù)據(jù)持久化工作,一些成功的商用數(shù)據(jù)庫引擎例如 Oracle 和 MySQL 開始被廣泛應(yīng)用于服務(wù)端的開發(fā)中 13。此時的網(wǎng)絡(luò)游戲,由于游戲需要經(jīng)常更新新的內(nèi)容來留住玩家,服務(wù)端也需要不斷換代升級來滿足客戶端與玩家交互的需求,因此人們開始使用更加利于拓展和維護的編程語言,如 Python 和 Lua 語言,更加親近自然語言的面向?qū)ο笳Z言使得開發(fā)工作更高效 14。服務(wù)端引擎也開始運用到開發(fā)中,因為 Python 這樣的腳本語言可以很方便的調(diào)用編譯好的 C 語言程序來執(zhí)行邏輯操作,因此服務(wù)6端引擎通常由底層的引擎核心、腳本解釋器和外層的若干腳本組成,引擎的內(nèi)核通常由純 C 語言或者 C+編寫,它不負(fù)責(zé)任何具體的邏輯需求的處理,只把服務(wù)端的需求分類、抽象為若干個基本借口,每個接口通常只負(fù)責(zé)一項簡單的任務(wù),并對外層的腳本提供接口 15,而外層的腳本則運行在一個高效率的解釋器上,負(fù)責(zé)有序地組織和調(diào)用底層內(nèi)核提供的開發(fā)接口,而解釋器則是把 Python 或其他腳本中的函數(shù)調(diào)用指向?qū)?yīng)的底層引擎借口,并返回執(zhí)行結(jié)果給腳本層,如此一來服務(wù)端的開發(fā)進入了全面模塊化和分層化的階段 16,它所帶來的好處是顯而易見的,首先,引擎內(nèi)核與任何具體的業(yè)務(wù)邏輯無關(guān),內(nèi)核開發(fā)人員只需要專注于優(yōu)化底層 API 的效率和穩(wěn)定性,負(fù)責(zé)業(yè)務(wù)邏輯開發(fā)的人員不需要了解任何引擎實現(xiàn)的原理,只需要按需調(diào)用內(nèi)核 接 口 來 完 成 業(yè) 務(wù) 邏 輯 的 需 求 , 細(xì) 化 了 開 發(fā) 人 員 的 工作 范 圍 和 簡 化 了 開 發(fā) 流 程 17。 其 次 , 由 于 腳 本 維 護 和 拓 展 的 便 利 性 , 游 戲 需 求 更改 時 , 往 往 不 需 要 重 啟 服 務(wù) 器 , 只 是 將 對 應(yīng) 業(yè) 務(wù) 邏 輯 的 腳 本 做 相 應(yīng) 修 改 , 再 重 新 發(fā)布 腳 本 即 可 , 節(jié) 省 了 服 務(wù) 器 運 營 的 成 本 , 也 方 便 開 發(fā) 人 員 快 速 、 精 確 定 位 上 線 項 目的 bug 并 作 相 應(yīng) 的 修 改 18。目前,國內(nèi)游戲研發(fā)采用的服務(wù)端引擎大致分為 2 類,第一類是自我定制的開源引擎,如 KBEngine 和 Photon 等。另一類則是自主研發(fā)的引擎,通常有較強研發(fā)實力的游戲公司會采取后者,而前者不失為一種節(jié)省時間和成本的好選擇 19。1.3 研究內(nèi)容和論文結(jié)構(gòu)(1)本文內(nèi)容概述:本文以筆者參與研發(fā)的集換式卡牌游戲星際傳說為例,從需求分析,項目設(shè)計,項目實現(xiàn)和系統(tǒng)測試等方面詳細(xì)闡述了一個集換式卡牌游戲服務(wù)端的開發(fā)過程和開發(fā)技術(shù)總結(jié)。(2)本文的內(nèi)容組織與結(jié)構(gòu)安排如下:第一章,介紹本文的課題研究背景、目的和意義,以及國內(nèi)外研究現(xiàn)狀。第二章,介紹星際傳說項目開發(fā)用到的開發(fā)技術(shù),開發(fā)工具和開發(fā)環(huán)境。第三章,從系統(tǒng)功能性需求和非功能性需求詳細(xì)分析項目需求。第四章,根據(jù)需求分析,對系統(tǒng)做模塊劃分,并詳細(xì)設(shè)計每個模塊的功能。7第五章,詳細(xì)介紹每個模塊功能的實現(xiàn)方式。第六章,詳細(xì)介紹系統(tǒng)采取的測試方法,測試結(jié)果和由此得出的結(jié)論。第七章,詳細(xì)描述筆者的論文總結(jié)和展望。82 相關(guān)技術(shù)概述2.1 Cocos2d-x 游戲引擎簡介我參與研發(fā)的游戲星際傳說使用了 Cocos2d-x 3.10 作為游戲客戶端引擎。這是一個跨平臺的開源游戲引擎,在 2D 圖像圖形渲染上有獨特的優(yōu)勢。Cocos2d-x 的一大特性是它的跨平臺性,引擎允許開發(fā)者使用 C+,node.js 和Lua 在多個平臺上部署項目,并不需要對項目做太多針對平臺的修改。Cocos2d-x引擎采用 OpenGL ES 進行圖形渲染,能夠充分利用系統(tǒng)硬件性能,同時Cocos2d-x 目前已集成了大量第三方庫,尤其是圖形和動畫特效的第三方庫,為開發(fā)者提供了簡介易用且高效的開發(fā)模板 20。引擎的另一大優(yōu)勢是開源,這使得有經(jīng)驗的開發(fā)者可以根據(jù)自己的需求自我修改引擎的模塊來提升游戲運行的效率,自我定制的 Cocos2d-x 引擎在目前國內(nèi)游戲公司的開發(fā)中使用非常普遍,開源社區(qū)也提供了對引擎優(yōu)化的技術(shù)支持 21。2.2 C/S 架構(gòu)簡介C/S 架構(gòu)全稱 Client/Server 架構(gòu),是將應(yīng)用程序的邏輯通過合理劃分,分別部署在客戶端和服務(wù)端,在采用 C/S 架構(gòu)的游戲中,通常將游戲和用戶交互的 UI部分部署在客戶端,而將業(yè)務(wù)邏輯處理和數(shù)據(jù)持久化的工作部署在服務(wù)端 22。C/S 架構(gòu)有利于將客戶端和服務(wù)端的硬件性能,通常客戶端機器擁有出色的圖形渲染性能,能夠很好的完成 UI 交互的工作,而服務(wù)器通常具有較強的運算性能和并發(fā)處理的能力,能夠同時快速處理多個客戶端的需求。因此,采用 C/S架構(gòu)的軟件系統(tǒng)通常具有很快的響應(yīng)速度和高并發(fā)能力,但 C/S 架構(gòu)也有不足,客戶機需要安裝并維護客戶端程序才能使用,因此運行平臺往往受到限制,同時服務(wù)器的研發(fā)和維護需要大量成本和復(fù)雜的技術(shù)支持 23。C/S 開發(fā)架構(gòu)在目前的游戲研發(fā)領(lǐng)域有重要的應(yīng)用,許多大型客戶端游戲都采用 C/S 架構(gòu)進行開發(fā)。2.3 Socket 通信技術(shù)簡介Socket,即程序套接字,是一種實現(xiàn)網(wǎng)絡(luò)上兩個不同的程序進行雙向數(shù)據(jù)通9信的技術(shù)。網(wǎng)絡(luò)上的服務(wù)器通常都提供了多種服務(wù),每一種服務(wù)對應(yīng)一個 socket通道,并綁定到一個固定的端口上,網(wǎng)絡(luò)上其他機器通過服務(wù)器的 IP 地址和端口號來訪問服務(wù)器并使用服務(wù)器提供的相應(yīng)服務(wù) 24。Socket 通信起源于 Unix/Linux,它可以看成一個特殊的網(wǎng)絡(luò)文件, Socket 中封裝的接口,如 bind(),listen(),read(),write()和 close()等提供了一個完整的文件讀寫操作的流程。在進行通信時,通信的兩個進程間通過 IP 地址和端口號建立一個socket 連接,即一個文件讀寫的通道,然后通信雙方調(diào)用相應(yīng)的讀寫操作的方法將輸入寫入通道或者從通道
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單位管理制度呈現(xiàn)大全【職工管理】
- 《會展項目管理復(fù)習(xí)》課件
- 《市場營銷環(huán)境》課件
- 銀行工作總結(jié)服務(wù)至上效率為王
- 家政服務(wù)行業(yè)銷售工作總結(jié)
- 保育實習(xí)工作總結(jié)15篇
- 2023年項目部安全培訓(xùn)考試題加答案解析
- 2023年員工三級安全培訓(xùn)考試題及答案(考點梳理)
- 中考誓師口號(15篇)
- 2023年-2024年項目部治理人員安全培訓(xùn)考試題加答案解析
- 做賬實操-科學(xué)研究和技術(shù)服務(wù)業(yè)的賬務(wù)處理示例
- 2025年人教版歷史八上期末復(fù)習(xí)-全冊重難點知識
- 山東省濱州市2023-2024學(xué)年高一上學(xué)期1月期末考試 政治 含答案
- 儀控技術(shù)手冊-自控專業(yè)工程設(shè)計用典型條件表
- 《慶澳門回歸盼祖國統(tǒng)一》主題班會教案
- 洗衣房工作人員崗位職責(zé)培訓(xùn)
- 廣東省深圳市光明區(qū)2022-2023學(xué)年五年級上學(xué)期數(shù)學(xué)期末試卷(含答案)
- XX小區(qū)春節(jié)燈光布置方案
- 《華為銷售人員培訓(xùn)》課件
- 《廣西壯族自治區(qū)房屋建筑和市政工程施工招標(biāo)文件范本(2023年版)》
- 2024年化學(xué)螺栓錨固劑項目可行性研究報告
評論
0/150
提交評論