基於SpringBoot+SSM實現的Dota2資料庫智能管理平臺

Dota2資料庫智能管理平臺的設計與實現html

    前端

當今社會,遊戲產業蓬勃發展,如PC端的絕地求生、坦克世界、英雄聯盟,再到移動端的王者榮耀、荒野行動的火爆。都離不開科學的遊戲管理系統,遊戲管理系統當今已經受到開發者和運營者的高度重視,經過遊戲管理能夠對遊戲自身及玩法進行系統性、戰略性的調整和協調,以提升可玩性。經過對權限的控制將遊戲管理系統轉變爲面向玩家的資料庫,玩家能夠經過資料庫對Dota2信息進行由淺入深的瞭解,從而進一步提升遊戲可玩性。node

本項目是基於SpringMVC+Spring+Mybatis+SpringBoot開發的一款Dota2資料庫智能管理平臺,數據庫採用了MySQL,前端採用了ExtJs+jQuery技術。ios

關鍵詞:管理平臺;Spring MVC;SpringBoot;ExtJsgit

 


 

Design and Implementation of Dota2 Database Intelligent Management Platform程序員

Abstractgithub

In today's society, the game industry is booming, such as player unknown’s battlegrounds, world of tanks, the league of legends of the PC, the honor of the kings, and wild and action of the mobile, are inseparable from the scientific game management system, management system today has been attached great importance to developers and operators, the game itself and gameplay will be systematic and strategic adjusted to and coordinated through the game management, in order to improve playability. The game management can be transformed into a player oriented database management system through the permissions control, the player can obtain information from the game database on the game, thus he can get further enhance gameplay.web

This project is a Dota2 database intelligent management platform based on SpringMVC+Spring+MyBatis+SpringBoot. MySQL is used in the database, and ExtJs and jQuery are used in the front end.數據庫

Keywords: Management platform; Spring MVC; SpringBoot; ExtJs編程

 


 

目 錄

引言... - 1 -

第1章 緒論... - 2 -

1.1 課題研究的背景及意義... - 2 -

1.2課題的研究現狀和發展趨勢... - 2 -

1.2.1國內外發展示狀... - 2 -

1.2.2發展趨勢... - 3 -

第2章 開發工具及相關技術介紹... - 4 -

2.1 開發技術... - 4 -

2.1.1 SpringBoot - 4 -

2.1.2 SpringMVC框架... - 4 -

2.1.3 ExtJs. - 4 -

2.1.4 MyBatis. - 4 -

2.2 開發工具... - 5 -

2.2.1Intellij IDEA.. - 5 -

2.2.2Visual Studio Code. - 5 -

第3章 需求分析... - 6 -

3.1可行性分析... - 6 -

3.1.1 經濟可行性... - 6 -

3.1.2 技術可行性... - 6 -

3.1.3 操做可行性... - 6 -

3.2 系統分析... - 6 -

3.2.1 業務流分析... - 6 -

3.2.2 數據流分析... - 8 -

3.2.3 數據字典... - 9 -

3.2.4 數據庫需求分析... - 10 -

第4章 概要設計... - 12 -

4.1 系統模塊結構設計... - 12 -

4.1.1系統模塊... - 12 -

4.2 系統整體結構設計... - 14 -

4.2.1 整體結構設計功能... - 14 -

4.2.2 系統E-R圖... - 15 -

4.3 數據庫表設計... - 16 -

第5章 系統詳細設計... - 18 -

5.1系統登陸模塊... - 18 -

5.2 用戶操做模塊... - 21 -

5.3 遊戲運營人操做模塊... - 26 -

第6章 系統測試... - 28 -

6.1 系統測試的概述... - 28 -

6.2 功能性測試... - 28 -

6.3 非功能性測試... - 29 -

結論與展望... - 31 -

致謝... - 32 -

參考文獻... - 33 -

附錄... - 35 -

 

 


 

插圖清單

 

圖3-1 Dota2資料庫管理平臺玩家流程圖... - 7 -

圖3-2 Dota2資料庫管理平臺運營人流程圖... - 8 -

圖3-3 Dota2資料庫管理平臺數據流圖... - 9 -

 

圖4-1系統功能模塊結構圖... - 12 -

圖4-2 Dota2資料庫管理平臺玩家模塊流程圖... - 13 -

圖4-3 Dota2資料庫管理平臺遊戲運營人模塊流程圖... - 14 -

圖4-4 Dota2資料庫管理平臺整體結構設計功能圖... - 15 -

圖4-5 Dota2資料庫管理平臺的E-R圖... - 15 -

 

圖5-1 Dota2資料庫管理平臺平臺登錄首頁圖... - 18 -

圖5-2 Doat2資料庫登陸界面圖... - 19 -

圖5-3 Dota2資料庫登陸界面圖... - 20 -

圖5-4查看英雄信息... - 21 -

圖5-5查看物品信息... - 22 -

圖5-6 查看天賦信息... - 23 -

圖5-7物品模擬界面... - 24 -

圖5-8天賦模擬界面... - 25 -

圖5-9戰績信息模塊... - 26 -

圖5-10用戶修改表單... - 26 -

圖5-11角色分配... - 27 -

圖5-12權限分配... - 27 -

 


 

表格清單

表3-1 用戶表... - 9 -

表3-2 角色表... - 9 -

表3-3 權限表... - 9 -

表3-4 英雄表... - 10 -

表3-5 物品表... - 10 -

表3-6 天賦表... - 10 -

 

表4-1 用戶表... - 16 -

表4-2 角色表... - 16 -

表4-3 權限表... - 16 -

表4-4 英雄表... - 16 -

表4-5 物品表... - 17 -

表4-6 天賦表... - 17 -

 

表 6-1重置用戶密碼測試用例... - 28 -

表 6-2角色分配測試用例... - 28 -

表 6-3新增權限功能測試用例... - 29 -

表 6-4物品模擬功能測試用例... - 29 -

表 6-5性能測試用例... - 29 -


 


引言

隨着社會的高速發展,互聯網行業不斷髮展,尤爲是遊戲產業的快速發展,愈來愈多的人開始接觸遊戲,遊戲產業進入了高併發、大數據和數據共享時代。當今時代,遊戲運營是遊戲廠商所要應對的問題,而且玩家對遊戲信息獲取的需求日漸提升。所以一個科學的遊戲管理平臺能夠改善開發者和運營者對數據的管理,Dota2資料庫管理平臺操做簡單,玩家根據本身的需求一些獲取關於Dota2的信息。

本系統是基於SpringBoot的SSM開發,該框架是目前風靡的一種Web應用程序開源框架,其中Spring是一個輕量級的Java開發框架。前端使用jQuery、ExtJs等框架,數據訪問層使用MyBatis,採用MVC設計模式。

第1章 緒論

1.1 課題研究的背景及意義

近年來,隨着遊戲產業的大爆發,產生了大量優秀的網絡遊戲做品,遊戲已經融入不少人的生活中,遊戲品質是決定一款遊戲是否受歡迎的直接因素,但渠道商的發行與宣傳、後期的運營、版本的更新、強大的遊戲管理系統等因素交織在一塊兒才能決定它是否能延續成功,只有真正有想法的團隊、有品質的遊戲才能經得起時間的考驗,在競爭激烈的遊戲市場上存活下來。

考慮到遊戲策劃和運營人員不太瞭解編程開發,信息的可視性和靈活性較差,難以對遊戲進行有效的數據管理、便捷地對開發人員提出需求等,所以遊戲信息化、系統化管理就顯得迫在眉睫。遊戲廠商須要專業化的管理系統,提升遊戲策劃和運營人員管理效率及遊戲開發人員開發效率;玩家須要獲取遊戲數據,例如歷史戰績、英雄使用狀況和裝備屬性等,經過更加專業的角度來了解這款遊戲,如經過網頁、手機瀏覽器。以往玩家在遊戲過程當中瞭解遊戲數據會浪費玩家的遊戲時間,帶來的效率問題已經日益突出。

遊戲管理系統首先應能提供與遊戲相關的數據,不管是遊戲內容數據仍是記錄玩家行爲的數據,都應該完整地呈現給工做人員,必要時還需提供精確查找,並可以生成圖表。對於玩家,管理系統應提供部分遊戲內容數據。

1.2課題的研究現狀和發展趨勢

1.2.1國內外發展示狀

(1)框架技術國內外的研究現狀

REST全稱爲表述性狀態轉移(Representational State Transfer),一種分佈式軟件架構風格,可有效地下降系統開發的難度,增長系統可擴展性,王正華認爲,具備面向資源性、無狀態性、連通性強、方法統一等特徵的REST式架構優於面向活動的RPC和麪向服務的SOA[3]。盛偉翔等人[4]從架構風格的角度,研究瞭如何統一操做接口,下降系統耦合度,以輕量級的架構方法提升系統性能,加強系統的可見性和容錯性,優化交互方式,減小無心義的服務器任務[16]

秦姣華等人[1]提出了基於ExtJS3.2的調優方案,根據本身的須要延遲加載JS庫,江雪等人[1]認爲,能夠經過ExtJS的ViewModel的繼承特性來完成不一樣需求的數據綁定,李亞麗等人[2]提出了ExtJS能夠用來開發RIA,即富客戶端的Ajax應用,是一個用JavaScript編寫的,主要用於建立前端用戶界面,是一個與後臺技術無關的前端Ajax框架[17],Sencha中文站在2017年5月24日發佈ExtJS6.5版本,推出了ExtJS6.5 Modern toolkit,能夠爲移動設備,也能夠爲桌面應用帶來豐富的體驗[18],推出了更多的新組件以及優化大量數據管理、無縫滾動等。

(2)遊戲管理系統國內外的研究現狀

