從零開始實(shí)現(xiàn)放置游戲(二)——框架搭建

??上一篇舍杜,我們講解了游戲的大概背景妙色,知道了要做什么內(nèi)容∥ψ蹋現(xiàn)在已經(jīng)可以開始搭建游戲的代碼框架。

整體架構(gòu)

??我們將整個(gè)項(xiàng)目命名為idlewow身辨,目前包含以下幾個(gè)模塊idlewow-facade, idlewow-core, idlewow-hessianserver, idlewow-rms, idlewow-util, idlewow-game, idlewow-doc丐谋。

??其中,facade模塊是jar包項(xiàng)目煌珊,供內(nèi)部其他項(xiàng)目引用号俐,主要定義模型類、接口類定庵。core模塊是jar包項(xiàng)目吏饿,實(shí)現(xiàn)系統(tǒng)的主要業(yè)務(wù)邏輯以及對(duì)數(shù)據(jù)庫(kù)的訪問踪危。hessianserver模塊是war包項(xiàng)目,將系統(tǒng)的接口暴露給其他內(nèi)部項(xiàng)目猪落。rms模塊是war包項(xiàng)目贞远,是后臺(tái)運(yùn)營(yíng)系統(tǒng)或叫資源管理系統(tǒng),主要給GM使用许布,進(jìn)行配置兴革,rms模塊本身不訪問數(shù)據(jù)庫(kù),而是通過調(diào)用hessian接口蜜唾,與底層數(shù)據(jù)進(jìn)行交互。game模塊是war包項(xiàng)目庶艾,是web形式的游戲客戶端袁余,部分游戲邏輯寫在此模塊中,也通過hessian接口訪問系統(tǒng)數(shù)據(jù)咱揍。util模塊是jar包項(xiàng)目颖榜,主要實(shí)現(xiàn)一些工具類,供其它模塊引用煤裙。doc項(xiàng)目可有可無掩完,我拿來提交一些sql腳本,策劃表格等內(nèi)容硼砰。整個(gè)項(xiàng)目的架構(gòu)大致如下圖(其中Rest模塊目前并沒有且蓬,僅占位示意):

項(xiàng)目架構(gòu)圖

代碼實(shí)踐

1.新建項(xiàng)目

??打開Idea,左上角菜單File --> New --> Project, 選擇Maven項(xiàng)目题翰,不使用模板恶阴,GroupId、ArtifactId和Projec name都填寫idlewow即可豹障,JDK選擇1.8冯事。(如沒有1.8版本,可在前言章節(jié)中查看下載地址)

新建項(xiàng)目

??新建完畢后血公,因?yàn)槭莔aven項(xiàng)目昵仅,IDE檢測(cè)到pom.xml會(huì)在右下角彈出提示,如下圖累魔,選擇”Enable Auto-Import"摔笤,開啟自動(dòng)包下載,后面修改pom.xml后薛夜,按Ctrl+S保存即可自動(dòng)更新包籍茧。

maven提示框

2.添加模塊

??idlewow作為根目錄下面不需要寫代碼,src文件夾可以刪掉梯澜。右鍵根目錄寞冯,選擇 New --> Module 來添加模塊渴析。同樣選擇maven項(xiàng)目,不使用模板吮龄。因?yàn)槭且粋€(gè)模塊俭茧,GroupId默認(rèn)為idlewow,以core項(xiàng)目為例漓帚,ArtifactId填寫 idlewow-core母债。點(diǎn)擊下一步,填寫 module name 時(shí)尝抖,會(huì)默認(rèn)沒有中劃線毡们,需要手動(dòng)加上,然后點(diǎn)擊完成即可昧辽。

??然后依次創(chuàng)建各個(gè)模塊衙熔。完成后如下圖:

各項(xiàng)目模塊

3.添加依賴關(guān)系

??maven項(xiàng)目通過pom.xml管理依賴,類似于C#里添加DLL引用搅荞,這里根目錄下的pom.xml暫時(shí)無需改動(dòng)红氯。

??首先,在各個(gè)模塊的pom里咕痛,artifactId節(jié)點(diǎn)后面添加 packaging 節(jié)點(diǎn)痢甘,如<packaging>war</packaging>,是war包項(xiàng)目的填寫war茉贡,jar包項(xiàng)目填寫jar塞栅。

在core模塊中,添加依賴如下:

<dependencies>
    <dependency>
        <groupId>idlewow</groupId>
        <artifactId>idlewow-facade</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>idlewow</groupId>
        <artifactId>idlewow-util</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>
</dependencies>

在hessian模塊中块仆,添加依賴如下:

<dependencies>
    <dependency>
        <groupId>idlewow</groupId>
        <artifactId>idlewow-core</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>idlewow</groupId>
        <artifactId>idlewow-facade</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>
</dependencies>

在rms模塊中构蹬,添加依賴如下:

