從零開始實現放置遊戲(一):整體框架搭建

遊資網發表於2019-10-30
上一篇,我們講解了遊戲的大概背景,知道了要做什麼內容。現在已經可以開始搭建遊戲的程式碼框架。

整體架構

我們將整個專案命名為idlewow,目前包含以下幾個模組idlewow-facade,idlewow-core,idlewow-hessianserver,idlewow-rms,idlewow-util,idlewow-game,idlewow-doc。

其中,facade模組是jar包專案,供內部其他專案引用,主要定義模型類、介面類。core模組是jar包專案,實現系統的主要業務邏輯以及對資料庫的訪問。hessianserver模組是war包專案,將系統的介面暴露給其他內部專案。rms模組是war包專案,是後臺運營系統或叫資源管理系統,主要給GM使用,進行配置,rms模組本身不訪問資料庫,而是通過呼叫hessian介面,與底層資料進行互動。game模組是war包專案,是web形式的遊戲客戶端,部分遊戲邏輯寫在此模組中,也通過hessian介面訪問系統資料。util模組是jar包專案,主要實現一些工具類,供其它模組引用。doc專案可有可無,我拿來提交一些sql指令碼,策劃表格等內容。整個專案的架構大致如下圖(其中Rest模組目前並沒有,僅佔位示意):

從零開始實現放置遊戲(一):整體框架搭建
專案架構圖

操作步驟

1.新建專案

開啟Idea,左上角選單File-->New-->Project,選擇Maven專案,不使用模板,GroupId、ArtifactId和Projec name都填寫idlewow即可,JDK選擇1.8。(如沒有1.8版本,可在前言章節中檢視下載地址)

從零開始實現放置遊戲(一):整體框架搭建
新建專案

新建完畢後,因為是maven專案,IDE檢測到pom.xml會在右下角彈出提示,如下圖,選擇”Enable Auto-Import",開啟自動包下載,後面修改pom.xml後,按Ctrl+S儲存即可自動更新包。

從零開始實現放置遊戲(一):整體框架搭建
maven提示框

2.新增模組

idlewow作為根目錄下面不需要寫程式碼,src資料夾可以刪掉。右鍵根目錄,選擇New-->Module來新增模組。同樣選擇maven專案,不使用模板。因為是一個模組,GroupId預設為idlewow,以core專案為例,ArtifactId填寫idlewow-core。點選下一步,填寫module name時,會預設沒有中劃線,需要手動加上,然後點選完成即可。

然後依次建立各個模組。完成後如下圖:

從零開始實現放置遊戲(一):整體框架搭建
各專案模組

3.新增依賴關係

maven專案通過pom.xml管理依賴,類似於C#裡新增DLL引用,這裡根目錄下的pom.xml暫時無需改動。

首先,在各個模組的pom裡,artifactId節點後面新增packaging節點,如<packaging>war</packaging>,是war包專案的填寫war,jar包專案填寫jar。

在core模組中,新增依賴如下:

  1. 1 <dependencies>
  2. 2     <dependency>
  3. 3         <groupId>idlewow</groupId>
  4. 4         <artifactId>idlewow-facade</artifactId>
  5. 5         <version>1.0-SNAPSHOT</version>
  6. 6     </dependency>
  7. 7     <dependency>
  8. 8         <groupId>idlewow</groupId>
  9. 9         <artifactId>idlewow-util</artifactId>
  10. 10         <version>1.0-SNAPSHOT</version>
  11. 11     </dependency>
  12. 12 </dependencies>
複製程式碼

在hessian模組中,新增依賴如下:

  1. 1 <dependencies>
  2. 2     <dependency>
  3. 3         <groupId>idlewow</groupId>
  4. 4         <artifactId>idlewow-core</artifactId>
  5. 5         <version>1.0-SNAPSHOT</version>
  6. 6     </dependency>
  7. 7     <dependency>
  8. 8         <groupId>idlewow</groupId>
  9. 9         <artifactId>idlewow-facade</artifactId>
  10. 10         <version>1.0-SNAPSHOT</version>
  11. 11     </dependency>
  12. 12 </dependencies>
複製程式碼

在rms模組中,新增依賴如下:

  1. 1 <dependencies>
  2. 2     <dependency>
  3. 3         <groupId>idlewow</groupId>
  4. 4         <artifactId>idlewow-facade</artifactId>
  5. 5         <version>1.0-SNAPSHOT</version>
  6. 6     </dependency>
  7. 7     <dependency>
  8. 8         <groupId>idlewow</groupId>
  9. 9         <artifactId>idlewow-core</artifactId>
  10. 10         <version>1.0-SNAPSHOT</version>
  11. 11     </dependency>
  12. 12 </dependencies>
複製程式碼

注意:前面的架構圖中,rms通過hessian介面訪問資料層,此處應不必新增對core的依賴。但為了開發和部署方便,實際開發時,我在rms模組直接引用core層訪問資料。

在game模組中,新增依賴如下:

  1. 1 <dependencies>
  2. 2     <dependency>
  3. 3         <groupId>idlewow</groupId>
  4. 4         <artifactId>idlewow-facade</artifactId>
  5. 5         <version>1.0-SNAPSHOT</version>
  6. 6     </dependency>
  7. 7 </dependencies>
複製程式碼

其他模組目前無需新增依賴。

4.構造web目錄

因為有3個模組需要打成war包,因此必須先構造web專案的目錄結構,否則打包命令無法成功執行。

在game,hessian,rms模組的src目錄下分別建立webapp/WEB-INF資料夾,並在該目錄下新增web.xml(空檔案即可)。完成後目錄結構如下圖:

從零開始實現放置遊戲(一):整體框架搭建
檔案結構

另外,因為不做單元測試,所有src目錄下的test資料夾均可刪除。

5.編譯打包

在左上角選單選擇”Run-->Edit Configurations"(快捷按鈕裡直接點也可以),點選左上角綠色的加號,選擇Maven(代表使用maven命令或外掛來編譯、打包、啟動專案)。然後填寫名稱"idlewow打包",選擇根目錄,填寫執行命令"clean install",

其中,clean表示清空之前的編譯目錄,install表示把專案編譯,打包,並更新到本地maven倉庫。

其實編譯命令是compile,打包命令package,maven命令有一個優先順序,執行install時,會自動執行compile,package等等。

如下圖:

從零開始實現放置遊戲(一):整體框架搭建

點選OK後,我們執行一遍。結果如下圖,各模組均編譯打包成功。

從零開始實現放置遊戲(一):整體框架搭建

結語

本章簡要搭建整個系統的框架,構造了各模組的檔案結構,併成功編譯打包。

原始碼下載地址:https://idlestudio.ctfile.com/fs/14960372-383321231

後面將開始對各模組的內部框架進行搭建。

相關閱讀:

從零開始實現放置遊戲(一)

作者: 丶謙信
部落格地址:https://home.cnblogs.com/u/lyosaki88/

相關文章