1. 程式人生 > >從零開始實現放置遊戲(二)——框架搭建

從零開始實現放置遊戲(二)——框架搭建

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

整體架構

  我們將整個專案命名為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 <dependencies>
 2     <dependency>
 3         <groupId>idlewow</groupId>
 4         <artifactId>idlewow-facade</artifactId>
 5         <version>1.0-SNAPSHOT</version>
 6     </dependency>
 7     <dependency>
 8         <groupId>idlewow</groupId>
 9         <artifactId>idlewow-util</artifactId>
10         <version>1.0-SNAPSHOT</version>
11     </dependency>
12 </dependencies>
pom.xml

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

 1 <dependencies>
 2     <dependency>
 3         <groupId>idlewow</groupId>
 4         <artifactId>idlewow-core</artifactId>
 5         <version>1.0-SNAPSHOT</version>
 6     </dependency>
 7     <dependency>
 8         <groupId>idlewow</groupId>
 9         <artifactId>idlewow-facade</artifactId>
10         <version>1.0-SNAPSHOT</version>
11     </dependency>
12 </dependencies>
pom.xml

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

 1 <dependencies>
 2     <dependency>
 3         <groupId>idlewow</groupId>
 4         <artifactId>idlewow-facade</artifactId>
 5         <version>1.0-SNAPSHOT</version>
 6     </dependency>
 7     <dependency>
 8         <groupId>idlewow</groupId>
 9         <artifactId>idlewow-core</artifactId>
10         <version>1.0-SNAPSHOT</version>
11     </dependency>
12 </dependencies>
pom.xml

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

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

1 <dependencies>
2     <dependency>
3         <groupId>idlewow</groupId>
4         <artifactId>idlewow-facade</artifactId>
5         <version>1.0-SNAPSHOT</version>
6     </dependency>
7 </dependencies>
pom.xml

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

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

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

 

1元催更

 

 

&n