前言
這個月給大家帶來的是非常熱門的開箱遊戲《憶遊十三道》代金券內購版,融合了開寶箱、煉器、獸靈培養、釣魚等特色玩法,支持安卓和 H5 版本,快來一起放置掛機,開出最頂級的裝備吧!
本文講解《憶遊十三道》架設教程,我將詳細講解架設步驟和開服修改,全部都是乾貨!大家也可以直接玩我架設好的公益服,體驗遊戲中土豪氪金的快樂,希望你也喜歡這款遊戲~
我架設的《憶遊十三道》公益服請關注我的公眾號 echeverra, 發送“憶遊十三道”獲取遊戲鏈接和源碼,後台 GM 發送“憶遊十三道GM”免費獲取,遊戲長期維護,快來體驗一下吧。
如果你對 GM 遊戲感興趣,推薦另外幾款我架設的 GM 遊戲:GM 遊戲整理彙總,你也可以訪問我的 521GM遊戲網,歡迎來玩~
憶遊十三道遊戲截圖:
架設
1. 架設條件
憶遊十三道架設需要準備:
- linux服務器,安裝 CentOs 7.6 版本,推薦騰訊雲輕量應用服務器,性價比高。
- 遊戲源碼,關注我的公眾號 echeverra,發送 “憶遊十三道” 免費獲取。
遊戲會佔大概 1.3G 左右的運行內存,可以網頁 H5 玩遊戲,所以對服務器寬帶有一定的要求,建議 2 核 4G 配置的服務器。
2. 連接服務器
服務器安裝完系統後,安裝資源工具目錄下的finalshell.exe,填寫服務器 IP,用户名和密碼連接服務器。finalshell 非常強大,可以輸入命令,文件傳輸和查看服務器狀態等。
3. 安裝寶塔及環境
寶塔是一個服務器運維管理軟件,安裝命令:
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
安裝完後,按照提示信息登錄寶塔,在面板設置菜單中將面板 SSL 關閉,然後在軟件商店中搜索以下軟件安裝:
- web服務器:Nginx 1.26
- 數據庫:MySQL 5.7
- 編程語言:PHP 7.1
- 數據庫:Redis 7.2
- 數據庫:MongoDB 4.4
- 數據庫管理工具:phpMyAdmin 4.4
- 工具:Linux工具箱 2.5
4. 開放端口
我們直接開放服務器所有端口 1-65535,以騰訊雲輕量服務器為例,在防火牆中添加規則選擇 ALL 全部添加。
然後在寶塔菜單安全中添加端口規則,協議選擇 TCP/UDP,端口填寫 1-65535,開放所有端口。
如果擔心開放全部端口有風險,可以在後文中啓動遊戲章節,查看具體遊戲佔用的端口,單獨開放這些端口。
5. 關閉防火牆
通過寶塔菜單終端,執行關閉防火牆命令:
systemctl stop firewalld.service
systemctl disable firewalld.service
6. 上傳源碼
拿到源碼後,將yyssd.zip壓縮文件通過寶塔上傳到根目錄,由於最新的寶塔禁止直接上傳到根目錄,可以先上傳到任一目錄下,再剪切粘貼到/根目錄。或直接通過 finalshell 工具直接上傳到根目錄也可以。
上傳成功後,剪切粘貼到根目錄,並通過命令解壓到根目錄。
cd /
unzip yyssd.zip
並給予 777 全部權限:
chmod -R 777 /data
chmod -R 777 /www/wwwroot/web-mobile
7. 配置環境
先設置虛擬內存,使用 Linux 工具箱添加 Swap,由於遊戲佔用內存並不大,建議 2G 內存的服務器添加,比如添加 4G 虛擬內存。
然後安裝環境,首先下載安裝 Node.js:
cd /
wget https://cdn.npmmirror.com/binaries/node/v16.19.1/node-v16.19.1-linux-x64.tar.xz -P /usr/local/src/
cd /usr/local/src
sudo xz -d node-v16.19.1-linux-x64.tar.xz
sudo tar -xvf node-v16.19.1-linux-x64.tar -C /usr/local/src/
sudo mv /usr/local/src/node-v16.19.1-linux-x64 /usr/local/node
sudo ln -s /usr/local/node/bin/node /usr/local/bin/
sudo ln -s /usr/local/node/lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm
sudo ln -s /usr/local/node/lib/node_modules/npm/bin/npx-cli.js /usr/local/bin/npx
再下載安裝 Typescript:
npm config set registry https://registry.npmmirror.com
npm install -g typescript@3.7.7
sudo ln -s /usr/local/node/bin/tsc /usr/local/bin/
安裝項目依賴:
cd /data/www/shanhai_backend_tb
npm install
8. 修改源碼 IP
源碼中的 IP(43.140.249.71),需要替換成你自己的服務器 IP,替換 IP 文件只有一個:
\www\wwwroot\web-mobile\assets\pzwj\import\8c\8c76ddfa-1253-4d67-8294-3ff77d5a10b0.json
我們也可以通過命令直接修改 IP:
sed -i "s/43.140.249.71/服務器IP/g" `grep 43.140.249.71 -rl /www/wwwroot/web-mobile`
將命令中的服務器IP改成你的服務器 IP,通過命令就可以將全部文件 IP 替換掉。
9. 配置數據庫
憶遊十三道用到了三種數據庫,MySQL、Redis 和 MongoDB,我們來一個一個配置。
首先配置 MySQL,將 MySQL root 密碼修改為 123456。
導入數據庫,執行命令:
mysql -uroot -p123456
create database cdk;
use cdk;
source /data/cdk.sql;
exit
在同步數據中點擊從服務器同步到面板,可以獲取到一個數據庫,説明導入成功。
然後配置 Redis,在性能調整中將密碼 requirepass 修改為 123456,同時將數據庫數量 databases 修改為 1600。
在設置持久化中RDB持久化 3 個時間分別設置 99、99、100000 條,這些設置是為了解決登錄排隊的問題。
最後配置 MongoDB,先使用 Navicat 遠程連接 MongoDB,在資源工具中找到 Navicat_16.zip 解壓後雙擊打開 navicat.exe,無需授權就可以直接使用。
打開界面後,點擊左上角連接,選擇 MongoDB。
使用 SSH 連接,勾選使用 SSH 隧道,填寫主機服務器 IP,用户名密碼是你服務器的用户名密碼,點擊確定。
MongoDB 連接成功後,鼠標右鍵新建數據庫shanhaitbkf和shanhaitbkfflow。
然後開始導入數據庫腳本,雙擊創建好的數據庫shanhaitbkf,鼠標右鍵選擇運行腳本文件,找到資源中的 2 個數據庫shanhaitbkf.js和a_huodong.js,先後分別運行導入,a_huodong.js腳本是我修改的開啓全部活動的腳本。
再雙擊數據庫shanhaitbkfflow,找到資源中的數據庫shanhaitbkfflow.js導入。全部運行導入後,鼠標右鍵數據庫點擊刷新就可以看到導入的所有數據庫集合啦。
以上就是三種數據庫所有配置和導入了,MySQL 存儲授權 CDK 的數據,Redis 會存儲一些遊戲玩家的簡單數據,是永久保存的,而遊戲的主要數據都會存儲在 MongoDB 數據庫中。
10. 創建網站
憶遊十三道只需要創建 1 個站點,在寶塔網站菜單中添加站點。
站點域名為 IP:81(你的服務器 IP),根目錄為 /www/wwwroot/web-mobile,PHP 選擇 7.1 版本。
11. 啓動遊戲
以上步驟都操作完畢,就到了激動人心的啓動遊戲啦!
啓動遊戲:
cd /data/www/shanhai_backend_tb
./t_restart.sh
然後輸入 9,一鍵重啓。
啓動完畢後查看下游戲端口:
netstat -lntp
遊戲啓動成功後,瀏覽器輸入遊戲鏈接:http://IP:81,就可以訪問遊戲啦,輸入一個自己的賬號,就相當於註冊了,因為不是用户名密碼註冊,所以賬號填寫的儘量複雜一些,然後就可以進入遊戲玩耍啦~
12. 客户端修改
憶遊十三道客户端僅支持安卓端,只需要修改一個文件:
/assets/apps/H5EFAD055/www/assets/pzwj/import/8c/8c76ddfa-1253-4d67-8294-3ff77d5a10b0.json
資源客户端目錄下找到憶遊十三道.apk安卓客户端,用好壓軟件打開,將文件8c76ddfa-1253-4d67-8294-3ff77d5a10b0.json拖出來。使用資源中的 Notepad++ 打開,將 IP(43.140.249.71)替換成你自己的服務器 IP。
修改後保存,將文件8c76ddfa-1253-4d67-8294-3ff77d5a10b0.json拖回憶遊十三道.apk客户端對應的目錄下,替換掉原文件。
然後就可以安裝到安卓手機或者電腦模擬器上愉快的玩耍啦~ 蘋果手機玩家也不要慌,直接瀏覽器訪問 H5 遊戲鏈接:http://IP:81也是一樣的哈~
13. 遊戲後台
憶遊十三道有兩個後台,GM 後台和運營後台。
GM 後台需要先生成 CDK,CDK 生成鏈接:http://IP:81/gm/cdk/log.php,默認GM碼:123456。修改 GM 碼需要修改文件/www/wwwroot/web-mobile/gm/cdk/genCdk.php中$gmpwd字段值即可。
生成 CDK 後,訪問授權鏈接:http://IP:81/gm/cdk/,填寫 CDK 和角色編號,角色編號是遊戲中左上角頭像點開後的 ID。
授權後就可以打開玩家 GM 後台:http://IP:81/gm/ht.html,填寫角色編號,選擇物品填寫數量,點擊添加道具,然後就可以發送啦~
運營後台鏈接:http://IP:4030,默認賬號:admin,密碼:123456,運營後台功能包括活動配置,郵件發送,查看玩家數據等,功能還是很強大的。
14. 關閉遊戲
關閉遊戲服務很簡單,同樣輸入命令:
cd /data/www/shanhai_backend_tb
./t_restart.sh
然後輸入 k,全殺 node 就可以啦。
後續
免責聲明
我架設的所有遊戲資源均蒐集於互聯網,如有侵權,請聯繫我,我會馬上刪除。
遊戲都是禁止內充的,只限於技術研究使用,禁止商用,請於下載後 24 小時內刪除,或購買正版。
根據二○○二年一月一日《計算機軟件保護條例》規定:為了學習和
研究軟件內含的設計思想和原理,通過安裝、顯示、傳輸或者存儲軟
件等方式使用軟件的,可以不經軟件著作權人許可,不向其支付報酬
鑑於此,也希望大家按此説明研究軟件。
遊戲修復
遊戲我主要修復了一個問題,在測試階段大概率會出現遊戲無法進入,提示活動已結束,我已經在代碼中進行了修復,後來沒有再出現過該問題。
其他的都是一些小問題,比如遊戲中部分市集道具無法內購,提示參數錯誤問題,並不影響整體遊戲,我就沒有對此進行修復。
因為可以進行一些取巧,比如星魂獲取比較慢,可以將市集第一個兑換輪迴石改為高級星魂袋,對應的文件是/data/www/shanhai_backend_tb/common/excel/shopItem.json,將第一行改為:
{"id":"1","need":[1,1,150],"item":[1,905,100]}
其中所需物品"need":[1,1,150]第一個1固定不變,第二個1是靈石的代碼,如果是代金券對應的代碼是8,150是數量。兑換物品"item":[1,905,100]中的905是高級星魂袋的代碼,100 是數量。修改後需要重啓遊戲生效,效果如下:
具體的物品代碼可以參考文件/www/wwwroot/web-mobile/gm/itemMoney.json,聰明的你肯定想到可以參考這個邏輯繼續添加其他內購物品,但是經測試是不生效的,因為這只是修改的編譯後的前端文件,還需要修改對應的後端文件,比較麻煩,所以我就沒弄,感興趣你也可以修改試試。
其他的改動主要是上面説的 MongoDB a_huodong.js腳本,我將所有活動都開啓了。
還可以進行一些魔改,比如等級上萬可以在資源中魔改教程.zip找到,裏面有對應教程替換文件即可,感興趣也可以試試,我這裏保留默認的上限 200 級版本。
區名修改
區名修改很簡單,打開 Navicat 連接 MongoDB,打開數據庫shanhaitbkf集合a_qufu,修改name即可,重啓遊戲後生效。
公告修改
公告修改也很簡單,同樣修改 MongoDB,打開數據庫shanhaitbkf集合a_setting,修改id為6和9的value值,按照原有格式修改即可,分別代表遊戲內公告和登錄界面公告,重啓遊戲後生效。
密碼修改
開服的話肯定是需要修改一些默認密碼的,否則會被別人登錄篡改數據攻擊,MySQL 和 Redis 的密碼不用修改,因為默認是無法遠程連接的,他人是無法連接登錄的。
主要修改的是運營後台的密碼,需要修改 MongoDB,打開數據庫shanhaitbkf集合a_user,修改pwd值即可。
資源外置
因為遊戲支持 H5 鏈接,所以會加載大量的遊戲靜態資源佔用寬帶,觀察瀏覽器網絡請求,發現大量的靜態資源都在/www/wwwroot/web-mobile/assets目錄下,所以我們將assets目錄上傳到資源服務器目錄/www/wwwroot/13dao下。
注意我們還需要修改一個文件的 IP,文件/www/wwwroot/13dao/assets/pzwj/import/8c/8c76ddfa-1253-4d67-8294-3ff77d5a10b0.json,將 IP(43.140.249.71)修改為你的遊戲服務器 IP。
然後在資源服務器上創建可訪問的資源站點,域名填寫IP:port,IP 為資源服務器 IP,端口 port 不要使用已佔用的端口,根目錄選擇/www/wwwroot/13dao。
創建完後需要修改配置文件,使得遊戲服務器可以跨域訪問到資源服務器的文件。
#CORS-START
add_header 'Access-Control-Allow-Origin' 'http://遊戲服務器IP:port';
add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS,PATCH,DELETE,HEAD';
add_header 'Access-Control-Allow-Headers' 'Content-Type,Authorization,X-Requested-With,Range,Accept,Cache-Control,If-Modified-Since,';
add_header 'Access-Control-Max-Age' '86400';
add_header 'Access-Control-Expose-Headers' 'X-Custom-Header,Content-Length,ETag,Cache-Control,Last-Modified,Expires,Vary,';
if ($request_method = 'OPTIONS') {
return 204;
}
#CORS-END
我們使用重定向的方式獲取資源服務器遊戲資源。修改遊戲服務器的站點IP:81,配置文件中添加重定向代碼:
# 重定向 /assets/ 路徑
location ^~ /assets/ {
return 301 http://資源服務器IP:port$request_uri;
}
這樣遊戲中加載的資源就會 301 重定向到資源服務器上,不消耗遊戲服務器的寬帶啦,Nice~
遊戲重啓
遊戲建議每天至少重啓一次,保證遊戲的穩定性,通過寶塔計劃定時執行重啓遊戲命令:
pkill -9 node
cd /data/www/shanhai_backend_tb
npm run build
nohup node ./dist/app.js >>all.log 2>&1 &
npm run buildAdmin
nohup node --max-old-space-size=8192 ./dist/admin/www.js >>all.log 2>&1 &
遊戲清檔
遊戲的運營後台:http://IP:4030提供了清檔功能,口令是qxt2022,然後分別點擊4、5、9、10,我簡單測試了下,應該是生效的。
不過我更建議按照我的方式清檔,分別對三種數據庫清檔。其中 MySQL 和 MongoDB 按照教程上面的重新導入即可,Redis 在寶塔中可以直接清空數據庫,然後重啓遊戲即可。
數據遷移
首先説下為啥要研究數據遷移,此事説來話長,上月本來是要出白日門戀戰傳奇的,在測試過程中發現當玩家達到兩位數後,遊戲就會明顯延遲卡頓,一聯想要每次發佈新遊戲,我弱小的服務器根本無法讓很多玩家進入,於是我一咬牙就買了一個高配的服務器,想着用高配服務器測試下戀戰傳奇,結果最終發現不是服務器的問題,應該是端的限制,遊戲對併發處理的不好,最終放棄了這款傳奇。
雖然傳奇沒有測試通過,但是這個高配服務器讓我有了一個大膽的想法,那就是以後發佈新遊戲,我先部署在高配服務器上,讓大家暢玩個 1-2 個月,遊戲能夠基本畢業,然後在將遊戲數據遷移到我的普通長久的服務器上,還能繼續玩。
這樣大家就不會因為開服人多,遊戲卡頓或者無法進入而苦惱了,不過就是需要我搭建兩遍遊戲,然後遷移遊戲數據- -,不過想想大家終於能夠暢快的玩我的遊戲了,我還是很激動的,一切都是值得的。
言歸正傳,憶遊十三道數據遷移需要遷移三種數據庫的數據。先關閉兩個服務器的遊戲服務,在原服務器寶塔中 MySQL 和 MongoDB 都可以直接備份數據,然後在新服務器上選擇對應的數據庫導入備份數據。mongoDB 也可以使用 Navicat 導出 js 腳本,然後運行腳本導入新的服務器。這裏重點説下 Redis 數據遷移。
首先一定要先停止新服務器的 Redis,否則導入後很快就會覆蓋掉出問題,找到原服務器文件/www/server/redis/dump.rdb,這個是 Redis 持久化保存的文件,下載下來,然後上傳到新服務器目錄/www/server/redis/,覆蓋掉原文件,再啓動 Redis,啓動會自動讀取這個文件的內容,這樣 Redis 數據遷移就搞定啦!
遊戲源碼
這次我將在資源中分享憶遊十三道的源代碼,不是編譯好的端哈,源碼使用的技術是 cocos + ts,入門門檻並不高,想研究遊戲或者二開的小夥伴可以試試,後面我會嘗試開發修改一下,如果研究的還可以可能會出個教程也説不定,哈哈~
關於遊戲
首先先跟大家道個歉,上個月我沒有出新遊,不是我偷懶哈,而是研究的兩個遊戲都有點問題,沒有傘因為一些原因,我沒敢出,還在觀望,白日門戀戰傳奇端有問題,玩家一多就卡頓的嚴重,根本沒法玩,所以只能放棄,心碎了一地...大家可以關注下我的 521GM遊戲網:https://521gm.cn 的置頂文章,有我的最新動態發佈,大家可以及時瞭解遊戲動態。
然後就開始研究憶遊十三道了,這是我研究的第一個開箱遊戲,之前也有看到,但是因為這些開箱遊戲剛出的時候問題都比較多,所以一直是觀望狀態,等修復的差不多穩定了才開始弄,畢竟我只出精品遊戲嘛,嘿嘿,不得不説,開箱遊戲真魔性,停不下來,哈哈~
感謝新遊測試羣的小夥伴對新遊戲測試做出的貢獻,如果你也有時間,想提前體驗新遊戲也可以一起加入哈:https://echeverra.cn/group。
最後感謝大家一路的支持與陪伴,祝大家遊戲愉快,一切順利~ 我們下個遊戲見!
好啦,以上就是憶遊十三道架設教程的所有內容,希望對你有所幫助,如有問題可通過我的博客 https://echeverra.cn 或微信公眾號 echeverra 聯繫我。
你學“廢”了麼?
(完)
文章首發於我的博客 https://echeverra.cn/yyssd,原創文章,轉載請註明出處。
歡迎關注我的微信公眾號 echeverra,一起學習進步!不定時會有資源和福利相送哦!