<dependencies>
    <dependency>
        <groupId>idlewow</groupId>
        <artifactId>idlewow-core</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>idlewow</groupId>
        <artifactId>idlewow-facade</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>
</dependencies>

注意:前面的架構(gòu)圖中,rms通過hessian接口訪問數(shù)據(jù)層悔据,此處應(yīng)不必添加對(duì)core的依賴庄敛。但為了開發(fā)和部署方便,實(shí)際開發(fā)時(shí)科汗,我在rms模塊直接引用core層訪問數(shù)據(jù)藻烤。

在game模塊中,添加依賴如下:

<dependencies>
    <dependency>
        <groupId>idlewow</groupId>
        <artifactId>idlewow-facade</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>
</dependencies>

其他模塊目前無需添加依賴头滔。

4.構(gòu)造web目錄

??因?yàn)橛?個(gè)模塊需要打成war包怖亭,因此必須先構(gòu)造web項(xiàng)目的目錄結(jié)構(gòu),否則打包命令無法成功執(zhí)行坤检。

??在 game, hessian, rms 模塊的src目錄下分別創(chuàng)建 webapp/WEB-INF 文件夾兴猩,并在該目錄下添加web.xml(空文件即可)。完成后目錄結(jié)構(gòu)如下圖:

文件結(jié)構(gòu)

??另外早歇,因?yàn)椴蛔鰡卧獪y(cè)試倾芝,所有src目錄下的test文件夾均可刪除讨勤。

5.編譯打包

??在左上角菜單選擇 ” Run --> Edit Configurations "(快捷按鈕里直接點(diǎn)也可以),點(diǎn)擊左上角綠色的加號(hào)晨另,選擇Maven(代表使用maven命令或插件來編譯潭千、打包、啟動(dòng)項(xiàng)目)借尿。然后填寫名稱 "idlewow打包"刨晴,選擇根目錄,填寫執(zhí)行命令"clean install"路翻。

??其中狈癞,clean表示清空之前的編譯目錄,install表示把項(xiàng)目編譯茂契,打包亿驾,并更新到本地maven倉(cāng)庫(kù)。

??其實(shí)編譯命令是compile账嚎,打包命令package,maven命令有一個(gè)優(yōu)先級(jí)儡蔓,執(zhí)行install時(shí)郭蕉,會(huì)自動(dòng)執(zhí)行compile, package等等。

如下圖:

編譯打包

點(diǎn)擊OK后喂江,我們執(zhí)行一遍召锈。結(jié)果如下圖,各模塊均編譯打包成功获询。

運(yùn)行結(jié)果

結(jié)語

??本章簡(jiǎn)要搭建整個(gè)系統(tǒng)的框架涨岁,構(gòu)造了各模塊的文件結(jié)構(gòu),并成功編譯打包吉嚣。

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

??后面將開始對(duì)各模塊的內(nèi)部框架進(jìn)行搭建梢薪。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市尝哆,隨后出現(xiàn)的幾起案子秉撇,更是在濱河造成了極大的恐慌,老刑警劉巖秋泄,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件琐馆,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡恒序,警方通過查閱死者的電腦和手機(jī)瘦麸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來歧胁,“玉大人滋饲,你說我怎么就攤上這事厉碟。” “怎么了了赌?”我有些...
    開封第一講書人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵墨榄,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我勿她,道長(zhǎng)袄秩,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任逢并,我火速辦了婚禮之剧,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘砍聊。我一直安慰自己背稼,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開白布玻蝌。 她就那樣靜靜地躺著蟹肘,像睡著了一般。 火紅的嫁衣襯著肌膚如雪俯树。 梳的紋絲不亂的頭發(fā)上帘腹,一...
    開封第一講書人閱讀 51,679評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音许饿,去河邊找鬼阳欲。 笑死,一個(gè)胖子當(dāng)著我的面吹牛陋率,可吹牛的內(nèi)容都是我干的球化。 我是一名探鬼主播,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼瓦糟,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼筒愚!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起狸页,我...
    開封第一講書人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤锨能,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后芍耘,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體址遇,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年斋竞,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了倔约。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡坝初,死狀恐怖浸剩,靈堂內(nèi)的尸體忽然破棺而出钾军,到底是詐尸還是另有隱情,我是刑警寧澤绢要,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布吏恭,位于F島的核電站,受9級(jí)特大地震影響重罪,放射性物質(zhì)發(fā)生泄漏樱哼。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一剿配、第九天 我趴在偏房一處隱蔽的房頂上張望搅幅。 院中可真熱鬧,春花似錦呼胚、人聲如沸茄唐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)沪编。三九已至,卻和暖如春年扩,著一層夾襖步出監(jiān)牢的瞬間漾抬,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來泰國(guó)打工常遂, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人挽荠。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓克胳,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親圈匆。 傳聞我的和親對(duì)象是個(gè)殘疾皇子漠另,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容