蔣偉[7]使用基於JSF-EJB3.0開發模式設計了網絡遊戲管理系統,可是該系統對遠程調用的安全機制等沒有相應的討論。王貞[10]設計實現的網絡遊戲管理系統中,代理服務器使用了基於集羣的負載均衡,失敗恢復技術,前端使用了基於靜態頁面緩存的Web加速器,前端代理服務器將大部分的靜態資源緩存起來,直接返回給訪問者,減小應用服務器的負載,該系統將數據按照不一樣策略方案劃分到不一樣的服務器上,分散數據庫的壓力。郭傑[12]對遊戲資源管理系統的各方面作了充分的討論和闡述,詳細的分析OGRE中資源管理框架的設計模式,而且分析了OGRE資源管理框架的優勢和缺點。施海華等人[8]設計了基於NGB的互動遊戲管理系統,有如下三個模塊:互動電視遊戲管理審覈模塊、互動電視遊戲管理髮布模塊及互動電視下載應用服務模塊,基於NGB的互動遊戲管理系統的建設解決了各遊戲廠商提供的遊戲沒法直接被網絡運營商運營發佈的問題,實現了對來自不一樣廠商的遊戲的審覈、發佈等統一管理功能。董歡[9]在遊戲管理系統中增強了後臺數據安全的管理,他在系統中採用了「所見即所得」設計方式,使用戶在不具有操做數據庫能力的條件下也能夠實現對數據庫數據的備份與恢復操做,可是該系統是在B/S架構上進行設計開發的,管理人員必須經過PC端網頁進行數據的獲取,不適用於手機、平板電腦等移動設備。費國俊[6]提出,隨着Symbian系統的沒落,iOS和安卓、winPhone系統的興起,針對新興的系統開發的手機遊戲的管理、推廣運營將是新的業務需求。張士鐸等人[11]採用基於LAMP的Web開發平臺,敏感數據的傳輸採用報文加密,他們認爲,經過對基本的遊戲數據統計進行數據挖掘,分析用戶的行爲模型,爲遊戲的發展戰略提供數據指導,具備更深的意義。張燦[5]將遊戲管理系統分爲五大模塊,其中數據日誌模塊包括輸入SQL語句的查詢,以及其餘相關日誌的查詢。遊戲服務器每時每刻產生的記錄大量用戶行爲的日誌,遊戲管理系統會定時將這些日誌從遊戲服務器遷移到本地,並將這些日誌讀取後存儲至數據庫,工做人員經過遊戲管理系統查詢具體日誌信息,該管理系統還包括服務器配置模塊,工做人員可經過該模塊設置服務器配置,由於遊戲有不一樣的物理服務器,針對不一樣的玩家會有不一樣的查詢結果和操做結果,所以須要配置不一樣的服務器信息。

1.2.2發展趨勢

2017年上半年國內遊戲市場收入達997.8億元(同比+26.7%,環比+14.9%);移動端市場收入達561.4億元(同比+49.8%,環比+26.3%)。其中,上半年PC端遊戲市場實際銷售收入達到319.5億元[20]

2018 年,遊戲行業發明了新的方式,如 loot boxes(戰利品寶箱)和現實加強(AR)類遊戲來吸引和娛樂玩家。遊戲行業的將來將發生改變,既有娛樂性,也充滿了創新和爭議。

預計2019年,電子遊戲市場整合將急劇加速,其中 80% 的收入來自大型上市公司。不過,2018年也有一些小型遊戲製做公司發佈了暢銷的遊戲,如《PUBG(絕地求生)》和《Cuphead(茶杯頭)》,並且這種趨勢將持續下去。獨立開發者沒有頂級公司的資源,由於較小的預算一般意味着更大的偏差幅度,但他們確實有創新的自主權[26]

 

 

 

第2章 開發工具及相關技術介紹

2.1 開發技術

本系統採用的是Java語言開發,系統主要採用了Spring MVC框架,基於SpringBoot,數據庫採用了MySQL,前端使用了ExtJs、jQuery等技術[4]

2.1.1 SpringBoot

多年以來,SpringIO平臺飽受爭議的一點就是大量的XML配置以及複雜的依賴管理。SpringBoot的目標之一就是實現免XML的開發體驗。Boot所實現的功能超出了這個任務的描述,開發人員不只再也不須要編寫XML,並且在一些 場景中甚至不須要再編寫繁瑣的import語句[13]

SpringBoot的目的不在於爲已解決的問題提供新的處理方式,而是爲平臺帶來另外一種開發體驗,從而簡化這些已有技術的應用。對於已經熟悉Spring生態系統的開發人員來講,Boot是一種很完美的選擇,不過對於使用Spring的新人來講,Boot提供一種更簡約的方式來運用這些技術。

對Java項目而言,利用maven對第三方jar包進行統一管理,豐富的第三方庫減少了開發量,提升了工做質量。

2.1.2 SpringMVC框架

       MVC是一個以設計界面應用程序爲基礎的設計模式。它主要利用分離模型、視圖及控制器在應用程序中所扮演的角色將業務邏輯從界面中分離。一般,模型負責封裝應用程序,數據在視圖層展現。視圖僅僅展現這些數據,不包含任何業務邏輯。控制器擔任接收用戶的各類請求的責任,並調用後臺服務(service和dao)來處理業務邏輯。通過處理,後臺業務邏輯層返回數據在視圖層展示,控制器蒐集這些數據及模型在視圖層展現。MVC模式的核心思想是將業務邏輯從界面中分離出來,容許它們單獨改變而不會相互影響[14]

       SpringMVC屬於SpringFramework的後續產品,已經融合在Spring Web Flow裏面。Spring框架提供了構建web應用程序的全功能MVC模塊。使用Spring可插入MVC架構,從而在使用Spring進行Web開發時,能夠選擇使用Spring的SpringMVC框架或集成其餘MVC開發框架,如Struts,Struts2等[21]

       在SpringMVC應用程序中,模型一般由POJO對象組成,它在業務層中被處理,在持久層中被持久化[22]

2.1.3 ExtJs

       ExtJs源於YUI,最早由Jack Slocun開發,採用OOP設計思想創建類庫與後臺語言無關的JavaScript框架[15],它將OOP思想發揮得淋漓盡致,然而ExtJs不只僅是個JavaScript框架,它能夠獨立於其餘JavaScript框架經過Adapter(適配器)[16]。對於後臺程序員來講,不用深知前端網頁開發技術,就能夠快速開發出相似桌面應用的用戶體驗很高的界面。一方面減小了與美工的交流,本身來開發客戶端界面,另外一方面,頁面交互能力強,可以很好地實現後臺功能。

       Ajax做爲Web2.0的核心技術之一,帶來了Web用戶體驗革命性的轉變。ExtJs做爲Ajax的客戶端UI框架,很大程度上減小了系統開發成本,同時又保證了系統的美化以及頁面響應速度。 利用 Ajax+ExtJS 組合,有效地避開了傳統 B/S 結構用戶體驗差的特色, 又具備了 C/S 結構的強交互能力,同時還具備很好的可移植性和可維護性[1]

2.1.4 MyBatis

       MyBatis是支持簡單SQL查詢、存儲過程和高級映射的優良持久層框架。MyBatis避免了一切JDBC代碼和參數的手工設置以及結果集的檢索。MyBatis使用簡單的XML或註解用於配置和原始映射,將接口和Java的POJOs(Plain Ordinary Java Objects)映射成數據庫中的記錄。

       每一個Mybatis應用程序主要都是使用SqlSessionFactoryBean實例的,一個SqlSessionFactoryBean實例,對該實例設置dataSource和映射文件xxx(mapper).xml,它將構成一個基本的MyBatis應用程序。

MyBatis的功能架構分爲三層[14]

(1)API接口層:提供給外部使用的接口API,開發人員經過這些本地API來操縱數據庫,接口層接收到調用請求就會調用數據處理層來完成具體的數據處理。

(2)數據處理層:負責具體的SQL查找、SQL解析、SQL執行和執行結果的映射處理等。它主要的目的是根據調用的請求完成一次數據庫操做。

(3)基礎支承層:負責最基礎功能的支撐,包括鏈接管理、事務管理、配置加載和緩存處理等,將他們抽取出來做爲最基礎的組件。爲上層的數據處理層提供最基礎的支撐。

2.2 開發工具

2.2.1Intellij IDEA

       本系統使用Intellij IDEA開發工具,數據庫使用可視化編輯工具Navicat for MySQL,組合完成了一套完整的資料庫管理系統,IDEA是Java語言開發的集成環境,IntelliJ在業界被公認爲最好的Java開發工具之一,尤爲在智能代碼助手、代碼自動提示、重構、J2EE支持、各種版本工具(git、svn、github等)、JUnit、CVS整合、代碼分析、 創新的GUI設計等方面的功能能夠說是超常的。IDEA是JetBrains公司的產品,這家公司總部位於捷克共和國的首都布拉格,開發人員以嚴謹著稱的東歐程序員爲主。

2.2.2Visual Studio Code

       本系統前端使用Visual Studio Code開發工具,用來編寫Html,CSS,jQuery。Visual Studio Code是一個運行於 Mac OS X、Windows和 Linux 之上的,針對於編寫現代 Web 和雲應用的跨平臺源代碼編輯器。

       該編輯器也集成了全部一款現代編輯器所應該具有的特性,包括語法高亮(syntax high lighting),可定製的熱鍵綁定(customizable keyboard bindings),括號匹配(bracket matching)以及代碼片斷收集(snippets)。Somasegar 也告訴筆者這款編輯器也擁有對 Git 的開箱即用的支持。

 

 

第3章 需求分析

3.1可行性分析

可行性分析主要就是研究這個項目是否能夠施行,而且具備必要性、迫切性、科學性等,不但能產生可觀經濟效益,並且能產生巨大社會效益、生態效益等等。用往年的數據和資料證實研究該項目是有意義的[12]

可行性分析是經過對項目的主要內容,如配套條件、設施選型、資源供給、建設規模、工藝路線、市場需求、環境影響、資金籌措、盈利能力等,從技術、經濟、工程等方面進行考查研究和分析比較,並對項目建成之後可能得到的財務、經濟效益及社會環境影響進行預測,從而提出該項目是否值得投資和如何進行建設的徵詢意見,爲項目決策提供根據的一種綜合性的系統分析措施。可行性分析應具有公正性、預見性、科學性和可靠性的特色。

