1. 程式人生 > >開源遊戲框架

開源遊戲框架

一、netty+redis分散式搭建棋牌遊戲伺服器

https://github.com/shiyun3210/jyqp

https://github.com/shiyun3210/jyqp.git

 

二、開源麻將,供使用者學習。使用netty 開發

https://github.com/henanren/majiang

https://github.com/henanren/majiang.git

作者部落格:

http://www.laomn.com

啟動流程:

 

三、使用netty4.X實現的手機遊戲伺服器

支援tcp,udp,http,websocket連結,採用protobuf自定義協議棧進行網路通訊,支援rpc遠端呼叫,使用mybatis3支援db儲存分庫分表,支援非同步mysql儲存,db儲存時同步更新reids快取。 使用ExcelToCode工程,將excel資料生成java類和json資料字典,DictService直接讀取json,減少資料字典部分程式碼。使用game-executor工程,增加遊戲內的非同步事件全域性服務, 支援事件sharding,均衡的非同步執行事件邏輯

https://github.com/jwpttcg66/NettyGameServer

https://github.com/jwpttcg66/NettyGameServer.git

文件地址

https://github.com/jwpttcg66/NettyGameServer/wiki

 

四、JgFramework - 基於Netty的強大的遊戲伺服器框架

https://github.com/bupt1987/JgFramework

https://github.com/bupt1987/JgFramework.git

特點

1、使用netty作為底層,效能得到保障

2、支援socket和websocket2種連線模式,可以自由選擇

3、簡單實用的路由,方便handler開發

4、非同步無鎖的資料同步

5、spring+Hibernia的自動注入和事務管理

6、mysql資料庫的讀寫分離以及對多資料庫的讀寫支援

7、傳輸資料的多樣化,可以自用實現介面來實現不同的傳輸資料型別,現在使用的是json

8、框架自帶了認證服務和管理服務,有簡單的管理命令,需要telnet連線到埠(預設38080)

9、方便的ip段限制功能

10、方便設定心跳檢查

11、登入方和服務端之間的認證,可通過實際介面來完成,預設使用的rsa加密傳輸認證碼

12、效能優良的排隊系統

13、豐富的工具類:memcache、redis等

14、基本遊戲模組的抽象

效能測試

測試資訊

cpu : AMD A10

記憶體 : 8G

測試專案 : https://github.com/bupt1987/JgWeb   

測試指令碼 : src/test/java/client/TestWebSocket.java

測試方式 : 自壓

測試結果

在100個登入使用者,每個使用者在登入完成,再init操作之後,每個使用者傳送100000個請求,   

得到每秒處理請求數在3.5W左右。

歡迎加入

如果對該系統有興趣可以發郵件至 [email protected] 一起探討,歡迎加入

 

五、JgFramework-demo

https://github.com/bupt1987/JgWeb

https://github.com/bupt1987/JgWeb.git

注意事項

1、開發是在Eclipse下開發的,需要maven支援,jdk在1.7以上

2、啟動使用tomcat或者直接執行com.zhaidaosi.game.serve.BootStart 中的main方法。

3、如果是tomcat的訪問http://127.0.0.1/JgWeb,如果是執行main方法的,  

用瀏覽器開啟src/main/webapp/index.html即可

4、注意新建資料庫,sql在docs目錄下,還要注意資料庫使用者名稱密碼,  

在src/main/java/jdbc.properties

配置檔案

見src/main/java/下

1、spring的配置檔案:applicationContext.xml和services.xml

2、框架配置檔案:jgframework.properties,  

預設配置見JgFramework框架中的default_jgframework.properties

3、資料庫配置:jdbc.properties

 

六、一個初級基於netty的java遊戲後臺開發框架

https://github.com/vincepeng/gameNettyDemo

https://github.com/vincepeng/gameNettyDemo.git

     這是一個基於netty的java遊戲後臺開發框架,很初級但是和當前我司實際開發環境也比較類似. 使用protobuf編碼資料,使用一個short位元組區分訊息型別. 用法: 先搭建好protobuf環境,protobuf.exe放置在lib目錄裡面 然後執行nettyServer; 執行client1,client2,client3之一,可以自動連線服務端,服務端回包歡迎,對應客戶端傳送給服務端一句話,服務端push給所有線上玩家

 

演算法

一、麻將胡牌演算法以及AI演算法