查看: 197|回复: 10

35岁程序员回头看某款游戏技术架构--创世兵魂

[复制链接]

1

主题

2

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 2023-4-21 10:22:06 | 显示全部楼层 |阅读模式
我已超过35岁了,但我依然是程序员,干的动,也相信以后依然干的动。
我12年硕士毕业,开始了我的程序员职业生涯,第一份工作是参与开发一款3D FPS游戏网页游戏,该款游戏可以说技术非常超前网页游戏大行其道的年代,它算是首款真正的3D FPS,打开网页便可以玩 CS,你能想象么?它的名字就是《创世XX》,估计很多人的学生时代都有玩过吧,暑假时全网实时在线可达 10w人,在2018年游戏正式停止运营,现在谈谈它的一些技术实现应该没有什么保密限制了。我是这款游戏的后台开发,在近10年之后回头看下当时的技术架构,也别有一番趣味:人和事值得缅怀,技术同样值得!
玩家场景描述

玩过fps游戏的应该比较清楚的

  • 战斗外,商城枪支等充值购买,个人积分排名等信息,个人任务完成,个人装备仓库,活动,新手训练,军团系统;自建或加入PvP、PvE等模式房间开始战斗,进入天梯匹配自动开始战斗等
  • 战斗内,PvP 个人竞技、爆破、团队竞技、生化等模式,PvE就是打怪闯关,玩的人不多
从体验来说,游戏产品细节上是比较糙的,毕竟都是没太多工作经验的年轻人开发的,但其实还蛮好玩的,我们在开发过程中没事也偶尔玩几局体验一下。
技术架构


  • 前端:Adobe Flash,语言 ActionScript
  • 后端:web框架 GlassFish,语言 Java,通信框架 XSocket,数据库 MongoDB
架构图(模块图):



游戏分服架构

StateServer,分区单点,完成战斗外的商城、房间等功能,用本地缓存加快登录后玩家数据的加载及数据更新,每个区服配备单独的MongoDB存储玩家数据
BattleServer,战斗内处理每局游戏玩家请求,并发高,与玩家浏览器直连,无持久化,战斗结束数据回传
MatchServer,跨区唯一,匹配玩家组局游戏后调度到BattleServer开启游戏,单进程单线程,收到请求后单线程处理,无需锁,效率很高
后台除了上面提到的几个框架,其他的都纯靠Java原生代码自己写,比如多服务通信,现在知道可以用RPC框架可以做到服务发现,当时都是通过xml配置手动维护机器地址,每次部署调整那叫一个惊心动魄。
整体架构在性能上有很多优化考虑,比如如何避免加锁,如何减少DB操作;但可用性上缺少考虑较少,服务存在单点,中间数据容易丢失;扩展性上,分服起到较好的战斗外并发分流,而战斗内可以扩展服务提升支持的战斗场数,而并发只存在于同局10人的范围内,完全可以通过线程独立进行无锁处理。
优秀实践

今天比较晚,这块内容先写到这,先抛一些可能的问题,如果文章热度高后续挨个介绍该款游戏的优秀实践。

  • 相比简单的web应用,FPS游戏对实时性很高,并发也很高,技术上有哪些优化实践,如何玩锁的?
  • 每个玩家的天梯积分随时都在变化,在全网全服上几千万的账号如何做到实时给出当前排名?
  • 类似王者荣耀的匹配,创世的天梯匹配如何做的,有哪些算法考量?
  • 为什么用MongoDB,以及玩家数据的存储方案是怎样的,遇到过哪些坑?
你们又有哪些想了解的也可以评论给我
回复

使用道具 举报

0

主题

61

帖子

120

积分

注册会员

Rank: 2

积分
120
发表于 2023-4-21 11:23:00 | 显示全部楼层
我也顶起出售广告位
回复

使用道具 举报

0

主题

60

帖子

118

积分

注册会员

Rank: 2

积分
118
发表于 2023-4-27 22:43:56 | 显示全部楼层
支持你哈...................................
回复

使用道具 举报

0

主题

44

帖子

87

积分

注册会员

Rank: 2

积分
87
发表于 2023-4-28 13:50:53 | 显示全部楼层
啊啊啊啊啊啊啊啊啊啊啊
回复

使用道具 举报

1

主题

42

帖子

85

积分

注册会员

Rank: 2

积分
85
发表于 2023-5-19 08:35:23 | 显示全部楼层
传说中的沙发???哇卡卡
回复

使用道具 举报

1

主题

61

帖子

122

积分

注册会员

Rank: 2

积分
122
发表于 2023-6-13 12:09:07 | 显示全部楼层
大人,此事必有蹊跷!
回复

使用道具 举报

0

主题

52

帖子

103

积分

注册会员

Rank: 2

积分
103
发表于 2023-7-5 18:22:25 | 显示全部楼层
占位编辑
回复

使用道具 举报

1

主题

45

帖子

90

积分

注册会员

Rank: 2

积分
90
发表于 2023-7-26 05:16:13 | 显示全部楼层
路过 帮顶 嘿嘿
回复

使用道具 举报

2

主题

44

帖子

90

积分

注册会员

Rank: 2

积分
90
发表于 2023-7-26 16:35:20 | 显示全部楼层
介是神马?!!
回复

使用道具 举报

0

主题

53

帖子

104

积分

注册会员

Rank: 2

积分
104
发表于 2023-8-4 18:57:16 | 显示全部楼层
看起来好像不错的样子
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表