网易游戏服务器在哪为什么要做两个服务器?

  我是代长新来自上海享物說,主要负责游戏客户端研发

  享物说是一个大家可以互相赠送物品,有趣、不花钱的社区平台为了创造更好的社区氛围,我们决萣通过小游戏来增加社区的趣味性和互动性

  《乐享花园》是我们在小游戏领域的第一个实践。这个游戏从立项到做完,准确的说昰客户端做完我们一共用了3天的时间。

  但是当时我们种花浇花、领水滴任务都是通过浏览器缓存实现的,如果要上线还要等服务端人员到位否则玩家清理一下手机,自己种的花就没了但等我们服务端人员到位,再到游戏上线就是几周以后的事情了。

  小游戲开发之痛:无法摆脱对服务端的依赖

  相信这也是大部分小游戏开发时会遇到的问题 ―― 功能很简单,但就是摆脱不了对服务端的依赖如下图:

  具体来说,小游戏对服务端的依赖主要有以下两个方面:

  1、微信接口只支持在服务端调用

  这就意味着我们必须为这些接口架设一个中转服务器。如果没有这个中转服务器我们就没法做用户登录,没法获取用户头像、名称信息也拿不到access_token,更沒有办法调用其他微信接口如内容审查。

  2、游戏功能实现需要服务器开发

  对于很多小游戏来说我们唯一用到服务端的地方就昰,储存当前的关卡进度展示一个世界排行,就可以了而想要实现这么一个简单的需求时,你会发现隔行如隔山。

  如何用云开發解决小游戏在服务端痛点

  1、云函数实现微信接口调用

  曾经,我想过绕开服务器直接通过客户端请求微信接口,结果踩了一個坑

  当时做的是聊天功能,需要对玩家发送的消息进行内容审查我看完了接口文档,就跑过去跟服务器同学说内容审查我这边铨部做掉就可以,他那边不需要做额外的处理

  等我们调通,上了体验版一打开报错,我才想起来这个接口文档的上面,有一行尛字而且颜色是灰色的,上面写着:此接口应在后端服务器调用

  第一次看到这句话,还以为它只不过是一个警告所以根本没把咜放在心上,哪知道它居然是一个error!而在这之前我还特意做了一些我认为比较人性化的设计,比如使用这个接口需要一个密钥这个密鑰是有有效期的,当密钥过期的时候我会把玩家发送的内容保存起来,向后端拉取新的密钥后再发送出去,这样对于玩家来说整个過程是无感知的。而现在则意味着所有这些都要服务器去实现了

  后来,我通过云开发来实现多有接口调用事情就简单多了。

  甴于云函数具有微信天然鉴权的能力可以直接返回openid,这一点对做登录确实很方便乐享花园需要和享物说平台打通小红花积分数据,所鉯需要用户的unionid信息这一步也是在云函数中实现的。

  还有access_token就是刚才用到的密钥,为什么要单独说这个密钥呢因为它会用到云函数特别有意思的功能,那就是定时触发器由于这个密钥是有两个小时有效期的,我们设定一个小时间隔定时刷新保存到数据库中,用的時候直接从数据库中取出来就可以了这样可以保证密钥永远是不过期的。

  通过云开发为微信接口准备的中转服务器就不需要了;哽重要的是,服务端与微信接口分离无需关心客户端场景。不管这个客户端是来自h5游戏,还是来自小游戏环境对于服务端来说,都昰一样的再也不需要为客户端提供这样那样的权限接口。

  2、云函数+数据库实现全局排行榜功能

  正如前面提到的痛点,小游戏開发对服务端的另一个依赖是游戏功能的实现对于大部分小游戏来说,我们唯一用到服务端的地方就是:保存用户数据展示一个世界排行榜。而如果用传统服务器实现这些功能的话你会发现需要了解的后端架构知识非常庞大。

  有次我到服务端同学的旁边,原本昰打算diss他的因为我功能已经写完了,他还不知道在忙些什么东西这时我看到他在做什么呢 ―― 一边写dockfile文件,一边写linux命令一边打开Postman调試,完了后发邮件给运维说要执行几个mysql语句

  而所有这些都还没有涉及到他要开发的游戏功能!

  所以说,一门后端语言从会写箌可以放到生产环境中,是两个完全不一样的概念

  云开发提供了数据库、云函数、云存储,通过这些能力我们完全可以取代服务器来实现游戏功能。

  在《乐享花园》里我们通过云开发实现了全民成语接龙这个游戏功能,并且只用了2个云函数就实现了我们对服務器的全部需求这里简单介绍一下这两个云函数:

  第一个云函数是用来展示世界排行榜。由于云函数拉取数据库的条目是有限制的最大是100条,其实这个已经足够满足需求了;当然了你要说我们的客户端很牛,性能不是问题数据什么的先给我来个2000条,也不是不可鉯这里做个处理就可以了。

  另外在检索数据库数据时这个过程会很慢,一定要记得在后台添加数据库索引,可以把这个过程理解为通过磁盘换取CPU计算这样速度会快很多。

  第二个云函数是用来上报玩家数据这个比较简单,一行代码搞定

  就这样从微信接口调用,到游戏功能开发一款不需要服务器的小游戏就全部开发完成了。

  其实云开发可以使用的业务场景,还有很多比如,

  绕过微信https域名请求限制

  存放游戏的全局设置

  保存玩家的个性化数据

  作为开发者也希望云开发未来,可以提供更多的业務场景支持比如

  websocket,刚才说的聊天服务器就可以省掉了;

  帧同步,实时对战类游戏的实现就不再有压力;

  日志服务,方便统计和排查玩家的行为,方便游戏迭代优化;

  大数据统计分析可以做一些事件漏斗等等~

  这样小游戏的研发门槛,就降得佷低很低了!

  如果你有关于使用云开发TCB相关的技术故事/技术实战经验想要跟大家分享欢迎留言联系我们哦!

其实版本的切换又好像是一样的... 其实版本的切换又好像是一样的

那肯定是因为你上的那2个号的补丁不是一个时期的

也就是意味着你登陆的号中有一个账号所在的区是测试區

你对这个回答的评价是

55555, 实在没懂着意思。

你对这个回答的评价是?

你对这个回答的评价是

服务器网络问题 重新连接即可 还囿一种情况可能IP挂死那里了 重启路由器即可

服务器网络质量差连接上去容易卡死

现在网站基本不会出现这样的情况了,只有一些小网站尛服务器才会出现

具体解决方法很简单拔下路由器静置几秒左右重新插上就行

这个方法就看你会不会了,如果会的话请采纳反之可以從麦块提问或者追问我

你对这个回答的评价是?

我要回帖

更多关于 网易游戏服务器在哪 的文章

 

随机推荐