目录
- 前言
- 1、常见游戏模块
- 2、开发语言与项目构建发布
- 3、JAVA游戏服务器,需要掌握的技术
- 4、总结
前言
《摩尔庄园》前段时间上线, 持续超出市场预期,相信也有不错的收益。游戏好玩,所有玩家看到了前端,但是做一款游戏,离不开后台游戏服务器的支持,服务器都要做什么,服务器的架构是什么,需要哪些技术,一系列的问题有没有思考过?下面讲下作为做服务器开发中需要做的事。

1、常见游戏模块
游戏玩法
游戏开发中常见的玩法模块,一般的游戏都会包含这些玩法
新手引导、任务系统、背包系统、装备系统、副本、战斗系统、活动、商店、充值,竞技场,公会系统,好友系统、聊天系统、邮件系统、红点系统等等
通用模块
- 定时job,处理一些定期活动重置,排名发奖励等
- 登录,顶号,离线,断线重连处理
- 敏感词检测,版署需要
- 日志系统,记录玩家行为日志,奖励日志等
- 功能开启关闭,有时候游戏出问题后(比如刷奖励)指定功能需要及时关闭
- 掉落,奖励随机规则
- 防沉迷系统,主要是未成年人保护规则
- 聊天监控,
- 错误上报机制
- 道具卡兑换,邀请码
- 夏令时问题处理
- 不停服热更线上代码
- 紧急下家运营活动
- 合服
运营后台管理系统
- 发布下架活动
- 发布公告
- 发送邮件
- 游戏资源冻结
- 账号封号,解封,禁言
- 查询当前在线人数
2、开发语言与项目构建发布
一般游戏服务器使用C++,nodejs,photon, JAVA等语言开发,端游戏一般选择C++,因为端游对服务器的性能要求相对比较高一些,语言各有利弊,C++效率高,但是掌握度难些,JAVA易于掌握,开发效率搞,目前对于追求快速上线率的页游和手游来说,JAVA成了一个不错的选择,下面主要以JAVA项目来讲述服务器各模块之间如何交互,如何分工合作。项目采用maven框架构建,简化了项目依赖管理, jar包便于与持续集成工具(jenkins)整合一键打包发布svn,一般地,游戏服务器的架构划分如下三层:网络接入层、游戏逻辑层、数据存储层
网络接入层
通信方面使用Netty框架,主要封装各种物理底层通讯机制,让应用程序员关注业务逻辑。协议数据使用protobuff, Protobuf有更高的消息压缩率,时间效率和空间效率都有很大的提升,支持多语言,跨平台
数据缓存以及存储
市面用的游戏用到的数据库大多是下面这几种:
MySQL,MongoDB, Redis
游戏服务器都配备了数据库,是因为游戏越来越复杂,数据量也越来越多,而且采用数据库也方便对数据的管理和备份。mysql主要存储一些游戏中玩家数据,redis主要存储一些跨服数据,比如跨服排行榜数据实时排名,或者数据的缓存。
游戏中玩家数据需要及时响应,及时反馈,一般游戏中绝大部分的数据是有缓存的,游戏中玩家产生的数据变化,一般先修改玩家缓存数据,一定时间后,缓存数据定时批量写入数据库,长期使用不到的缓存将会被清理,减少内存空间使用。
游戏逻辑层
服务器各类模块介绍 :
| 模块名 |
功能类型 |
功能说明 |
| yyds-all |
maven父功能 |
管理模块关系,maven的一些配置 |
| yyds-core |
公共模块 |
游戏业务无关的公共代码。 |
| yyds-common |
基础模块 |
游戏业务相关的公共代码。 |
| yyds-game |
游戏服 |
处理游戏业务逻辑(游戏和聊天业务,聊天消息通过网关进行转发) |
| yyds-gate |
网关服 |
负责维护客户端连接,转发消息。 |
| yyds-scene |
场景服 |
处理地图相关业务(移动、视野同步) |
| yyds-web |
WEB服 |
登录、创角、充值、GM命令、运营后台操作入口。 |
| yyds-platform |
跨服 |
游戏服之间的消息中转,跨服类玩法。 |
| yyds-fighter |
战斗服 |
处理战斗逻辑 |
服务器架构 :
注:platform 和多个游戏服相连接。
流程说明:
登陆流程:玩家登陆时首先连接web服,进行登陆,验证成功后,会将玩家登陆的token 放到Gate服。然后玩家连接Gate服登陆到Game服。
战斗流程:玩家在Game服发起战斗,比如匹配战斗,则在Game服上匹配,然后送入Fighter 战斗服进行战斗,此时所有的战斗消息从Gate服直接路由到Fighter服,战斗结果发送给Game服,然后进行发奖等逻辑
玩家移动流程:玩家移动消息同步给Scene服,Scene服每一帧同步给所有的玩家
3、JAVA游戏服务器,需要掌握的技术
- Java基础知识
- JavaNIO编程
- 多线程编程,并发集合的掌握,游戏中有很多并发事件,安全性尤为重要
- 热更新,内存,CPU性能分析
- Netty,Mina网络框架精通一种
- Redis,memcache,MongoDB等单用或者组合使用
- SQL语言,数据库:如mysql
- 数据库操作,比如mybatis,Hibernate
- spring,springMvc主要用于http协议的WEB服务器
- tomcat,Nginx
- Linux常用的基本命令及shell脚本(服务器发布,启动关闭)
4、总结
游戏服务器因为需要面向所有的玩家,所以对服务器的稳定性要求比较高,不能总是出现问题,需要在开发中细心。
策划的设计经常天马行空,所以也要考虑到服务器的功能扩展性,争取在尽量少写代码的情况下完成功能。
服务端程序的开发速度很重要,需要考虑模块的通用性,功能的扩展性,尽量的降低bug可能性,合理设计。
服务端同学任重道远,需要不断的学习和积累经验,才能做好游戏的支撑。
加油吧,希望各位同学做出自己喜欢的游戏,这篇文章就到这里了,希望能帮到你,请多多关注的更多内容!
相关推荐:
SEO部:开启数字化营销新纪元的幕后英雄,株洲营销推广是什么公司
SEO要素:优化网站排名的关键因素全解析,棒球大联盟营销推广文案
AI人工智能:改变未来的科技革命
洗文章AI:让内容创作变得更智能、更高效
OpenAI新产品与现有技术的完美结合:赋能未来的智能变革,培训 ai
SEO确实是企业增长的关键,这些技巧让你走在行业前沿,山东网站建设信息
seo系列什么意思,seo的分类 ,que n ai je
ChatGPT使用问题?如果您正在使用VPN,请尝试将其关闭,ai制作渐变立体
SEO优化如何进行:提升网站排名,轻松超越竞争对手,ai写作怎么操作手机
SEO做网站点击:提升网站流量的关键策略,国内ai写作论文
ChatGPT-01:开创人工智能新纪元,AI如何画模糊的云层
优化提长:让企业效能提升的秘密武器,长沙网站建设创意
SEO更多-让你的企业站点在搜索引擎中脱颖而出,如何结交seo大神
SEO架构:提升网站流量的核心策略,东营南江全平台营销推广
在线AI生成文章:智能写作的未来趋势
seo竞价做的什么工作,seo 竞价 ,office智能ai
AI缩短短文-提升创作效率,写作新体验,光速写作业ai写作app
ChatGPT-深度学习与自然语言处理的革命性突破,金华ai视觉锁螺丝机
“曝光量扩大,助力品牌腾飞的秘密武器”,盐山网站优化免费咨询
SEO优化要钱吗?揭秘SEO投资背后的价值与回报,ai领域
SEO结构优化:助力网站提升排名与流量的关键策略,杭州小网站推广哪家好做
SEO用户:如何为您的网站带来持续流量和转化,惠州网站推广哪个好
GPT-3.5免费吗?揭秘AI智能助手的未来与收费模式,ai 美美
SEO技巧提升网站流量和排名,助力企业快速崛起,ai080206.
SEO外,如何提升网站整体营销效果?,文轩网络营销推广方案
为什么要seo 运营,为什么需要seo ,ai人物头盔
ChatGPT全球宕机:人工智能的崩塌与未来的挑战,中国ai和美国ai教父
SEO占位:如何在竞争激烈的市场中占得先机?,梁平区省心全网营销推广
什么是seo寄生虫,寄生虫seo原理 ,AI 疫
SEO妍:搜索引擎优化的艺术,轻松打造网络营销新未来,辽宁网站建设贵不贵
SEO自己:打造属于你的数字营销利器,微信裂变营销推广软件
ChatGPT:OpenAI的创新之作-一款颠覆传统的语言模型,ai球衣号
如何用AI改文章,让写作更高效、精准,提升内容质量
ChatGPT破解:让AI打破语言与思维的边界,ai模板vis
云推SEO:让您的网站在激烈竞争中脱颖而出,网站优化公司欢迎来电
SEO监控:精准把握网站排名与优化成效的利器,湖南seo排名商家名单
OpenAI无法验证支付方式?解决方案与常见问题解析,你好月光ai
SEO元素-提升网站排名的核心要素,推广分成网站有哪些
SEO优化:提升网站流量的终极指南,揭阳网站快速推广
交友群都有哪些,交友群是干什么的 ,ai猫csgo
AI生成文章免费工具,让创作变得轻松又高效,ai安心健
专业SEO助力企业在激烈市场竞争中脱颖而出,嘉兴海外网站推广价格
seo资源指的是什么,seo资料 ,绿眼AI
ChatGPT为什么打不开了?揭秘背后的原因与解决办法,ai业务后端
ChatGPT充值打不开?这几招教你轻松解决问题!,免费的ai写作绘图
SEO管家:为您的网站保驾护航的智能SEO助手,网站推广作用有哪些类型
seo矩阵运营中心是什么,seo矩阵运营中心是什么意思啊 ,北京ai特效
ChatGPT怎么找梯子:突破网络限制,轻松访问AI助手的终极指南,鬼灭之刃人物AI还原
什么是seo运营,什么是seo营销 ,ai绘画沙地
文章AI扩写:突破创作瓶颈,提升写作效率的秘密武器