摘要: Actor模型 Actor介绍 在讨论Actor模型之前先要讨论下ET的架构,游戏服务器为了利用多核一般有两种架构,单线程多进程跟单进程多线程架构。两种架构本质上其实区别不大,因为游戏逻辑开发都需要用单线程,即使是单进程多线程架构,也要用一定的方法保证单线程开发逻辑。ET采用的是单线程多进程的架构, 阅读全文
posted @ 2023-05-19 13:45 Flamesky 阅读(636) 评论(0) 推荐(0) 编辑
摘要: 组件式设计 在代码复用和组织数据方面,面向对象可能是大家第一反应。面向对象三大特性继承,封装,多态,在一定程度上能解决不少代码复用,数据复用的问题。不过面向对象不是万能的,它也有极大的缺陷: 1. 数据结构耦合性极强 一旦父类中增加或删除某个字段,可能要影响到所有子类,影响到所有子类相关的逻辑。这显 阅读全文
posted @ 2023-05-19 11:07 Flamesky 阅读(364) 评论(0) 推荐(0) 编辑
摘要: 事件机制EventSystem ECS最重要的特性一是数据跟逻辑分离,二是数据驱动逻辑。什么是数据驱动逻辑呢?不太好理解,我们举个例子 一个moba游戏,英雄都有血条,血条会在人物头上显示,也会在左上方头像UI上显示。这时候服务端发来一个扣血消息。我们怎么处理这个消息?第一种方法,在消息处理函数中修 阅读全文
posted @ 2023-05-19 09:57 Flamesky 阅读(442) 评论(0) 推荐(0) 编辑
摘要: 一切皆实体 目前十分流行ECS设计,主要是守望先锋的成功,引爆了这种技术。守望先锋采用了状态帧这种网络技术,客户端会进行预测,预测不准需要进行回滚,由于组件式的设计,回滚可以只回滚某些组件即可。ECS最重要的设计是逻辑跟数据的完全分离。即EC是纯数据,System实际上就是逻辑,由数据驱动逻辑。数据 阅读全文
posted @ 2023-05-19 09:54 Flamesky 阅读(370) 评论(0) 推荐(0) 编辑
摘要: 强大的MongoBson库 后端开发,统计了一下大概有这些场景需要用到序列化: 对象通过序列化反序列化clone 服务端数据库存储数据,二进制 分布式服务端,多进程间的消息,二进制 后端日志,文本格式 服务端的各种配置文件,文本格式 C#序列化库有非常非常多了,protobuf,json等等。但是这 阅读全文
posted @ 2023-05-18 23:57 Flamesky 阅读(561) 评论(0) 推荐(0) 编辑
摘要: 单线程异步 前面几个例子都是多线程实现的异步,但是异步显然不仅仅是多线程的。我们在之前的例子中使用了Sleep来实现时间的等待,每一个计时器都需要使用一个线程,会导致线程切换频繁,这个实现效率很低,平常是不会这样做的。一般游戏逻辑中会设计一个单线程的计时器,我们这里做一个简单的实现,用来讲解单线程异 阅读全文
posted @ 2023-05-18 23:53 Flamesky 阅读(331) 评论(0) 推荐(0) 编辑
摘要: 更好的协程 上文讲了一串回调就是协程,显然这样写代码,增加逻辑,插入逻辑非常容易出错。我们需要利用异步语法把这个异步回调的形式改成同步的形式,幸好C#已经帮我们设计好了,看代码 // example2_2 class Program { private static int loopCount = 阅读全文
posted @ 2023-05-18 23:50 Flamesky 阅读(590) 评论(0) 推荐(0) 编辑
摘要: 什么是协程 说到协程,我们先了解什么是异步,异步简单说来就是,我要发起一个调用,但是这个被调用方(可能是其它线程,也可能是IO)出结果需要一段时间,我不想让这个调用阻塞住调用方的整个线程,因此传给被调用方一个回调函数,被调用方运行完成后回调这个回调函数就能通知调用方继续往下执行。举个例子:下面的代码 阅读全文
posted @ 2023-05-18 23:47 Flamesky 阅读(680) 评论(0) 推荐(0) 编辑
摘要: 为什么使用C# .net core做服务端? 游戏服务端从早期的单服到分布式,开发越来越复杂,对稳定性,开发效率要求越来越高。开发语言的选择也逐步发生了变化,C 到 C++ 到 C++ + PYTHON 或者C++ + LUA 到现在 很多公司开始使用erlang,go,java,c#。目前是一个百 阅读全文
posted @ 2023-05-18 20:20 Flamesky 阅读(684) 评论(0) 推荐(0) 编辑
摘要: ET是一个开源的游戏客户端(基于unity3d)服务端双端框架,服务端是使用C# .net core开发的分布式游戏服务端,其特点是开发效率高,性能强,双端共享逻辑代码,客户端服务端热更机制完善,同时支持可靠udp tcp websocket协议,支持服务端3D recast寻路等等,作者为熊猫(E 阅读全文
posted @ 2023-05-18 20:05 Flamesky 阅读(2555) 评论(0) 推荐(2) 编辑