归档 2020年7月

最后更新于 .

!!!本文含有《最后生还者2》剧透

记录一下最近的几个游戏吧,也顺便分享一下感受。

一. 《健身环大冒险》通关

先贴几张通关截图。

从今年2月份开始锻炼,一开始因为疫情在家办公,所以保持每天锻炼一次的频率,后来恢复上班后,保持两天一次的频率。

到7月24号完全通关,总共瘦了15KG。

极其推荐给想要锻炼身体的朋友。

二. 《最后生还者2》通关

这一代网上差评很多,虽然我对结局也有些抵触,但也还勉强能够接受。

且不说埃比中途放过艾莉一次(如果算上开头那次应该是两次)的原因,如果艾莉最终真的选择杀死埃比,那么要不要把勒弗一起杀死?

如果选择杀死的话确实可以永诀后患,但是埃比尚且知道放过无辜的人,如果艾莉反而杀死了无辜的勒弗,那不是艾莉比埃比更加残忍?

如果选择不杀的话,那么这场循环往复的复仇又什么时候能够终止?

更何况艾莉也开始有了自己的孩子,乔尔能够为了艾莉放弃全人类,那么艾莉能为了孩子做到什么呢?

但我也能理解很大一部分低分玩家的情绪,尤其对于和我一样有着一代感情的玩家来说,确实对于这样的结局是难以接受的。

乔尔的死,杰西的死,一个刚刚还活蹦乱跳的人,突然就在你眼前一动不动了。

你痛苦,你愤怒,你想复仇。

但偏偏,制作组让你去控制埃比,让你去体验埃比的痛苦,她又何尝不是失去了父亲,曼尼,欧文?

我印象最深刻的一点是曼尼死的那一段,当我看到曼尼死在面前 ...

最后更新于 .

发现想抽时间写博客实在是太难了,不过我觉得今天这一篇还是很值得写一下的。

熟悉我的同学应该都知道,我之前做了一款《矩阵危机》的产品,使用的是帧同步的技术。

简单画一下V1架构图:

  • Gateway

    网关服务器。

    负责客户端连接的接入,使用协议TCP。

    使用C++编写。

  • KcpProxy

    Kcp协议的代理服务器。

    客户端默认使用Kcp连接服务器,如果失败会自动回退到Tcp。

    使用C++编写。

  • RoomServer

    房间服务器。运行战斗逻辑,每个房间同时仅能运行一场战斗,帧率为15帧/秒。

    房间服务器与Gateway间通过Tcp连接,每个房间建立一个一条独立的连接。

    使用Python编写。

整个架构还是比较清晰的,但是里面有个极大的问题:性能

因为python的性能实在是太差了,对于RoomServer每秒15帧这种cpu密集型的业务场景完全不适合。

至于python的性能有多差,我当时做过一个简单的测试,同样的业务代码,c++是python性能的10倍左右。

可能直接说这个数字大家也没什么感觉,但是要知道换算成服务器的话,那就是10倍的服务器量,10倍的成本。

所以这也是要做架构升级的原因。

而升级的方案也有多种,其中一个方案如下:

其核心逻辑是将CPU密集的RoomServer放到Gateway中去,而额外多出来一组RoomController负责对Gateway和Room进行控制。

RoomController可以继续使用python实现。

这样的方案虽然解决了性能问题,但是却导致gateway的功能过于耦合,不是好的设计方案。

还有一个方案就是将RoomServer直接使用C++重写,每个Room开一个线程 ...

每日归档

上个月

2020年6月

归档