可行性研究是要求以全面、系統的分析爲主要方法,經濟效益爲核心,圍繞影響項目的各類因素,運用大量的數據資料論證擬建項目是否可行。對整個可行性研究提出綜合分析評價,指出優缺點和建議。爲告終論的須要,每每還須要加上一些附件,如試驗數據、論證材料、計算圖表、附圖等,以加強可行性報告的說服力[23]

3.1.1 經濟可行性

Dota2資料庫管理平臺,提供高效便捷的服務,該平臺提供給已註冊的用戶使用,平臺的運行環境是SpringBoot+Windows+MySQL,該環境成本低,所須要的成本主要集中在開發成本和推廣成本。Dota2資料庫管理平臺一旦投入使用,遊戲運營人員能夠對遊戲數據進行有效管理,也可讓玩家對遊戲信息進行深刻了解。該平臺能夠經過廣告來營收,後期的經濟效益將大於系統開發和推廣成本。

3.1.2 技術可行性

本系統基於SSM框架開發,開發過程當中分爲兩大模塊,一個模塊是後端模塊,一個模塊是前端模塊。後端框架Spring+Spring MVC+Mybatis,數據庫使用MySQL。前端使用ExtJs框架,物品天賦模塊前端使用jQuery,從所用的框架來看,都是已經成熟的框架,從開發語言來看,Java和Html語言也是很是熟悉的,因此開發本系統在技術上是可行的。

3.1.3 操做可行性

Dota2資料庫管理平臺是方便遊戲運營人員對遊戲數據進行有效管理和使玩家瞭解遊戲動向。平臺提供一套完整的控制體系,經過角色權限控制,遊戲運營人員能夠多遊戲數據進行增刪改操做,而玩家只能瀏覽信息,如查詢物品信息、戰績信息,並進行物品和天賦的模擬。通過簡單的註冊就能夠成爲該平臺的用戶。玩家登錄平臺就能夠瀏覽遊戲信息,遊戲開發與運營人員擁有更高權限的帳號。平臺的設計首先考慮到用戶使用起來簡單,用戶體驗問題。因此Dota2資料庫管理平臺是可行的。

3.2 系統分析

3.2.1 業務流分析

       Dota2資料庫管理平臺全部用戶均可以瀏覽英雄、物品、天賦信息,而且容許進行物品合成模擬和天賦加點模擬,玩家不能夠對遊戲信息進行增刪改操做,運營人員能夠對用戶、角色、權限、英雄、物品、天賦進行增刪改操做。Dota2

資料庫管理平臺玩家流程圖如圖3-1所示,Dota2資料庫管理平臺運營人流程圖如圖3-2所示。

 

 

 

圖3- 1 Dota2資料庫管理平臺玩家流程圖

 

 

 

 

         圖3- 2 Dota2資料庫管理平臺運營人流程圖

3.2.2 數據流分析

Dota2資料庫管理平臺的數據流是依賴平臺進行流向的,錄入操做是輸入數據,查詢操做是輸出數據。輸入和錄入數據保持同步,Dota2資料庫管理平臺數據流圖如圖3-3所示。

 

 

圖3-3 Dota2資料庫管理平臺數據流圖

3.2.3 數據字典

數據字典是指對數據的數據存儲、處理邏輯、數據流、數據項、數據結構、外部實體等進行定義和描述,其目的是對數據流程圖中的各個元素作出詳細的說明,使用數據字典爲簡單的建模項目。數據字典是一種用戶能夠訪問應用程序元數據和記錄數據庫的目錄。主動數據字典是指在對數據庫或應用程序結構進行修改時,其內容能夠由DBMS自動更新的數據字典。被動數據字典是指修改時必須手動更新裏面的內容的數據字典[24]

Dota2資料庫管理平臺的用戶數據模型表的數據字典,是由用戶詳細信息組成的,而這些信息是保存在數據庫中,用戶能夠經過該信息登陸平臺系統。如表3-1所示。

表3-1 用戶數據模型表

數據項存儲名

Dota2資料庫管理平臺的用戶信息

數據項來源

Dota2資料庫管理平臺的用戶表

數據項去向

Dota2資料庫管理平臺的用戶登錄模塊

數據項組成

管理平臺的用戶信息=管理平臺的用戶帳號+管理平臺的用戶密碼+管理平臺的用戶操做權限

數據項描述

保存了管理平臺用戶的基本信息

角色數據模型表是保存用戶角色信息的數據字典,遊戲運營人用戶進行角色分配、修改和讀取的同時,這些信息會記錄到數據庫中。如表3-2所示。

表3- 2 角色數據模型表

數據項存儲名

Dota2資料庫管理平臺的角色信息

數據項來源

角色信息表

數據項去向

用戶模塊、角色模塊、權限模塊

數據項組成

角色信息=角色名稱+角色狀態等

數據項描述

保存了用戶的角色信息

權限數據模型表是保存角色權限信息的數據字典,遊戲運營人用戶進行權限讀取、分配和修改的同時,這些信息會記錄到數據庫中。如表3-3所示。

表3- 3 權限數據模型表

數據項存儲名

Dota2資料庫管理平臺的權限信息

數據項來源

權限信息表

數據項去向

用戶模塊、角色模塊、權限模塊

數據項組成

權限信息=權限名稱+權限狀態等

數據項描述

保存了角色的權限信息

英雄數據模型表是保存英雄信息的數據字典,遊戲運營人用戶和玩家用戶進行英雄查詢和修改的同時,這些信息會記錄到數據庫中。如表3-4所示。

表3- 4 英雄數據模型表

數據項存儲名

Dota2資料庫管理平臺的英雄信息

數據項來源

英雄信息表

數據項去向

英雄管理模塊、天賦模擬模塊

數據項組成

英雄信息=英雄名稱+英雄圖片路徑等

數據項描述

保存了英雄的基本信息

物品數據模型表是保存物品信息的數據字典,遊戲運營人用戶和玩家用戶進行物品查詢、修改和物品模擬合成的同時,這些信息會記錄到數據庫中。如表3-5所示。

表3-5 物品數據模擬表

數據項存儲名

Dota2資料庫管理平臺的物品信息

數據項來源

物品信息表、物品合成表

數據項去向

物品管理模塊、物品模擬模塊

數據項組成

物品信息=物品名稱+物品圖片路徑等

數據項描述

保存了物品的基本信息

天賦數據模型表是保存天賦信息的數據字典,遊戲運營人用戶和玩家用戶進行天賦查詢、修改和天賦模擬的同時,這些信息會記錄到數據庫中。如表3-6所示。

表 3-6 天賦數據模擬表

數據項存儲名

Dota2資料庫管理平臺的天賦信息

數據項來源

天賦信息表

數據項去向

天賦管理模塊、天賦模擬模塊

數據項組成

天賦信息=天賦名稱+天賦圖片路徑等

數據項描述

保存了天賦的基本信息

3.2.4 數據庫需求分析

       Dota2資料庫管理平臺使用MySQL數據庫,MySQL是一種關係數據庫管理系統,關係數據庫將數據保存在不一樣的表中,MySQL所使用的 SQL 語言是用於訪問數據庫的最經常使用標準化語言[25],系統須要利用數據庫的增長,修改,刪除,查詢語句來實現信息的及時更新。

所以要求數據庫的底層架構能承受各類信息的輸入和輸出,以及輸入和輸出數據的安全性能、時間性能和完整性。在進行數據庫需求分析的時候,咱們須要對系統需求進行詳細的分析,這樣才能夠準確地把數據庫設計出來,避免在設計數據庫中存在一些邏輯上的問題。經過對系統的功能需求分析以及系統的數據庫需求分析,Dota2資料庫管理平臺根據用戶對象不一樣各個模塊有以下具體功能需求信息:

       (1)管理員功能需求分析

         1)用戶、角色和權限信息的增刪改查功能;

        2)英雄、物品和天賦信息的增刪改查功能;

      3)項目需求和玩家意見的增刪改查功能。

       (2)玩家功能需求分析

         1)英雄、物品和天賦信息的查詢功能:玩家能夠對遊戲信息進行檢索;

2)天賦模擬功能:玩家能夠自行對天賦加點進行模擬;

3)物品模擬功能:玩家能夠自行對物品進行模擬合成;

4)戰績信息查詢功能:玩家能夠自行玩家戰績進行檢索。

 

 

第4章 概要設計

通過Dota2資料庫管理平臺的詳細需求分析以後,Dota2資料庫管理平臺開發進入到概要設計階段,也稱系統設計階段,本階段主要對Dota2資料庫管理平臺進行基本的流程設計、架構設計、模塊設計、功能設計、接口設計以及數據設計等,爲資料庫管理平臺軟件的詳細設計提供基礎。

4.1 系統模塊結構設計

       本設計主要實現Windows平臺下的Dota2資料庫管理平臺。此係統根據角色主要包括遊戲運營人(管理員)模塊和玩家模塊。Dota2資料庫管理平臺的系統功能模塊如圖4-1所示。

 

 

圖4-1系統功能模塊結構圖

       玩家模塊包括英雄、物品、天賦和戰績信息的檢索,以及物品模擬和天賦模擬。

       遊戲運營人模塊包括英雄、物品、天賦和戰績信息的增長、刪除、修改、查詢,以及用戶、角色和權限信息的增長、刪除、修改、查詢。

4.1.1系統模塊

(1)玩家模塊流程圖

       首先判斷玩家有沒有登陸管理平臺,若沒有,則不能訪問平臺系統的信息。若是登陸成功,能夠訪問英雄、物品、天賦和戰績信息,以及模擬物品合成和天賦加點,玩家模塊流程圖如圖4-2所示。

(2)遊戲運營人模塊流程圖

       首先判斷遊戲運營人有沒有登陸管理平臺,若沒有,則不能訪問平臺系統的信息。若是登陸成功,能夠對英雄、物品、天賦和戰績信息進行增長、刪除、修改、查詢,以及對用戶、角色和權限信息增長、刪除、修改、查詢,遊戲運營人模塊流程圖如圖4-3所示。

 

 

圖4-2 Dota2資料庫管理平臺玩家模塊流程圖

 

 

圖4-3 Dota2資料庫管理平臺遊戲運營人模塊流程圖

4.2 系統整體結構設計

