kingston-csj / Jforgame
Licence: apache-2.0
jforgame是一个一站式游戏服务器开发框架。包含游戏服,跨服,匹配服,后台管理系统等模块。同时提供大量业务案例以供学习。
Stars: ✭ 601
Programming Languages
java
68154 projects - #9 most used programming language
Projects that are alternatives of or similar to Jforgame
Summer
这是一个支持分布式和集群的java游戏服务器框架,可用于开发棋牌、回合制等游戏。基于netty实现高性能通讯,支持tcp、http、websocket等协议。支持消息加解密、攻击拦截、黑白名单机制。封装了redis缓存、mysql数据库的连接与使用。轻量级,便于上手。
Stars: ✭ 336 (-44.09%)
Mutual labels: protobuf, redis, game, netty
Java Study
java-study 是本人学习Java过程中记录的一些代码!从Java基础的数据类型、jdk1.8的Lambda、Stream和日期的使用、 IO流、数据集合、多线程使用、并发编程、23种设计模式示例代码、常用的工具类, 以及一些常用框架,netty、mina、springboot、kafka、storm、zookeeper、redis、elasticsearch、hbase、hive等等。
Stars: ✭ 571 (-4.99%)
Mutual labels: redis, mina, netty
Game Server
Distributed Java game server, including cluster management server, gateway server, hall server, game logic server, background monitoring server and a running web version of fishing. State machine, behavior tree, A* pathfinding, navigation mesh and other AI tools
Stars: ✭ 916 (+52.41%)
Mutual labels: game, mina, netty
Spring Boot Demo
spring boot demo 是一个Spring Boot、Spring Cloud的项目示例,根据市场主流的后端技术,共集成了30+个demo,未来将持续更新。该项目包含helloworld(快速入门)、web(ssh项目快速搭建)、aop(切面编程)、data-redis(redis缓存)、quartz(集群任务实现)、shiro(权限管理)、oauth2(四种认证模式)、shign(接口参数防篡改重放)、encoder(用户密码设计)、actuator(服务监控)、cloud-config(配置中心)、cloud-gateway(服务网关)等模块
Stars: ✭ 323 (-46.26%)
Mutual labels: redis, netty
cheshuo
🎃A lightweight game server framework. Based on Springboot and Netty. Using ProtoBuf as communication between client and server.
Stars: ✭ 23 (-96.17%)
Mutual labels: protobuf, netty
Cellnet
High performance, simple, extensible golang open source network library
Stars: ✭ 3,714 (+517.97%)
Mutual labels: protobuf, game
Framework Learning
计算机学习资料(Java , Jvm , Linux , Mysql , Netty , Redis , Netty , Spring , SpringBoot , Mybatis , Rabbitmq ,计算机网络 , 数据结构与算法 , 设计模式 )Github网页阅读:https://guang19.github.io/framework-learning , Gitee网页版阅读: https://qsjzwithguang19forever.gitee.io/framework-learning
Stars: ✭ 416 (-30.78%)
Mutual labels: redis, netty
Centrifuge
Real-time messaging library for Go with scalability in mind
Stars: ✭ 446 (-25.79%)
Mutual labels: protobuf, redis
Spring boot
Spring Boot 使用总结 和 demo。 如果您觉得本代码对您有所帮助,请点击页面右上方"Star"
Stars: ✭ 431 (-28.29%)
Mutual labels: protobuf, redis
Pdf
编程电子书,电子书,编程书籍,包括C,C#,Docker,Elasticsearch,Git,Hadoop,HeadFirst,Java,Javascript,jvm,Kafka,Linux,Maven,MongoDB,MyBatis,MySQL,Netty,Nginx,Python,RabbitMQ,Redis,Scala,Solr,Spark,Spring,SpringBoot,SpringCloud,TCPIP,Tomcat,Zookeeper,人工智能,大数据类,并发编程,数据库类,数据挖掘,新面试题,架构设计,算法系列,计算机类,设计模式,软件测试,重构优化,等更多分类
Stars: ✭ 12,009 (+1898.17%)
Mutual labels: redis, netty
netty-chat-tutorial
Netty Chat tutorial with Protobuf
Stars: ✭ 23 (-96.17%)
Mutual labels: protobuf, netty
twjitm-core
采用Netty信息加载实现长连接实时通讯系统,客户端可以值任何场景,支持实时http通讯、webSocket通讯、tcp协议通讯、和udp协议通讯、广播协议等 通过http协议,rpc协议。 采用自定义网络数据包结构, 实现自定义网络栈。
Stars: ✭ 98 (-83.69%)
Mutual labels: protobuf, netty
Clusterdevicecontrolplatform
Java & Vue.js 全栈「集群设备管理云平台『后端部分』」,使用 Spring Boot、Netty 搭建 TCP 服务器与上万设备的集群通信,基于 JavaFX 的 GUI 应用程序模拟上万台设备的行为,并可对服务器进行压力测试。
Stars: ✭ 330 (-45.09%)
Mutual labels: redis, netty
rpc-spring-boot-starter
自定义rpc框架,支持Java序列化和protobuf序列化协议,多种负载均衡算法
Stars: ✭ 75 (-87.52%)
Mutual labels: protobuf, netty
Him Netty
开源的H5即时聊天系统 spring-boot + netty + protobuf + vue ~
Stars: ✭ 194 (-67.72%)
Mutual labels: protobuf, netty
Nettychat
基于Netty+TCP+Protobuf实现的Android IM库,包含Protobuf序列化、TCP拆包与粘包、长连接握手认证、心跳机制、断线重连机制、消息重发机制、读写超时机制、离线消息、线程池等功能。
Stars: ✭ 1,979 (+229.28%)
Mutual labels: protobuf, netty
Istio Micro
istio 微服务示例代码 grpc+protobuf+echo+websocket+mysql+redis+kafka+docker-compose
Stars: ✭ 194 (-67.72%)
Mutual labels: protobuf, redis
Cookbook
🎉🎉🎉JAVA高级架构师技术栈==任何技能通过 “刻意练习” 都可以达到融会贯通的境界,就像烹饪一样,这里有一份JAVA开发技术手册,只需要增加自己练习的次数。🏃🏃🏃
Stars: ✭ 428 (-28.79%)
Mutual labels: redis, netty
English
中文 |项目介绍
jforgame,是一个用java编写的轻量级高性能手游服务端框架。项目提供各种支持快速二次开发的组件,以及对生产环境的服务进行管理的工具。同时,为了使用户能够快速上手,项目提供了若干常用业务功能作为演示。
项目特点
- 搭配框架博客栏目教程,快速理解项目模块原理
- 支持socket/webSocket接入,兼容手游/页游服务端架构
- 通信协议支持protobuf或java反射,为客户端提供多种选择
- 框架提供多种组件,可以直接二次开发业务逻辑
- 提供热更机制以及jmx接口,方便对生产项目进行监控与维护
- 有独立http后台网站,为游戏运维/运营提供支持 --> 后台管理系统
模块组织结构
jforgame
├── jforgame-common --基础公共服务
├── jforgame-admin --后台管理web工具
├── jforgame-match --跨服匹配服
├── jforgame-merge --合服工具
├── jforgame-net --包括io网关模块,玩家消息自动映射到业务模块,异步处理玩家消息的线程模型
├── jforgame-orm --使用自定义的orm框架,用于数据库表记录与程序pojo对象的相互转换
├── hotswap-agent 支持游戏业务热更新的agent机制
├── jforgame-server --游戏基础组件以及业务逻辑模块
| ├── cache包,使用guava cache库,用于支持系统的缓存框架
| ├── db包,使用独立线程,异步处理玩家及公共数据的持久化
| ├── monitor包,系统监控模块,包括使用jmx对程序进行监控
| ├── listener包,事件驱动模型
| ├── doctor包,采用Groovy执行任意动态代码,或JDK的instrument机制修改类方法体
| ├── cross包,天梯等跨服赛事的通信基础
| ├── game/gm包,游戏内部金手指命令
| ├── game/admin包,游戏运营/运维后台命令
| ├── redis包,跨服通信(比如跨服排行榜)
| ├── tools包,简化项目开发的辅助小工具
| └── utils包,各种工具类
第三方技术栈
名称 | 用途 | 官网 |
---|---|---|
Mina | nio socket 框架 | http://mina.apache.org/ |
Netty | nio socket 框架 | http://netty.io/ |
jprotobuf | protobuff协议层注解 | https://github.com/jhunters/jprotobuf |
Guava | 玩家数据缓存系统 | https://github.com/google/guava |
Jedis | 跨服数据缓存 | https://redis.io |
quartz | job调度任务 | http://www.quartz-scheduler.org/ |
groovy | 热更新维护相关 | http://www.groovy-lang.org/ |
proxool | mysql数据链接池 | http://proxool.sourceforge.net/ |
slf4j+log4j | 日志系统 | https://www.slf4j.org/ |
maven | 依赖管理及项目构建 | http://maven.apache.org/ |
ToDoList
- 登录服工程
- 更多基础设施与业务演示
快速开始
- 使用git下载代码 git clone https://github.com/kingston-csj/jforgame;
- 将代码导入带有maven插件的IDE(选择根目录下的pom.xml文件);
- 新建数据库game_data_001和game_user_001,并分别导入test/resources下的同名sql文件;
- 启动服务端,入口为ServerStartup类
(开发工具需要将src同目录的configs视为代码目录!如果导入项目所有模块,还需要设置好工作区间。例如idea设置:run->EditConfirations->Workingdirectory,设置为,**\jforgame\jforgame-server。); - 启动客户端,入口为ClientStartup类;
(温馨提醒:在根目录执行mvn clean package install -DskipTests 后,在ide环境下就不用导入所有模块了。例如,只导入jforgame-server模块)
各模块demo教程 --> wiki
本栏目详细教程 --> csdn博客
欢迎star/fork,欢迎学习/使用,期待一起贡献代码!!
请作者喝杯咖啡
如果您觉得有所收获,可以请作者喝杯咖啡。大家的支持,促使我不断改进优化,谢谢!
一起交流
如果您发现bug,或者有任何疑问,请提交issue !!
架构解析,技术咨询,请加Q475139136(有偿服务,非诚勿扰!!)
免责申明
本项目只用于学习研究,禁止用于非法获利和商业活动。如产生法律纠纷与作者无关!!
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].