pomelo

简介

Pomelo 是基于 Node.js 的高性能、分布式游戏服务器框架。它包括基础的开发框架和相关的扩展组件(库和工具包),能够帮助你省去游戏开发枯燥中的重复劳动和底层逻辑的开发。Pomelo 不但适用于游戏服务器开发, 也可用于开发高实时 Web 应用,它的分布式架构能够使 Pomelo 比普通的实时 Web 框架扩展性更好。javascript

资料

Pomelo API
GITHUB :Home-in-Chinese
Pomelo Framework
使用 WebStorm IDE 调试 Pomelo 应用程序html

POMELO经常使用命令

init: 建立一个新项目,该项目中包含建立pomelo应用的基本文件及pomelo应用的简单示例。
start: 启动应用及服务器。
list: 列出当前应用开启的全部服务器的信息,包括服务器Id、服务器类型、pid、堆使用状况、启动时长。
stop: 关闭应用及服务器或者中止指定的服务器。
kill: 强制关闭应用及服务器。
add: 运行时动态添加服务器。
masterha: 当启用masterha高可用的时候,用来启动master服务器的slave节点。
–version:列出当前使用pomelo的版本信息。
–help:列出全部pomelo支持的命令及使用说明。java

安装

准备

1.确保机器能够上网,由于安装过程当中须要下载其依赖的包。
2.确保机器上已经安装Node运行环境
3.虽然pomelo是用Javascript写成,可是pomelo依赖的库中,有使用了C++语言写的扩展,所以安装pomelo的过程当中会使用到C++编译器。node

注:若是你使用的是Mac OS X系统, 则须要安装Xcode Command Line Tools或者Xcode的完整包以及make工具.git

安装pomelo

方法1:github

$ npm install pomelo -g

方法2:web

$ git clone https://github.com/NetEase/pomelo.git
$ cd pomelo
$ npm install -g

注:安装过程当中如出现错误,多是由于没有获取本机权限,在npm前加sudo,输入密码获取权限后便可正常安装。算法

HELLO POMELO

环境安装完成后,可在命令行中建立pomelo项目,代码:数据库

$ pomelo init ./HelloWorld

新建项目后,安装项目依赖包:express

$npm-install.bat

新项目结构以下:
1461551716605
该目录结构很清楚地展现了游戏项目的先后端分层结构,分别在各个目录下填写相关代码,便可快速开发游戏。

目录结构详解

1.game-server

game-server是用pomelo框架搭建的游戏服务器,以文件app.js做为入口,运行游戏的全部逻辑和功能。在接下来的开发中,全部游戏逻辑、功能、配置等都在该目录下进行。
app子目录
这个目录下放置全部的游戏服务器代码的地方,用户在这里实现不一样类型的服务器,添加对应的Handler,Remote等等。

config子目录
game-server下config包括了游戏服务器的全部配置信息。配置信息以JSON文件的格式进行定义,包含有日志、master、server等服务器的配置信息。该目录还能够进行扩展,对数据库配置信息、地图信息和数值表等信息进行定义。总而言之,这里是放着全部游戏服务器相关的配置信息的地方。

logs子目录日志是项目中不可或缺的,能够对项目的运行状况进行很好的备份,也是系统运维的参考数据之一,logs存放了游戏服务器全部的日志信息。

2.shared

shared存放一些先后端、game-server与web-server共用代码,因为都是javascript代码,那么对于一些工具或者算法代码,就能够先后端共用,极大地提升了代码重用性。

web-server

web-server是用express 3.x框架搭建的web服务器,以文件app.js做为入口,固然开发者能够选择Nginx等其余web服务器。若是游戏的客户端不是web的话,如Android平台的话,这个目录就不是必须的了。固然,在这个例子中,咱们的客户端是web,因此web服务器仍是必须的。

启动

启动game-server服务器:

  1. $ cd game-server
  2. $ pomelo start

启动web-server服务器:

  1. $ cd web-server
  2. $ node app

注:在启动过程当中可能会有端口号冲突致使启动不成功,只需在config里面修改使用的端口号便可

中止

$ pomelo stop

或者

$ pomelo kill

chat示例

chatofpomelo-websocket是在GITHUB上提供的一个pomelo实时聊天的demo,包含pomelo中比较重要的server服务器管理,demo功能强大、代码量很小,适合对pomelo的入门和原理理解,在项目的下载和安装教程中有较详细的项目功能及代码介绍。

总结

Pomelo做为高性能、分布式游戏服务器开发框架,针对其Network,请求、响应、广播、RPC、session 管理等构成了整个游戏框架,这种流程几乎涵盖了当前流行的全部游戏模式的和玩法的搭建,在学习过程当中,最让我兴奋的是分布式架构带来的实时性和扩展性,让游戏能够在不多的代码量下发挥更大的游戏发展空间。

相关文章
相关标签/搜索