4.2.1 整體結構設計功能

       Dota2資料庫管理平臺設計包含了玩家模塊和運營人模塊,能夠對遊戲信息進行檢索處理,極大提升了遊戲的版本迭代效率和遊戲可玩性,Dota2資料庫管理平臺整體結構設計功能圖如圖4-4所示。

 

圖4-4 Dota2資料庫管理平臺整體結構設計功能圖

4.2.2 系統E-R圖

E-R圖也稱實體-聯繫圖,提供了表示屬性、實體類型和聯繫的方法,用來描述真實世界的概念模型。Dota2資料庫管理平臺的E-R圖如圖4-5所示。

 

 

圖4-5 Dota2資料庫管理平臺的E-R圖

4.3 數據庫表設計

用戶表CT_USER如表4-1所示,CT_USER表是存儲了用戶信息的數據字典,用戶進行註冊時,用戶信息會加入到此表中。

表4-1用戶表

字段名

數據類型

容許非空

默認值

備註

ID

INT

NO

 

用戶id

USERNAME

VARCHAR

NO

 

用戶名

REALNAME

VARCHAR

YES

NULL

真實姓名

PASSWORD

VARCHAR

NO

 

密碼

SEX

TINYINT

YES

 

性別

PHONE

VARCHAR

YES

 

手機號

STATUS

TINYINT

NO

 

狀態,0禁用1正常

UPDATE_TIME

TIMESTAMP

NO

CURRENT_TIMESTAMP

修改時間

CREATE_TIME

DATETIME

NO

'0000-00-00 00:00:00'

建立時間

角色表CT_ROLE如表4-2所示,CT_ROLE表是用來存儲角色信息的數據字典,與用戶表構成多對多關係。

表4-2 角色表

字段名

數據類型

容許非空

默認值

備註

ID

INT

NO

 

角色id

NAME

VARCHAR

NO

 

角色名

DESCRIPTION

VARCHAR

YES

NULL

描述

STATUS

TINYINT

NO

 

狀態

UPDATE_TIME

TIMESTAMP

NO

CURRENT_TIMESTAMP

修改時間

CREATE_TIME

DATETIME

NO

'0000-00-00 00:00:00'

建立時間

權限表CT_RESOUCE如表4-3所示,CT_RESOURCE表存儲了權限信息,與角色表構成了多對多關係。

表4-3 權限表

字段名

數據類型

容許非空

默認值

備註

ID

INT

NO

 

角色id

NAME

VARCHAR

NO

 

權限名

TYPE

VARCHAR

NO

NULL

描述

ICON

VARCHAR

YES

 

權限圖標

PARENT_ID

INT

NO

 

父類ID

PERMISSION

VARCHAR

NO

 

權限地址

URL

VARCHAR

NO

 

 

STATUS

TINYINT

NO

 

狀態

UPDATE_TIME

TIMESTAMP

NO

CURRENT_TIMESTAMP

修改時間

CREATE_TIME

DATETIME

NO

'0000-00-00 00:00:00'

建立時間

英雄表HERO如表4-4所示,HERO表是用來存儲英雄信息的字典。

表4- 4英雄表

字段名

數據類型

容許非空

默認值

備註

ID

INT

NO

 

英雄ID

NAME

VARCHAR

NO

 

英雄名

LOCALIZED_NAME

VARCHAR

YES

NULL

英文名

HEADPORTRAIT_PATH

VARCHAR

NO

 

頭像路徑

HERO_PATH

VARCHAR

NO

CURRENT_TIMESTAMP

英雄圖片路徑

物品表ITEM如表4-5所示,ITEM表是用來存儲物品信息的字典。

表4-5物品表

字段名

數據類型

容許非空

默認值

備註

ID

INT

NO

 

物品ID

NAME

VARCHAR

NO

 

物品名

COST

INT

NO

NULL

花費

SECRET_SHOP

TINYINT

NO

 

祕密商店

SIDE_SHOP

TINYINT

NO

 

路邊商店

RECEIPE

TINYINT

NO

 

是否卷軸,0否,1是

UPGRATED_ITEM

VARCHAR

NO

0

是否更新物品

ITEM_PATH

VARCHAR

YES

 

物品圖片路徑

LOCALIZED_NAME

VARCHAR

YES

CURRENT_TIMESTAMP

英文名

CHINESE_NAME

VARCHAR

YES

'0000-00-00 00:00:00'

中文名

天賦表TALENT表如表4-6所示,TALENT表用來存儲英雄天賦信息。

表 4-6 天賦表

字段名

數據類型

容許非空

默認值

備註

ID

INT

NO

 

天賦ID

TEXT

VARCHAR

NO

 

天賦名

HERO_ID

INT

NO

 

英雄ID

GRADE

TINYINT

NO

 

天賦等級

TYPE

TINYINT

NO

 

天賦類型,類型1,類型2

IS_DELETE

TINYINT

NO

0

是否已刪除,0否,1是

 


 

5系統詳細設計

5.1系統登陸模塊

系統登陸模塊實現了登陸註冊功能,註冊須要用戶名和密碼,真實姓名、性別等其餘信息選填,一個用戶名只能註冊一次。用戶登陸須要用戶名和密碼,連續輸入用戶名密碼錯誤五次十分鐘內不容許登陸系統。登陸界面如圖5-1所示。

 

 

圖 5-1 Dota2資料庫管理平臺平臺登錄首頁圖

核心代碼:

    @POST

    @Path("/login")

    @Produces(MediaType.APPLICATION_JSON)

    // 此方法不處理登陸成功,shiro進行處理.

    public PcsResult login(@Context HttpServletRequest request,@FormParam("username") String username,

                           @FormParam("password") String password,@FormParam("roomcode")String roomcode) throws Exception {

        PcsResult result = new PcsResult();

        SecurityUtils.setSecurityManager(securityManager);

        Subject subject = SecurityUtils.getSubject();

        OfficeUsernamePasswordToken token=new OfficeUsernamePasswordToken(username,password,roomcode);

        try {

            subject.login(token);

        } catch (AuthenticationException exception) {

            // 登陸失敗從request中獲取shiro處理的異常信息。

            // shiroLoginFailure:就是shiro異常類的全類名.

            EnumPcsServiceError msg = EnumPcsServiceError.BUSINESS_DATA_NONE;

            if (exception != null) {

                if (exception instanceof UnknownAccountException) {// 帳號不存在

                    msg = EnumPcsServiceError.BUSINESS_USER_NONE;

                    logger.warn("login failed, account not existed. account={}", username);

                } else if (exception instanceof IncorrectCredentialsException) {//密碼不正確

                    msg = EnumPcsServiceError.BUSINESS_USER_PASSWORD_ERROR;

                    logger.warn("login failed, password not correct. account={}", username);

               } else if (exception instanceof ExcessiveAttemptsException){//登陸失敗屢次

                    msg = EnumPcsServiceError.BUSINESS_USER_LOGIN_ERROR;

                    logger.warn("login failed, login failed times too much. account={}", username);

                } else if ("kaptchaValidateFailed".equals(exception)) {// 驗證碼錯誤

                    msg = EnumPcsServiceError.BUSINESS_USER_VERIFYCODE_ERROR;

                }else if (exception instanceof IncorrectOfficeException) {

                    msg = EnumPcsServiceError.BUSINESS_ROOM_EXISTED;

                    logger.warn("login failed, login failed not in office. account={}", username);

                }

            }

            result.setCode(msg.getCode()).setMessage(msg.getDesc());

        }

        return result;

    }

Dota2資料庫管理平臺界面如圖5-二、5-3所示。

 

 

圖5-2 Doat2資料庫登陸界面圖

 

 

圖5-3 Dota2資料庫登陸界面圖

核心代碼:

