风框结构

风框结构

Wind是一款面向云的高性能、高效率、高扩展性的大型分布式游戏服务器引擎。Wind利用Python语言简洁的语法和丰富的生态库来提升游戏业务的开发效率。对于一些对性能有要求的游戏业务功能(如实时对战功能),Wind利用Golang的高并发特性来保证服务的高性能。同时,Wind接入云端组件氛围,保证游戏服务的动态可扩展性,提高服务资源的利用率。

/ferris1/风

Wind是游戏服务器行业第一款结合go和python优势的服务器。如果Wind能解决你的问题,我希望给Wind一个Star。如果它不能解决你的问题,也欢迎你提出Issue和Request,我会继续开发和完善Wind。

框架

可以分为三层,第一层是Golang引擎层,第二层是Python引擎层,第三层是服务逻辑层。

html5游戏开源引擎_游戏引擎框架_虚幻3引擎游戏有哪些

Wind框架Golang引擎层

Wind最初设计时考虑了游戏服务器的性能游戏引擎框架,一般通过编译的静态语言来保证性能,比如C/C++/Golang。Wind选择Golang的主要原因是Golang的高并发游戏引擎框架,符合服务器特性。同时,Golang 具有自动内存管理和比 C/C++ 更简洁的语法,有利于提高开发效率。因此,选择了 Golang 来开发游戏服务。具有性能要求的模块。

Wind的网络库是用Golang编写的,目前支持TCP数据传输。实际上,Golang 端也是一个小型服务器。客户端数据发送后,可以直接在 Golang 端解析数据和处理逻辑。一些需要高性能的实时战斗功能可以写在Golang端,比如体育比赛和吃鸡的战斗功能和MMORPG战斗副本。

Python引擎层

Python层的引入主要是为了解决游戏业务开发效率的问题。在一个完美的游戏中,很大一部分代码是一些外围交互逻辑代码和一些对性能要求不高的战斗代码。面对如此大量的业务逻辑开发,一门简洁明了、拥有完整生态库的开发语言非常重要。选择 Python 语言其实解决了 Golang 发烧这个比较不方便的问题。一款游戏上线后,基本上100%都会有问题,问题有大有小。出现问题后,如果热更新比较不方便,需要时不时停止服务器来解决,会极大影响游戏体验,所以选择Python来解决在线热更新的问题,

Python 引擎层包括运行在服务器上的所有引擎组件,例如 Python 协程、RPC 组件、Golang 通信网络、服务发现、分布式消息队列、计时器等。

服务逻辑层

服务逻辑层是游戏业务的逻辑。每个具体的服务都继承Engine类来调用一些常用的引擎功能。具体服务只需要关心逻辑怎么写。处理程序目录用于编写 RPC 函数。您可以一眼就知道哪些是外部接口。mgr 目录是您的业务逻辑的模块代码。这个业务逻辑一般写在一个实例中,因为业务层是单线程的。使用 Singleton 简单方便。