lordofpomelo安装指南
LordOfPomelo是一个基于Pomelo游戏框架开发的MMORPG(大型多人在线角色扮演游戏)的游戏Demo, 具有角色、怪物、装备、战斗、聊天、技能、升级系统、任务系统、组队、副本等较为完整的游戏功能.
LordOfPomelo服务端采用了Pomelo框架, 客户端采用了基于HTML5的colorbox框架, 在大约3个月的时间内实现快速开发. 服务端约8000行代码, 客户端约6000行代码. 支持单场景800人以上的并发访问, 响应时间控制在100ms左右.
运行环境
- nodejs
- Windows、Linux 或 MacOS 操作系统
- MySql 数据库
安装LordOfPomelo
下载源码
git clone https://github.com/NetEase/lordofpomelo.git
安装依赖包
进入目录:
cd lordofpomelo
安装依赖包:
sh npm-install.sh
(Windows: npm-install.bat
)
创建MySql数据库
创建数据库
sql文件路径:./game-server/config/schema/Pomelo.sql
- 安装MySql数据库(略)
- 登录MySql:
mysql –u用户名 –p密码
(登录成功提示符:mysql>) - 创建数据库:
mysql> create database Pomelo;
- 选择数据库:
mysql> use Pomelo;
- 导入sql文件:
mysql> source ./game-server/config/schema/Pomelo.sql
修改数据库配置
数据库配置文件为./shared/config/mysql.json
{
"development": {
"host" : "127.0.0.1",
"port" : "3306",
"database" : "Pomelo",
"user" : "xy",
"password" : "dev"
},
"production": {
"host" : "127.0.0.1",
"port" : "3306",
"database" : "Pomelo",
"user" : "xy",
"password" : "dev"
}
}
将"development"环境下的的数据库配置修改为实际的配置.
运行游戏
需要分别启动game-server和web-server. game-server的启动方式:
pomelo start
(pomelo的安装方法参考pomelo快速使用指南) 注: 如果上次启动的进程没有完全退出, 可以使用pomelo kill --force
来结束所有node进程.
web-server的启动方式:
cd web-server && node app
访问游戏
本地运行, 直接在浏览器中访问 http://localhost:3001 或者 http://127.0.0.1:3001
浏览器需支持websocket, 推荐使用chrome.
相关问题解决办法
- 端口冲突
修改服务器配置文件./game-server/config/servers.json,内容如下:
{
"development": {
"connector": [
{"id": "connector-server-1", "host": "127.0.0.1", "port": 3150, "clientPort": 3010, "frontend": true},
{"id": "connector-server-2", "host": "127.0.0.1", "port": 3151, "clientPort":3011, "frontend": true}
],
"area": [
{"id": "area-server-1", "host": "127.0.0.1", "port": 3250, "area": 1},
{"id": "area-server-2", "host": "127.0.0.1", "port": 3251, "area": 2},
{"id": "area-server-3", "host": "127.0.0.1", "port": 3252, "area": 3},
{"id": "instance-server-1", "host": "127.0.0.1", "port": 3260, "instance": true},
{"id": "instance-server-2", "host": "127.0.0.1", "port": 3261, "instance": true},
{"id": "instance-server-3", "host": "127.0.0.1", "port": 3262, "instance": true}
],
"chat": [
{"id":"chat-server-1","host":"127.0.0.1","port":3450}
],
"path": [
{"id": "path-server-1", "host": "127.0.0.1", "port": 3550}
],
"auth": [
{"id": "auth-server-1", "host": "127.0.0.1", "port": 3650}
],
"gate": [
{"id": "gate-server-1", "host": "127.0.0.1", "clientPort": 3014, "frontend": true}
],
"manager": [
{"id":"manager-server-1","host":"127.0.0.1","port":3750}
]
},
"production": {
// ...
}
}
该配置文件分别定义了development和production环境下的各个服务器的配置信息, 包括服务器类型, 地址, 端口号等, production环境下的参数和development环境的结构类似. frontend参数为true时表示前端服务器. 端口冲突时可以修改相应的端口号.
或者修改文件./web-server/public/js/config/config.js, 内容如下:
__resources__["/config.js"] = {meta: {mimetype: "application/javascript"}, data: function(exports, require, module, __filename, __dirname) {
module.exports = {
IMAGE_URL:'http://pomelo.netease.com/art/',
GATE_HOST: window.location.hostname,
GATE_PORT:3014
};
}};
该文件是web服务器的常用配置信息: IMAGE_URL是图片等静态资源的地址; GATE_HOST是gate服务器接受websocket的入口, 所有的websocket请求须先经过gate服务器获取connector服务器的id, 然后再和connector建立连接; GATE_PORT是前端gate的端口号. manager服务器主要负责是副本和组队功能.
配置文件汇总说明
- ./game-server/config/master.json
master服务器的配置信息, 包括development和production环境下的服务器地址、端口号等.
master服务器负责启动、关闭各服务器, 并监控所有服务器的状态信息.
- ./game-server/config/servers.json
area、connector等服务器的配置信息, 包括development和production环境下的服务器地址、端口号等. 由于connector是前端服务器, 用于接收并转发玩家的请求, 所以会有clientPort.
- ./shared/config/mysql.json
数据库配置信息, 在安装LordOfPomelo之后需要根据数据库安装的实际情况修改development和production环境的参数.
- ./web-server/public/js/config/config.js
客户端图片等静态资源及HTTP访问地址的配置.
登录问题说明
LordOfPomelo提供了注册新用户以及使用github, google, facebook, twitter和新浪微博授权的方式进行登录. 在使用github等授权方式进行登录时, 需要自己通过OAuth授权认证, 然后修改配置文件中的对应信息(./web-server/config/oauth.json).