架构篇《一》:我会什么?能完成一个什么样的架构

开篇:

        我一直觉得国产游戏,需要上升一个新高度。不再是那些,一天到晚648的氪金,圈钱,圈时间。某讯的楼已经盖到40多层那么高了。 可还是在做着648氪金,骗小孩子的钱。在从技术角度和人才资源上,完全都是绰绰有余的。

        国产网游起步在,  03年左右。03x讯代理某游戏,上架了国区。那个时候的网游,初步还都是2D,大话西游,传奇这些类似暴力的东西。那个黑暗的年代里,烧钱如烧纸,倾家荡产打装备备。到我们这个年代,这些东西默默的退场了。给现在的00后怕是,根本不会多瞧一眼。但,就算这样,照样可以月流水2亿。

        所以, 那个时候的是一种什么样子的架构。上古时代可能就没有那么多刀子,勺子的 直接就是ClientN,Server。

架构篇《一》:我会什么?能完成一个什么样的架构_第1张图片

那么,对应的后期,人数越来越多,服务器的性能也到达了极限,无法满足当前的需求了。开发商的钱包赚的越来越厚。开始,想这,拆分服务器。把对应的服务分到对应的服务端上,这时候就有了,一些所谓的什么 GateWay,Login,Account, Logic,GamServer,CenterServer,DB这些。把对应的服务都独立出去。这个时候服务端,会长什么样?就是大概下面这样。

架构篇《一》:我会什么?能完成一个什么样的架构_第2张图片

客户端,依旧不变,服务端,被拆分出来,好多功能。client 只跟网关交互,而网关去请求对应的服务。这就是一种MMO类型的游戏架构了。架构的方式多种多样,所选对应游戏的类型不同,架构方式也不同。比如卡牌类, MOBA类,还有网页端的,这就是三种了。就不列举了。毕竟能有一套,玩精的就足够你折腾了。这上面大多是一种长连接架构(TCP),网页端不算(HTTP)。

        那么下一带,如今的现在的架构会是什么样的。有人可能听过ECS的架构。ECS架构 ,这个架构叫ECS,是17年GDC 峰会上谈出的,提到了用一种EntityComponentSystem的架构,虽然现在早已物是人非了。ow2也远遥不可及了。翻译过来就是 实体(Entity),组件(ComponentS),系统(System)统称ECS。这个架构给人的感觉是一种新的思维方式去解决问题。并不是按照传统的拆分,组合。

           把结构这个简单的说一下:把官方那个图拿过来更形象一点。是这样说的,假如,我有一个世界,我的世界里,只有两种东西System,Entity。Entity里只有Component(组件)组件里包含了各种组件A,B,C,D。而System里就只包含了行为。换句话说,就是。这个System里只有函数,Component里只有成员变量。System利用这些成员变量表现行为。world世界,又EntityAdmin。所以大体就是这样一个结构。这个项目从开始立项研发,到发布,大概是四年的时间。而这个主讲前身是泰坦陨落的主要程序之一。泰坦项目前后经历许多的变革,不得放弃了。随后出来的这overwatch算是泰坦的前身。彼此有着不可拆分的关系。18年之后,Unity上陆续也有了一些ECS的架构,具体的可以去搜搜。我不写了。Lua的ECS也有,好巧不巧的我还用过。你问我懂了多少?那就是没有。  

        好多人说,这个moba+fps两种类型游戏的结合。其实是四种,深刻的体会,去玩才能感受到。那么,作为一个资深20年游戏玩家的我,和一个玩了这个游戏有四五年的时间里。可以很明确的告诉你,这就是一个帧同步,协议也是UDP。不然,不可能有现在这样的结局。现在什么结局?玩过的,都知道了。不细说了。

架构篇《一》:我会什么?能完成一个什么样的架构_第3张图片

        那么,我们来准备写自己的框架了。先前的东西,大概会一律不用。抛弃,所有的旧概念。用全新的东西。我准备使用上UDP,在UDP基础上做重传。就是重写一套自己的网络层。

为什么不用TCP?

不为什么,达不到效果。

如果用UDP的话,你的这是一个什么游戏?

用UDP的话,就是帧同步了,即时战略类游戏吧!

你的框架会长成什么样子?结局会不会和ow一样?

答案是:可能会的。服务端只做相对的转发。至于长什么样,大概会有一个新的样子出来。

UDP不可靠,你怎么解决?

已经有较好的解决方案了。

引擎的话你打算用什么?

Unity或Unreal(20年的五月份刚发了UE5)。底层渲染可能会上DX12,我会选用FSR。目前FSR的底层渲染已经被我拿过来了。可以看下跑起来的实列。

你可能感兴趣的:(c++,游戏程序)