hello,大家好。我们今天来进行UE4 MMo网络游戏开发的第七章之游戏登陆注册。本章包括三个功能 账户注册 账户登陆 模拟玩家登陆排队。
这里要注意下。我们凡是说的服务器都是指的服务器进程 而不是服务器的物理机器。
KBE分了loginapp cellapp baseapp等。其实这些都是服务器进程。那么要分这么多服务器呢?下面是KBE的架构:
那么我们不禁思考 为什么要分这么多服务器?设想网络游戏发展初期,玩家的所有逻辑 比如登陆注册 场景跳转 装备强化 物品采集等等这一系列操作都由一个服务器来做,但是慢慢发现这一个服务器撑不住了,所以呢,又把登陆注册 抽出来形成 登陆注册服务器-loginserver 其他逻辑都由一个服务器叫centerserver 处理其他逻辑。玩家登陆经过loginserver,登陆成功后呢,又将玩家信息 转给我们的centerserver(涉及到服务器进程间通信)。慢慢的。到后来,又发现 逻辑量还是大,所以对mmo来说 又抽出了 针对场景的 场景服务器 sceneserver。慢慢的,发展出很多优秀的服务器架构。
那么对于KBEngine来说,是参考的BigWorld 服务器的架构,市面上有很多比较出名的mmo也是这个架构。分的服务器 看上图。通过名字 我们就知道,玩家登陆注册相关的肯定是loginapp服务器。由于登陆注册 涉及到写查数据库,所以还涉及到DBMgr服务器。
KBE官网链接:https://www.comblockengine.com/docs/1.0/overview/index/
现在我们创建一个UE4空项目用于搭建我们的登陆注册(我们不仅仅是研究KBE,还会做很多网游的常规功能比如动态登陆背景,动态提示,UI复用等等)
======本章和下章 搭建登陆注册框架 再下章对接服务器,目前只做功能 不会去在意客户端架构========
第一步:创建UE4 C++空项目:
第二步:关闭虚幻编辑器 只保留VS,并且注意 我们图中所框的地方:
这里有几种模式:凡是带Editor的 在你点击旁边的windows调试器的时候,就会进行编译,编译完成就会启动UE4编辑器。没有带的 只会进行编译 不会为你 启动编辑器。我们开发中的时候要选带Editor的。
然后呢 这里有几种模型,分别是Development 半发布模式。Debug 调试模式。Shiping 游戏发布模式。我们开发中的产品 选择Debug Game Editor。这样会为我们输出更多的调试信息,支持更多的调试操作。然后点击我们的windows 调试器 启动编译。
第三步:这是我们启动后的编辑器结构和vs文件夹结构:
第四步:创建文件夹 Blueprint 和Res。我们项目采用蓝图写基本逻辑(为了照顾大部分人),实际中建议采用Lua写逻辑:
第五步:创建C++文件夹和文件,创建我们的登陆注册UI类:
由于是UI类,首先我们需要创建一个顶级UI类,也就是说,我们所有的UI类 都是继承自这个类。那我们这个顶级UI类 叫mmo_Base_UI 继承自userWidget类(关于继承的好处这里就不多说了 简单的说就是公共的方法或者变量抽取到父类去 子类想要用 直接继承,想实现不同自己也可以重写)。
然后存放于这个文件夹下:
点击创建类,然后就创建好了:
第六步:接下来创建我们的登陆注册界面的类,我们叫mmo_login_ui
然后搜索 我们刚才的顶级父类mmo_Base_UI:
然后点击创建,这样的话。我们登陆注册的Ui类 也就继承自这个类 并且创建出来了:
第七步:创建mmo_login_ui c++类 对于的蓝图类:
新建文件夹存放我们所有的UMG:
然后再创建loginui文件夹 用来存放 所有跟登陆注册有关的UMG:
创建UMG类 继承自 我们刚才创建的登陆注册C++类:
到这里我们登陆注册的基本结构就搭建好了。下一节 开始完成登陆注册界面 并且加上动态背景 UI复用。
文章有什么错误请指出。哈哈 =。=