Ext.define('Admin.view.main.Main', {
    extend: 'Ext.Container',
    xtype: 'main',
    requires: [
        'Ext.button.Button',
        'Ext.container.Container',
        'Ext.list.Tree',
        'Ext.toolbar.Fill'
    ],
    controller: 'main',
    viewModel: 'main',
    cls: 'sencha-dash-viewport',
    itemId: 'mainView',
    layout: {
        type: 'vbox',
        align: 'stretch'
    },
    initComponent: function () {
        var me = this, boxData = {}, record = {}, modifyPassword = 1;
        Common.util.Util.doAjax({
            url: Common.Config.requestPath('System', 'Users', 'info'),
            method: 'get',
            async: false
        }, function (data) {
            record = data.data;
            boxData.realname = record.realname;
            boxData.userId=record.userId;
            modifyPassword = record.modifyPassword;
            Common.permission.Permission.server_permcollections = record.buttonList;
            Common.Config.user.userid = record.userId;
            Common.Config.IMAGE_ADDRESS=record.dicMap.IMG_ADDRESS;
        });
        //construct navigationTree store data
      })

5.2 用戶操做模塊

玩家登陸平臺後,玩家能夠查詢英雄、物品、天賦信息,還能夠對物品合成模擬和對天賦加點模擬。查看英雄信息如圖5-4所示。

 

 

圖5-4查看英雄信息

核心代碼:

    @GET
    @Path("queryHero")
    @Produces(MediaType.APPLICATION_JSON)
    //@RequiresPermissions(value="hero:queryHero")
    public PcsResult queryHero(@Query HeroBean heroBean){
        Map map = heroService.queryHero(heroBean);
        if(map.size()==0){
            return newResult(false).setCode(EnumPcsServiceError.ERROR_OPERATE.getCode()).setMessage(EnumPcsServiceError.ERROR_OPERATE.getDesc());
        }else {
            return newResult(true).setData(map);
        }
    }

查詢物品信息如圖5-5所示。

 

 

圖5-5查看物品信息

核心代碼:

    @GET
    @Path("queryItem")
    @Produces(MediaType.APPLICATION_JSON)
    //@RequiresPermissions(value="item:queryItem")
    public PcsResult queryHero(@Query ItemBean itemBean){
        Map map = itemService.queryItem(itemBean);
        if(map.size()==0){
            return newResult(false).setCode(EnumPcsServiceError.ERROR_OPERATE.getCode()).setMessage(EnumPcsServiceError.ERROR_OPERATE.getDesc());
        }else 
{return newResult(true).setData(map); }
    }

查看天賦信息如圖5-6所示。

 

 

圖5-6 查看天賦信息

核心代碼:

    @GET
    @Path("queryTalent")
    @Produces(MediaType.APPLICATION_JSON)
    //@RequiresPermissions(value="hero:queryHero")
    public PcsResult queryTalent(@Query TalentBean talentBean){
        Map map = talentService.queryTalent(talentBean);
        if(map.size()==0){
            return newResult(false).setCode(EnumPcsServiceError.ERROR_OPERATE.getCode()).setMessage(EnumPcsServiceError.ERROR_OPERATE.getDesc());
        }else 
{ return newResult(true).setData(map); } }

物品模擬如圖5-7所示,點擊右側的物品便可在右下方看到模擬結果。

 

 

圖5-7 物品模擬

核心代碼:

    @GET

    @Path("getTalentByHeroId")

    @Produces(MediaType.APPLICATION_JSON)

    //@RequiresPermissions(value="hero:getTalentByHeroId")

    public PcsResult getTalentByHeroId(@QueryParam("heroId") Integer heroId){

        Map map = talentService.getTalentByHeroId(heroId);

        if(map.size()==0){

            return newResult(false).setCode(EnumPcsServiceError.ERROR_OPERATE.getCode()).setMessage(EnumPcsServiceError.ERROR_OPERATE.getDesc());

        }else {

            return newResult(true).setData(map);

        }

    }

天賦模擬如圖5-8所示,點擊左側的英雄圖像,在右側會顯示出天賦模擬的信息。

 

 

 

 圖5-8天賦模擬界面

核心代碼:

         @GET

    @Path("getMatchDetail")

    @Produces(MediaType.APPLICATION_JSON)

    @RequiresPermissions(value="match:getMatchDetails")

    public Map<String,Object> getMatchDetails(@QueryParam("match_id") Long match_id) throws IOException {

        Map<String,Object> modelMap = new HashMap<String,Object>();

        String jsonArray = "";

        if (match_id == null || match_id .equals("")) {

            jsonArray = URLUtil.getUrlForMatchDetail("https://api.steampowered.com/IDOTA2Match_570/GetMatchDetails/v1/?key=" + steamKey + "&match_id=" + "3839053706");

        }else{jsonArray = URLUtil.getUrlForMatchDetail("https://api.steampowered.com/IDOTA2Match_570/GetMatchDetails/v1/?key=" + steamKey + "&match_id=" + match_id);

        }

        List<MatchDetail> matchDetails = GsonUtil.getObjectList(jsonArray,MatchDetail.class);

        for (MatchDetail matchDetail:matchDetails){

            String startTime = String.valueOf(matchDetail.getStart_time());

            String normalStartTime = DateUtil.TimeStamp2Date(startTime);

            matchDetail.setString_start_time(normalStartTime);

        }

        Map<String,Object> data = new HashedMap();

        modelMap.put("data",data);

        data.put("list",matchDetails);

        data.put("total",matchDetails.size());

        modelMap.put("success",true);

        return modelMap;

    }

  

 

戰績信息如圖5-9所示,輸入SteamId,就能夠查詢該SteamId的比賽信息,雙擊比賽信息,會彈出一個記載着比賽詳細信息的窗口。

 

 

圖5-9戰績信息模塊

5.3 遊戲運營人操做模塊

遊戲運營人登陸平臺以後,能夠對用戶、角色、權限、英雄、天賦、物品進行增長、刪除、修改、查詢操做。用戶的修改如圖5-10所示,進入用戶管理,點擊該行右側的修改圖標,會彈出來用戶修改表單,輸入信息便可修改。

 

 

圖5-10用戶修改表單

角色的分配如圖5-11所示,進入用戶管理,點擊該行右側的編輯圖標,彈出來權限分配表單,下拉選擇要分配的權限便可分配。

 

 

圖5-11角色分配

權限的分配如圖5-12所示,進入角色管理,單擊選擇該行右側的權限分配圖標,在彈出表單的右側樹狀的權限打鉤便可完成權限的分配。

 

 

圖5-12權限分配

 

 

 

第6章 系統測試

6.1 系統測試的概述

系統測試是軟件開發流程中相當重要的環節,也是項目上線以前的必經之路。只有經過系統全面的測試,才能保證管理平臺在功能和性能方面均已達到上線的要求。本章首先介紹系統測試的功能性測試部分,其次介紹非功能性測試,最後介紹系統針對性能作出的改進和優化。

6.2 功能性測試

功能性測試又稱爲黑盒測試,它是指對系統各項功能進行測試與驗證,從而使其能知足用戶的需求[5],本節主要介紹Dota2資料庫管理系統各模塊部分功能的測試用例。

       用戶管理模塊用戶密碼重置功能的測試用例如表6-1所示,重置密碼是指將用戶密碼重置爲初始密碼(123456),該用例旨在驗證重置用戶密碼功能是否能成功地重置用戶的密碼。

 表 6-1重置用戶密碼測試用例

測試用例編號

TC003

測試用例標題

重置用戶密碼功能測試

測試目的

驗證可否成功重置用戶密碼

優先級

1

測試流程

(1)點擊進入系統設置用戶管理模塊

(2)在操做中點擊重置圖標

(3)在彈出表單中確認重置

(4)使用該用戶名和重置後的密碼,可否登陸系統

預期結果

用戶能夠登陸系統

實際結果

(1)成功登陸系統

(2)密碼已重置

結論

重置用戶密碼功能測試符合預期結果,測試經過

角色管理模塊角色分配功能的測試用例如表6-2所示,角色分配是指給用戶分配指定角色,並擁有相應的權限。該用例旨在驗證角色分配功能可否成功地給用戶分配指定的角色。

表 6-2角色分配測試用例

測試用例編號

TC005

測試用例標題

角色分配功能測試

測試目的

驗證可否成功進行角色分配

優先級

1

測試流程

(1)點擊進入系統設置用戶管理模塊

(2)在操做中點擊用戶的角色分配圖標

(3)在彈出表單中下拉框選擇角色並確認

(4)在用戶管理查看是否已分配角色,並從新登陸檢查是否擁有相應角色的權限

預期結果

用戶得到相應的角色和相應的權限

實際結果

(1)角色分配成功

(2)擁有權限

結論

角色分配功能測試符合預期結果,測試經過

權限管理模塊新增權限的測試用例如表6-3所示,權限分配是指往數據庫CT_RESOURCE表裏新增權限內容,與後臺權限內容相對應。該用例旨在驗證新增權限功能可否成功地新增權限。

表 6-3新增權限功能測試用例

測試用例編號

TC008

測試用例標題

新增權限功能測試

測試目的

驗證可否成功新增權限

優先級

1

測試流程

(1)點擊進入系統設置權限管理模塊

(2)在操做中點擊添加的圖標

(3)在彈出表單中填入權限名稱、圖標、地址

(4)在權限管理查看是否已添加權限,並將該權限分配到角色,再把角色分配給用戶,登陸驗證

預期結果

用戶得到相應的角色和相應的權限

實際結果

(1)新增權限成功

(2)擁有權限

結論

新增權限功能測試符合預期結果,測試經過

物品模擬模塊物品模擬的測試用例如表6-4所示,物品模擬是指玩家進入物品模擬界面,點擊物品,能夠看到物品的父物品(該物品能夠合成什麼)和子物品(該物品須要哪些配方)。該用例旨在驗證物品模擬功能可否成功地進行物品模擬。

表 6-4物品模擬功能測試用例

測試用例編號

TC0011

測試用例標題

物品模擬功能測試

測試目的

驗證可否成功物品模擬

優先級

1

測試流程

(1)點擊進入刀塔物品模擬模塊

(2)在操做中點擊升級物品按鈕

(3)隨機點擊一個物品

(4)在右下角區域觀察是否有該物品的父物品和子物品出現

預期結果

該物品、其父物品和其子物品均出現

實際結果

(1)物品模擬成功

結論

物品模擬功能測試符合預期結果,測試經過

 

6.3 非功能性測試

非功能性測試一樣重要,主要是測試平臺在性能、兼容性以及可用性方面的表現,本節以性能測試爲例對系統進行非功能性測試。

性能測試的用例如表6-5所示,平臺面向運營人員和玩家,併發量較高,所以平臺涉及了大量數據查詢,因此在響應時間方面有較高的要求。

表 6-5性能測試用例

測試用例編號

TC050

測試用例標題

性能測試

測試目的

驗證英雄信息查詢的響應時間,系統可否在合理的時間返回英雄信息

優先級

2

測試流程

從系統服務器日誌中抽取1000條與英雄信息查詢相關的日誌,統計每次相關操做的相應時間,並對其分析

預期結果

根據用戶的體驗,理想的響應時間應該在1s之內返回全部數據,所以預期結果在1s之內

實際結果

95%的處理時間在1s之內;3.2%的處理時間在1s以上,1.8%的結果是操做失敗

結論

實際結果在目標範圍內,測試經過

 

結論與展望

       近些年來,遊戲市場規模愈來愈龐大,國內僅手遊市場收入達819.2億元。在Dota界,國內代理商完美世界不曾作過專門的遊戲數據分析軟件,只有DotaMAX遊戲數據分析作得較爲專業,然而DotaMAX並不支持物品和天賦模擬。Dota2資料庫管理平臺在國內第一次實現物品和天賦模擬。

       通過歷時一個半月的開發,主要研究成果以下:

       (1)採用開源軟件和開源框架,減小了開發成本

       Intellij IDEA社區版徹底免費,前端框架ExtJs有trial版本,阿里雲的諸多SDK在必定的用戶併發量下能夠免費調用,項目部署在阿里雲學生服務器上,價格也是至關便宜。

       (2)採用市面較新的框架和生產環境

       採用基於SSM的SpringBoot框架和Maven倉庫管理,擯棄了Spring的複雜配置、tomcat的安裝部署和繁雜的jar包管理

       (3)增強了不一樣用戶之間的交流

       玩家能夠對遊戲運營人員留言,提出改進意見,運營人員進行回覆,促進遊戲的版本更迭,以玩家需求爲導向。

       (4)便捷的用戶角色權限機制

       管理員對用戶分配角色、對角色分配權限,合理控制每一個用戶能擁有哪些權限,方便管理。

       (5)提供了智能數據統計功能

       玩家不只能夠對戰績信息進行檢索,也能夠看到通過後臺計算處理過的戰績詳情。

       然而,Dota2資料庫管理平臺存在一些問題。

       (1)缺乏移動端的支持

       本項目主要是在B/S架構上進行設計和開發的,在移動端上沒法順利運行,給移動端用戶帶來了不便。

       (2)物品模擬和天賦模擬未與屬性相結合

       物品和天賦模擬不能計算出攻擊力、智力、力量和其餘基礎屬性的值,也沒有對這些屬性值結果進行運算處理,這些未完善的功能須要更長的時間來開發完成。

 

 

 

致謝

我要感謝個人指導老師,她爲人友善認真,在論文的用詞她總會以專業標準要求我,從選題開始,她就給我細心的指導,開題報告也通過導師的指導反覆修改,導師認真負責,從平臺開發到結束遇到了許多困難,導師給我鼓勵,最終使我克服重重困難,完成了Dota2資料庫管理平臺的開發,在指導教師的引領下,我完成了畢業論文。

我要感謝計算機與軟件工程系提供一個良好的學習氛圍,感謝學院對個人辛勤栽培,我在學校四年來學到了不少有用的知識,感謝計算機軟件工程學院爲我提供了教育資源,感謝導師給個人悉心指導,在此我還要感謝曾經實習的同事和班裏的同窗,在我遇到難題時給了我方向,使我再也不迷茫,感謝大家。

 

做者:Jonas

2018年4月30日

 

 

參考文獻

[1] 秦姣華,袁智威,王振,劉純和. 利用Ajax與ExtJS改善用戶體驗[J]. 電子設計工程,2011,19(10):1-4.

[2] 江雪,曹子鈺,李洋,鍾逸.ExtJS中ViewModel的數據繼承[J].中國新通訊,2017,19(17):91-91.

[3] 李亞麗,梁華國,張國平.基於ExtJS和SSH2的軟件工程資源共享平臺[J].信息技術,2017(07):99-102.

[4] 王正華. 基於REST與Shiro的遺留系統再工程技術研究[D].太原理工大學,2014.

[5] 盛偉翔,王昊,董曉睿,謝桂華.基於REST架構風格的精品課程平臺建設[J].南昌大學學報(理科版),2015,39(03):251-254.

[6] 張燦. 遊戲管理系統的設計與實現[D].北京交通大學,2016.

[7] 費國俊. 基於Struts框架的手機遊戲產品管理系統的設計與實現[D].北京工業大學,2012.

[8] 蔣偉.Java EE簡潔模式設計及其在網絡遊戲管理系統中應用[D].哈爾濱工業大學,2007.

[9] 施海華,陳寶霞,吳堅等.基於NGB的互動遊戲管理系統的設計[J].有線電視技術,2012,(4):27-29.

[10] 董歡.網絡遊戲管理系統的設計與實現[D].南開大學,2012.

[11] 王貞.網絡遊戲管理系統設計與實現[D].華中科技大學,2009.

[12] 張士鐸,劉克.網絡遊戲後臺管理系統的關鍵技術研究[J].中國傳媒大學學報(天然科學版),2016,23(5):62-66.

[13] 郭傑.基於OGRE框架的3D網絡遊戲資源管理系統設計與實現[D].北京交通大學,2010.

[14] 楊家煒.基於Spring Boot的web設計與實現[J].輕工科技,2016,32(07):86-89.

[15] 武志強. 基於SpringMVC和MyBatis框架的理財規劃系統的設計與實現[D].北京交通大學,2016.

[16] 雷鐳,陳俊. 基於ExtJS及Pushlet實現Web及時交流[J].軟件導刊,2010,9(2):118-120.LEI Lei, CHEN Jun. Implementation of Web communication by ExtJS and pushlet [J]. Software Guide,2010, 9(2):118-120.

[17] 程冬梅,王瑞聰,劉燕,秦偉俊.基於REST架構風格的物聯網服務平臺研發[J].計算機工程與應用,2012,48(14):74-78+157.

[18] 死神的喪鐘. 幾款Web富客戶端(RIA)框架[EB/OL]. https://blog.csdn.net/accountwcx/article/details/47835261.

[19] Sencha中文站. ExtJS 6.5 和 Sencha Cmd 6.5 GA版本發佈[EB/OL]. http://extjs.org.cn/node/818.

[20] 劉雅琴. 淺析Oracle大型數據庫的性能優化[J].中國科技博覽,2013(2):307-307.

[21] 中國產業信息. 2017年我國文化產業佔GDP比重及相關產業企業營收增速分析[EB/OL]. http://www.chyxx.com/industry/201711/587273.html.

[22] 仙劍. Java Web 學習筆記(四) 基於 SpringMVC+BootStrap 建立WebApp[EB/OL]. https://blog.csdn.net/jian200801/article/details/54379381.

[23] Franson. Spring MVC 完整示例[EB/OL]. http://www.cnblogs.com/franson-2016/p/5603651.html.

[24] 百度百科. 可行性分析[EB/OL]. https://baike.baidu.com/item/%E5%8F%AF%E8%A1%8C%E6%80%A7%E5%88%86%E6%9E%90.

[25] 百度百科. 數據字典[EB/OL]. https://baike.baidu.com/item/%E6%95%B0%E6%8D%AE%E5%AD%97%E5%85%B8.

[26] 吳滄舟,蘭逸正,張輝.基於MySQL數據庫的優化[J].電子科技,2013,26(09):182-184.

[27] 半宇白肌. http://baijiahao.baidu.com/s?id=1595717762932558144&wfr=spider&for=pc[M]. 百家號:百家號, 2018.


 

附錄

附錄A 引用的外文文獻及其譯文

Critical success factors to improve the game development process from a developer’s perspective

Saiqa, Aleem, Luiz, Fernando, Capretz, Faheem, Ahmed. Critical success factors to improve the game development process from a developer’s perspective[M]. Canada:Thompson River University, 2018. 1-5

Abstract

The growth of the software game development industry is enormous and is gaining importance day by day. This growth imposes severe pressure and a number of issues and challenges on the game development community. Game development is a complex process, and one important game development choice is to consider the developer perspective to produce good-quality software games by improving the game development process. The objective of this study is to provide a better understanding of the developer’s dimension as a factor in software game success. It focuses mainly on an empirical investigation of the effect of key developer factors on the software game development process and eventually on the quality of the resulting game. A quantitative survey was developed and conducted to identify key developer factors for an enhanced game development process. For this study, the developed survey was used to test the research model and hypotheses. The results provide evidence that game development organizations must deal with multiple key factors to remain competitive and to handle high pressure in the software game industry. The main contribution of this paper is to investigate empirically the influence of key developer factors on the game development process.

Keywords:Developer’s perspective; Software games; Empirical investigation; Good-quality games; Game development process; Game developer’s factors.

1.  Introduction

The first software game was created half a century ago. In the world of software gaming, many things have changed during this time period. Now the software game industry has reached the point that it rivals other well-established industries such as music and cinema. As a result, the soft-ware gaming business has grown enormously, has made billions of dollars in profit, and has started to mature over time . The game development process has also had an impact on the industry, which now counts on special methodologies and mature processes for its development, ultimately leading to an enhanced game development process. Game developers try to produce games that are different from any other game in the market. This difference can be achieved through by introducing new perspectives, new gameplays, new genre combinations, enhanced graphics, or new characters. Therefore, almost all games must be novel, and their success depends on their overall quality . Only good-quality games are able to retain their players, and this has become an important factor for any software game to succeed commercially. In other words, if a game is not of good quality, players can easily switch to another game. Hence, it has become mandatory for the software game industry to try to morph and adapt to the preferences and demand of its players.

One of the main concerns in game development process is that developers need to follow best practices and procedures from software engineering discipline to develop good quality games. The game development process involves four main phases: concept, pre-production, production, and post-production. It consists of various activities such as synopsis, background research, script writing, visualization and concept art, level and inter-action design, animation, programming, media editing, integration, testing, and publishing. Soft-ware games are also characterized based on the category into which they fall, which is called the genre of the game. Genres include action, shooters, fighting, racing, adventure, sports, role playing, strategy, simulations, puzzles, dance, music, and others. Each genre has its own requirements which must be taken into consideration during the pre-production phase. For this reason, software game development is considered as a complex process that involves multidisciplinary collaborative team efforts and processes (including sound, gameplay, art, artificial intelligence, control systems and human factors) to develop a creative product. Fundamentally, game development is a form of software development process with sever-al additional requirements such as creative design, artistic aspects, and visual presentation. In this context, game development organizations can apply the same software engineering principles to improve their development processes. However, many studies have discussed the challenges of applying software engineering principles to the game development process.

Kultima highlighted these challenges from the game design perspective. Blow discussed their implications from the perspective of technical frameworks and development techniques. Blow and McGill discussed issues even for the required technical skills for game development. Software game development also re-quires a range of skills that include design, project management, development, and asset creation. It also involves team members from heterogeneous disciplines, e.g., game designers, artists, programmers, and software developers. Knowledge of best practices for game development is very important and has become crucial to sustain the growth of the software game industry. Finally, this knowledge will help game developers make correct game development decisions at the right time. An investigation of key success factors from a developer’s perspective will contribute to the under-standing of current development process implications and will help developers improve the game development process.

Exploring diverse developers’ preferences for software game development will provide a significant benefit to improve the development process by generating valuable insights. No research has been done to date on including developer centered factors in the software game development process. This study will help identify key factors empirically from the developer’s perspective, an effort that will ultimately help improve the software game development process to produce good-quality software games. To identify key factors, a quantitative survey was conducted, and the results are reported here. The survey was used to test the re-search model and several hypotheses. Finally, the results show that consideration of key factors from a developer’s perspective helps identify important game development choices and their implications for the current process.

1.1  Research Background

The software game domain covers a great variety of player modes and genres .The complexity of digital games has posed many challenges and issues in software development be-cause it involves diverse activities in creative arts disciplines (storyboarding, design, refinement of animations, artificial intelligence, video production, scenarios, sound effects, marketing, and finally sales) besides technological and functional requirements. This inherent diversity leads ta greatly fragmented domain from the perspectives of both underlying theory and design methodology. The software game literature published in re-cent years has focused mainly on technical issues.

Issues of game production, development, and testing reflect only the general state of the art in soft-ware engineering. Pressman stated that a game is a kind of software which entertains its users, but game development faces many challenges and issues if only a traditional software development process is followed.

Many researchers have discussed game development challenges. Pertillo et al. surveyed the problems faced by game development organizations. The overall game development process combines both an engineering process and the creation of artistic assets. Ramadan and Widyani compared various game development strategies from a management perspective, and some re-searchers , have proposed frame-works for game development. To effectively man-age and improve the game development, key developer’s factors are required. Tschang and Petrillo et al. highlighted the issues in the game development process and its differences from traditional software development practices.

In traditional software engineering, the development phase usually involves activities like application design and implementation, and the production phase is when the software actually runs and is ready for use. However, in the game development, the production phase includes the development process, which is the pre-production phase of the software engineering process, and the production phase of software engineering is actually the post-production phase of the game development life cycle. Therefore, the game development is different from the traditional software engineering process, and many researchers have studied the challenges faced by this domain. Kanode and Haddad stated that an important incorrect assumption has been made that game development follows the waterfall method. More recently, researchers have agreed that it must follow the incremental model because it combines the waterfall method with an iterative process. Petrillo et al.reported a major concern, that developers for software creation in the game industry commonly use very poor development methodologies. The game development life cycle (GDLC) is the object of questions on many forms, which at-tempt to determine what types of practices are used. However, this question has no single answer. The most prominent observation made in these studies is that to address the challenges faced by the GDLC, more rigorous software engineering strategies must be used. However, the proposed GDLCs do not ensure the quality of the development process. Hagan et al. published a systematic literature review of software process models used for game development. They concluded that agile and hybrid approaches are used by most organizations for game development. They also reported that Scrum,Kanban,  Rapid  Development  Application(RAD), XP, and incremental methodologies are used by game development organizations. The major difference in software development and game development is in the design phase because design of game may undergo major change in late development. The other differences are content development and quality criteria. Managing game development has become a much harder process that anyone could have initially imagined, and because of the fragmented nature of the domain, no clear picture of its advancement can be found in the literature.

From the above discussion, it can be easily concluded that game development process is different from traditional software development process. Kasurinen et al. argued that current software engineering knowledge is unable to bridge the gap between software engineering and certain aspect of game development. The overall development process to produce a game includes art, audio and gameplay other than software development discussed above. In the game development process, the content and production activities are performed in tandem with the development and engineering activities. Further, it is well agreed that the game development process is a

multidisciplinary activity that involves the merging of creative and technical talent to bring a concept to life, where the main activities can be categorized into content and production, and engineering at each phase of the development process.

Moreover, sometime game development organizations reduce their development process due to of high competition and extreme market demand so they can be first to market. This reduction of the development process definitely affects game quality. Therefore, they do not strictly follow the software engineering standards and practices. Because of these types of complex project-management tasks, the game development process diverges from traditional software development. Nevertheless, the differences between software engineering and games development are not exclusive; it seems that traditional software development does not fully support game development activities and provide process assessment procedures. So, we need key success factors to improve game development process that may overlap with traditional software development factors or just exclusive to game development. There-fore, it has become important now to investigate the critical success factors for game development organizations in developing good quality games from developer’s perspective.

1.2  Research Motivation

Game development has become incredibly challenging due to rapid changes in game technology such as game platforms, game engines, and reuse of code modules for different genres. During the 1990s, game development was usually carried out by small team members and involved simple architectures consisting of 2D graphics, sound, simulation, and input/output streaming. The first software games were developed by a few talented individuals from diverse backgrounds like mathematics, computer science, and physics with no educational background in engineering or computer science. At that time, developers were mainly focused on how to develop interesting games rather than on architecture or software engineering principles. The current success of the game industry, continuous enhancements in game technology, and the need to meet the ever-higher expectations of the players resulted in a complex game development process.

The main research motivations behind this study are the rapid and continual changes in technology and the severity of competition in game development organizations. Ultimately, these factors will not only affect the business, but also will have a major impact on the game development process. Nowadays, games are developed by large teams because game projects have grown in size and complexity. Various stakeholders are involved in the development process and have different expectations and world views. For example, the game designer does not know the level of complexity involved in implementing artificial intelligence to represent the behavior of a non-player character. A software engineer may think that some features in the game design document are infeasible to implement due to time deadlines or technical constraints. Another important requirement that must be part of the game is the fun, flow, and enjoyment factors.

 

 

 

 

基於開發者角度提升遊戲開發進程的決定性因素

加拿大:湯姆遜河大學, 2018.

摘要

隨着遊戲軟件開發產業巨大的增加,遊戲軟件產業得到了愈來愈多的重視。這種增加增長了遊戲開發社區壓力和嚴峻的挑戰。遊戲開發是一個複雜的過程,一個重要的遊戲開發方案是經過提升遊戲開發過程考慮到開發者角度來製做優良的軟件。這種研究的目的是提供一種更好的理解,將開發者維度做爲重要因素考慮在遊戲的成功中。它主要聚焦於在遊戲開發過程當中關鍵開發者因素和最終將要完工的遊戲質量的經驗性調查上。必定數量的調查被開展用來肯定關鍵開發者因素在已被提升遊戲開發進程所發揮的做用。對於這個研究,被開展的調查被用做測試研究模型和假設。這些結果提供了遊戲開發組織活動必須處理多因素來保證有競爭力和處理在遊戲軟件產業的高壓力的證據。該研究的主要貢獻在於經驗性地調查了關鍵開發者因素在遊戲開發進程中的影響。

關鍵詞:開發者視角,遊戲軟件。經驗性調查,高質量遊戲,遊戲開發過程,遊戲開發者因素。

  1. 引言

半個世紀前第一款遊戲軟件問世,在遊戲軟件世界裏,許多事在此時期發生改變。如今遊戲軟件產業已經到達了能夠與其餘成熟的產業如音樂和電影相媲美的程度。結果是遊戲軟件商業化極速擴張,有數十億美圓的收入,已經開始隨着時間成熟,遊戲開發過程一樣對遊戲產業有影響。遊戲產業依賴於特殊的方法學和開發的成熟過程,最終引向增強的遊戲開發過程。遊戲開發者嘗試生產和市場中其餘遊戲不一樣的遊戲。這種差別也能夠經過新視角、新的遊戲設置、先進的圖像處理或者引入新角色來達到。所以,幾乎全部遊戲必須來源小說,他們的成功依靠整體的質量。只有高質量的遊戲才能贏得玩家的垂青,這已經成爲任何一個遊戲軟件商業成功的重要因素。換句話說,若是一個遊戲不具有高質量,玩家能夠輕易地選擇其餘遊戲。所以,高質量成爲對遊戲軟件產業嘗試達到高圖像標準和知足玩家的偏好強制的要求。

一個主要的擔心在於開發過程是開發者須要根據最好的實踐和軟件工程開發高質量產品的原則。遊戲開發過程包括四個階段:概念、預生產、生產和後期製做。它包含不一樣的活動,如大綱、背景研究、腳本編寫、視覺化、概念種類、水平和交互動做設計、動畫、變成、媒體處理、集成、測試和出版。遊戲軟件也具備基於他們所屬的類別,這叫作遊戲的流派。流派包括動做、射擊者、打鬥、比賽、冒險、運動、角色扮演、策略、模擬、解謎、跳舞、音樂和其餘。每一個流派都有本身的、必須在預生產階段就被考慮進去要求。由於這個緣由。遊戲軟件開發被認爲是一個包括多學問的和多合做的團隊努力和過程(包括聲音、遊戲設置、美術、人工智能、控制系統和人爲因素)來開發一個創造性的產品的複雜的過程。根本地,遊戲開發是一種有着服務附加要求如創造性設計、藝術形式和視覺展示的軟件開發過程的形式。在本文中,遊戲開發組織能夠應用一樣的軟件工程原則來提升開發流程。然而,許多研究已經討論過針對於遊戲開發過程的應用軟件工程原則的挑戰。

Kultima強調了這些來自於遊戲設計角度的挑戰。Blow討論了從科技框架和開發技術的角度的影響。Blow和McGill甚至討論了遊戲開發必備技能的問題。遊戲軟件開發也須要必定的技能,包括設計、項目管理、開發和資產建立。它包含了具有多種技術的團隊成員,例如遊戲設計者、美術家、編程者和軟件開發者。遊戲開發知識的最佳實踐是相當重要的,已經成爲支撐遊戲軟件產業成長的重要的基石。最終,知識會在正確的時間幫助遊戲開發者作出正確的遊戲開發決定。在對基於開發者角度的關鍵成功因素的調查中會有助於開發過程影響的理解,而且幫助開發者提升遊戲開發過程。

探究不一樣的開發者對遊戲軟件開發的偏好會提供一個有意義的優點經過產生有價值的洞察力來提升開發過程。沒有研究記錄過在遊戲軟件開發中以開發者爲中心的做用。此研究會幫助人們經驗性地找出基於開發者角度的關鍵因素,咱們所作的努力會最終幫助提升軟件開發過程來製造高質量的遊戲軟件。爲了找出關鍵因素,大量的調查會被試驗,結果會在這裏被報告。這份調查被用做測試研究模型和許多假設。最終,結果展示了基於開發者角度幫助提升遊戲開發選擇和他們對現階段進程的影響關鍵因素的考量。

1.1研究背景

       遊戲軟件領域包括一大堆玩家模型和流派。電子遊戲的複雜性已經在遊戲軟件開發領域造成了許多挑戰和問題,由於它包含了在創造性的美術原則中不一樣的活動(情節制做、設計、動畫的精製、人工智能、影像設計、劇本、聲音效果、市場和最後銷售)除了科技和功能的要求。內在的多樣性將咱們引入了成碎片性的領域基於潛在的理論和設計方法學。近些年遊戲軟件文學出版物大多數關於科技問題的探討。

       遊戲生產、開發的問題,而且在軟件工程中測試僅僅影響普通美術的基本狀態。Pressman陳述了遊戲是一種讓用戶快樂的軟件,若是僅僅採用傳統的軟件開發過程,遊戲開發會面對許多挑戰和問題。

       許多研究者已經討論過遊戲開發挑戰。Pertillo調查了許多遊戲開發組織活動的所面臨的問題。整體的遊戲開發過程混合了工程過程和藝術的創造。Ramadan和Widyanib根據管理的角度比較了不一樣的遊戲開發策略。一些研究者計劃將框架應用於遊戲開發中。爲了有效地管理和提升遊戲開發,須要關鍵開發者因素。Tschang和Petrillo 強調了在遊戲開發過程當中的問題和與傳統軟件開發實踐的差別。

        在傳統的軟件工程中,開發階段一般包含活動,如應用設計和實現,生產階段是當軟件事實上運行和準備投入使用的時候。然而,在遊戲開發階段,生產階段包含了開發過程,是軟件工程過程的預生產階段,而且軟件工程的生產階段事實上是遊戲開發生命週期的後期處理階段。所以,遊戲開發和傳統的軟件工程過程不一樣,許多研究者研究了該領域所面臨的挑戰。Kanode和Haddad陳述了一個重要的錯誤的開發使用瀑布模型的假設已經被證明。最近,研究者贊成遵照增長的模型,由於它包含了用迭代流程的瀑布方法。Petrillo表達了擔心,遊戲工業的軟件開發者一般在開發方法上很薄弱。遊戲開發生命週期是許多形式問題的目標,它可以決定使用哪一種實踐方案。然而,這種問題已經沒有惟一的答案。最顯著的觀察使這些研究處理遊戲開發生命週期面對的挑戰,更多嚴謹的軟件工程

策略會被使用。然而,提出的遊戲生命開發週期不保證開發過程的質量。Hagan出版了一個回顧軟件過程模型使用在遊戲開發的系統文獻。他們總結了敏捷和混開發。他們也報告了快速開發應用和增長的被使用在遊戲開發組織活動的方法學。軟件開發和遊戲開發的主要不一樣在於設計階段,由於遊戲設計在後期會經歷不少變化。其餘的不一樣在於滿意的開發和質量標準。管理遊戲開發已經成爲很艱難的過程,任何人均可以想象而且由於碎片化的天然領域,在文獻中沒有進步的跡象能找到。

       從上面的討論,能夠很容易的總結出遊戲開發過程是不一樣於傳統的軟件開發過程。Kasurinen持有異議,他認爲目前的軟件工程知識是不可以在軟件工程和特定的遊戲開發方面架起橋樑彌補這之間的間隙。整體的開發過程生產一個遊戲,包括美術、聲音和遊戲設置。在遊戲開發過程當中,內容和生產活動與開發和工程活動相串聯。更進一步來講,你們都知道遊戲開發過程是一個多學科的活動,它包括創造和科技才能的混合來給生活帶來一個全新的概念,主要活動(每一個開發過程階段的)能夠被歸類爲內容和生產、製造和工程。

       此外,由於競爭激烈和市場需求有時遊戲開發組織活動減小了開發過程,因此這些產品能率先進入市場。這種開發過程的縮減確定會影響遊戲的質量。所以,他們不能嚴格地遵循軟件工程標準和實踐。因爲這些複雜的項目管理任務的種類,遊戲開發過程偏離了傳統軟件開發。然而,這種在軟件工程和遊戲開發之間的差別不是可排除的;看起來傳統的軟件開發不能徹底地支持遊戲開發活動而且提供流程評定步驟。因此,咱們須要關鍵成功信息來提升能和傳統軟件開發過程重疊的或者僅僅爲遊戲開發服務的遊戲開發過程。所以,調查基於遊戲開發者角度的遊戲開發組織活動的決定性的成功因素如今已經變得很是重要。

1.2研究動機

由於遊戲科技快速的改變如遊戲平臺、遊戲引擎、和不一樣流派的代碼模塊的重用,遊戲開發已經難以置信地變得越來越具備挑戰性。在九十年代,遊戲開發一般由一些小型隊伍成員完成,這些遊戲項目包括簡單的結構設計,包含了2D圖像、聲音、模擬和輸入輸出流。第一個遊戲軟件是由有覺得有天賦的人,不像數學家、計算機科學家和物理學家,他沒有軟件工程和數學的教育背景。在當時,開發者專一於如何開發有趣的遊戲而不是研究架構和軟件工程原則。最近遊戲產業的成功,持續的遊戲科技進步和知足玩家的天馬行空的需求,致使出現了複雜的遊戲開發流程。

該研究的主要的研究動機是快速和持續不斷的科技變化和遊戲開發組織中的激烈競爭。最終,這些因素不只僅只影響商業利益,也會對遊戲開發進程有重要的影響。現現在,遊戲由大型團隊開發,由於遊戲項目已經在量和複雜度上增長。不一樣的利益相關者與開發進程有關,他們有不一樣的指望和世界觀。例如,遊戲設計者不知道實現人工智能來表明非人來玩家的行爲的複雜水平。一個軟件工程師可能基於項目開發時間和技術限制認爲遊戲設計文檔中的一些方案是不可行的。另一個很重要的要求是遊戲必須有趣、流暢和樂趣。

 

 

附件B 主要參考文獻的題錄及摘要

一、利用Ajax與ExtJS改善用戶體驗

【篇名】利用Ajax與ExtJS改善用戶體驗

【做者】秦姣華,袁智威,王振,劉純和

【關鍵詞】Ajax; ExtJS; 富網絡應用框架; B/S結構; 用戶體驗;

【摘要】隨着Web技術的不斷髮展,傳統的B/S"瘦客戶端,胖服務器"結構已不能知足用戶正常體驗和實時交互要求。Ajax技術能夠實現用戶異步請求,減輕網絡負載,ExtJS做爲Ajax的RIA框架,使得界面構建更加容易。從Ajax原理,ExtJS在OA型系統中的應用及性能調優出發,設計實現了三農電子商城後臺管理系統,並探討了ExtJS在基於B/S結構的OA型電子商務系統中對用戶體驗的改善。系統界面美觀,操做方便,開發效率高,維護規範,能夠知足用戶正常體驗和實時交互需求。 

四、基於REST與Shiro的遺留系統再工程技術研究

【篇名】基於REST與Shiro的遺留系統再工程技術研究

【做者】王正華

【關鍵詞】基於REST與Shiro的遺留系統再工程技術研究;

【摘要】遺留系統再工程爲遺留系統的複用提供了現實可行的途徑,可將現存的遺留系統從新構造爲新的形式。隨着互聯網及軟件工程技術的迅猛發展,Web服務給遺留系統再工程提供了一種很好的解決方案。傳統的RPC(Remote Procedure Call,簡稱RPC)式Web服務,接口設計複雜且很難標準化,而基於表述性狀態轉移(Representational State Transfer,簡稱REST)的設計原則更契合Web服務複用的理念。面向資源架構的REST風格漸已成爲Web服務設計趨勢的主流,然而在複雜的互聯網環境下Web服務的安全性顯得尤爲重要,Shiro做爲一個強大而靈活的安全框架,具備直觀和易於使用的特性,集成Shiro至遺留系統,能夠簡化應用程序的安全操做。本課題針對傳統的RPC式Web服務存在的缺陷,引入REST風格的Web服務至遺留系統再工程領域,而且結合Shiro安全框架可以增強遺留系統的身份認證的安全性以及權限控制的靈活性,從而保證REST服務的安全性,爲此,本文提出一種基於REST與Shiro的遺留系統再工程技術方案。本文首先分析遺留系統再工程的國內外研究現狀,對遺留系統、軟件再工程、Web服務以及Shiro框架等背景知識做出詳細的闡述,對比了幾種不一樣的Web服務方式,引出REST風格的Web服務的特徵,在分析其優點的基礎上,從設計的角度詳細分析了REST式Web服務理論及相關技術。文中詳細闡述了基於REST與Shiro的遺留系統再工程技術方案,結合實際項目背景,設計並實現了基於Shiro重構身份認證以及統一用戶管理系統權限的實例以及基於REST包裝「帳戶」服務的實例。經過實例驗證說明REST與Shiro在遺留系統再工程中應用的優越性。

十一、網絡遊戲管理系統設計與實現

【篇名】網絡遊戲管理系統設計與實現

【做者】王貞

【關鍵詞】網絡遊戲; 後臺管理系統; PHP語言; B/S模型; 安全;

【摘要】隨着Internet和計算機網絡的普及,網絡已經走進千家萬戶,人們的生活愈來愈離不開網絡。學習,工做閒暇之餘人們能夠經過網絡來放鬆本身,也正由於如此網絡遊戲開始走進咱們的生活。好比說日本麻將就是一個必須依託於互聯網進行,能夠容許多人同時參與的網絡遊戲,經過用戶與用戶之間的互動達到交流,休閒和娛樂的目的。正因爲網洛遊戲容許多用戶參與,因此在後臺對與用戶的管理是必不可缺的。針對麻將遊戲系統後臺用戶管理的須要,構建了一個基於PHP與MySQL的麻將用戶管理系統。該系統運用健全的網絡體系,創建一個集與B/S結構與先進的PHP加MySQL技術爲一體的系統。系統中涉及到用戶登錄,用戶信息管理,用戶遊戲得分排名,大會的具體狀況等各個環節,具備對多層次用戶的完善的管理功能。設計時使用了Apache+PHP+MySQL三者結合的先進開發模式。經過使用系統,用戶能夠更好地瞭解遊戲,進入遊戲,享受遊戲。同時也方便管理員更好的管理用戶的信息,知足了系統管理員和遊戲玩家等的信息管理需求,達到了用戶,遊戲,管理員三者一體的目的。用戶只須要在瀏覽器上操做就能夠實現系統的全部功能。系統的界面人性化,操做方便。系統使用了多級安全保護措施,充分保證了系統的安全運行。

 

源碼:https://github.com/cjy513203427/Dota2_Databank

相關文章
相關標籤/搜索