一款游戏从开发到上线需要很长的时间,游戏服务器框架至关重要。 今天圆妹就带大家从零开始全面了解网易游戏服务器框架Pomelo。
网易游戏服务器开发框架Pomelo
许可协议:麻省理工学院
开发语言:Java
操作系统:跨平台
开发商: 网易
GitHub:★8368
柚子简介
Pomelo是网易公司开发的一个基于node.js的高性能、分布式游戏服务器框架。 它还可以用作高实时性的Web应用框架。 它包括基础的开发框架和相关的扩展组件(库和工具包),可以帮助您省去游戏开发中枯燥的重复性工作和底层逻辑的开发。
柚子架
Pomelo架构由三部分组成:
服务器管理:pomelo的核心。 与以往的单进程游戏框架不同,它是一个高性能、分布式的游戏服务器框架,使用起来非常简单。
网络:请求、响应、广播、RPC、会话管理等构成了整个游戏框架的上下文,所有的游戏流程都建立在这个上下文之上。
应用程序:应用程序定义、组件管理和上下文配置使得pomelo框架的外部接口非常简单,并且具有松散耦合和可插拔的架构。
柚子特点
波莫莱具有以下特性:
● 快速易用的游戏开发模型和API
● 高扩展性多进程架构,支持MMO场景分区等多种分区策略
● 便捷的服务器扩展机制,快速扩展服务器类型和数量
● 方便的请求、响应、广播、服务器通信机制,无需任何配置
● 关注性能,在性能和扩展性方面做了大量的测试和优化。
● 提供众多扩展组件,包括游戏开发中常用的库和工具包
● 提供完整的MMO演示代码(客户端html5),可以作为很好的开发参考
● 基于socket.io开发,支持socket.io支持的多语言客户端
游戏运行架构和Web应用运行架构的区别
从表面上看游戏开发框架数据报告,游戏运行架构与Web应用程序运行架构非常相似。 连接器类似于用于 Web 应用程序的 apache/nginx 等 Web 服务器。 后端服务器组类似于Web应用中的应用服务器(如tomcat)材质材料,但实际上有很大的区别:
● 长连接和短连接。 Web应用程序使用基于http的短连接来实现最大的可扩展性,游戏应用程序使用基于套接字(websocket)的长连接来实现最大的实时性能。
● 不同的分区策略。 Web应用的分区可以基于负载均衡自由确定,而游戏则基于场景(区域)分区模式,允许同一场景的玩家在一个进程中运行,以实现最少的跨进程调用次数。
● 有状态和无状态。 Web 应用程序是无状态的并且可以无限扩展。 另一方面,游戏应用程序是有状态的。 由于基于场景的分区策略,其请求必须路由到指定的服务器,这也阻碍了游戏实现与Web应用程序相同的可扩展性。
● 广播模式和请求/响应模式。 Web 应用程序采用基于请求/响应的请求响应模型。 游戏应用程序更频繁地使用广播。 由于玩家在游戏中的动作需要实时通知给场景中的其他玩家,因此必须通过广播的方式实时发送。 这也使得游戏对网络通信的要求比Web应用更高。
为什么要用柚子
高并发、高实时的游戏服务器的开发是一项非常复杂的任务。 和Web应用一样,一个好的开源容器或者开发框架可以大大降低游戏开发的复杂度,让开发变得更加简单。 遗憾的是游戏开发框架,目前游戏服务器开发领域还没有好的开源解决方案。 Pomelo 将填补这一空白,创建一个完全开源的高性能(并发)游戏服务器框架。 柚子的优点如下:
● 架构具有良好的可扩展性。 采用多进程单线程的运行架构,扩展服务器非常方便。 Node.js的网络IO优势提供了高扩展性。
● 使用起来非常方便。 开发模型与Web应用程序开发类似。 基于约定优于配置的概念,几乎是零配置。 API设计也非常精简,易于上手。
● 框架具有良好的松耦合性和可扩展性。 它遵循node.js微模块的原理。 该框架本身只有少量代码。 所有组件、库和工具都可以以 npm 模块的形式进行扩展。 任何第三方都可以根据自己的需求开发定制模块。
● 提供完整的开源MMO游戏demo参考,超过10000行代码的游戏demo,让开发者可以随时学习demo的设计和开发思路。
相关链接:
柚子快速入门指南:%E5%BF%AB%E9%80%9F%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97
Pomelo中文教程:%E4%B8%AD%E6%96%87tutorial
游戏Demo介绍:%E7%AE%80%E4%BB%8B
●这篇文章编号为403,以后如果想看这篇文章,就输入403即可。