文 - 篇  访客 -

Colyseus - 框架学习(一)


  分类:04 技术开发  / 
更新:2023-08-14 09:49:00  /  创建:2023-08-04 16:06:46
不要删除

介绍

多人游戏免费开源解决方案 Colyseus 正式上架 Cocos Store (qq.com)
C:我们开始看到,手机游戏的多人模式从10人以下发展到50人、100人甚至上千人参与游戏。Colyseus 正在解决这些游戏所面临的最重要问题是什么?

CT:Colyseus 非常灵活,可以为任何游戏类型或使用要求提供解决方案,因为它是开箱即用的基于房间的系统。根据您的游戏循环复杂性,每个房间都可以轻松支持大约1500 名并发玩家 (CCU)。如果您希望创建更大的世界 (MMO),我们推荐的设计模式可以通过将您的“世界”拆分为多个房间来支持这一点,以便房间逻辑计算可以跨多个进程并行化。

在单个服务器上的一个房间中可以适度地容纳多少玩家是有上限的,这在很大程度上取决于游戏类型、每秒消息数以及服务器逻辑循环的复杂性。这就是我们为 Colyseus 提供的 SaaS 托管解决方案真正厉害的地方。作为游戏开发者,您无需担心是否有足够的服务器,因为会创建新房间,并且世界随着玩家而扩展。我们的 Colyseus Arena 系统将自动为您的游戏部署新服务器,我们的负载平衡器将确保可用服务器之间的房间平衡,从而保证性能的一致性。

参考的开发手册

ColyseusJS 轻量级多人游戏服务器开发框架 - 中文手册(上) (qq.com)

(8条消息) ColyseusJS 轻量级多人游戏服务器开发框架 - 中文手册(中)_为为少的博客-CSDN博客
(8条消息) ColyseusJS 轻量级多人游戏服务器开发框架 - 中文手册(下)_为为少的博客-CSDN博客

Node 下载地址

Node.js (nodejs.org)

Node 手册

Usage and example | Node.js v16.15.1 Documentation (nodejs.org)

(8条消息) Nodejs安装教程_彭佼的博客-CSDN博客_node.js安装

删除cnpm - 走看看 (zoukankan.com)

pm2用法详解+ecosystem.config - 走看看 (zoukankan.com)

手把手教你怎么正确快速的部署一个TS Node.js项目!-js教程-PHP中文网

Node 项目文件夹
C:Usersyg014projects

全模块所在路径和缓存路径
C:Program Filesnodejsnode_global
C:Program Filesnodejsnode_cache

C:Program Filesnodejsnode_modules

npm config set prefix "C:Program Filesnodejsnode_global"
npm config set cache "C:Program Filesnodejsnode_cache"

安装完淘宝镜像重新打开 cmd 或 Windows PowerShell

Git库

GitHub - colyseus/colyseus: ⚔ Multiplayer Framework for Node.js

(8条消息) 10分钟开发一个游戏服务器_IT 哈的博客-CSDN博客_游戏服务器开发
10分钟开发一个游戏服务器 - Dream使用说明书 (allknowboy.com)

NodeJs小船起航 - Dream使用说明书 (allknowboy.com)

Colyseus 手册

欢迎使用 Colyseus - Colyseus & Arena Cloud Documentation

COLYSEUS服务器框架实践Demo - 柳轩涤俗 - 博客园 (cnblogs.com)

用法

将 JavaScript SDK 包括在您的项目中

如果您在使用构建工具(webpackrollup 或类似工具), 这是最佳方式

npm install --save colyseus.js

若您不使用生成工具, 推荐从 GitHub Releases 下载发布的二进制文件.

<script src="colyseus.js"></script>

或者您也可以直接使用 unpkg 加载分布式文件. 记得将其中的 @x.x.x 内容替换为与您服务器兼容的版本.

<script src="https://unpkg.com/colyseus.js@^0.14.0/dist/colyseus.js"></script>

连接至服务器:

import * as Colyseus from "colyseus.js"; // not necessary if included via <script> tag. var client = new Colyseus.Client('ws://localhost:2567');

加入房间:

client.joinOrCreate("room_name").then(room => { console.log(room.sessionId, "joined", room.name); }).catch(e => { console.log("JOIN ERROR", e); });

房间事件

房间状态已更新:

room.onStateChange((state) => { console.log(room.name, "has new state:", state); });

从服务器广播的消息或直接发给本客户端的消息:

room.onMessage("message_type", (message) => { console.log(client.id, "received on", room.name, message); });

发生服务器错误:

room.onError((code, message) => { console.log(client.id, "couldn't join", room.name); });

服务器离开房间:

room.onLeave((code) => { console.log(client.id, "left", room.name); });

示例

git clone https://github.com/colyseus/colyseus-examples.gitcd colyseus-examplesnpm install

要在本地运行服务器,请运行 npm start,然后打开 http://localhost:2567 查看每个示例。

示例 2

掘金游戏比赛

游戏创意投稿大赛,解析技术拿大奖,内附选题参考! - 掘金 (juejin.cn)
“玩个球啊”,我用cocoreater开发的联网对战游戏 - 掘金 (juejin.cn)
游戏创意投稿大赛之疯狂二次方 - 掘金 (juejin.cn)
回忆青春!WebSocket + Canvas 打造冒险岛聊天室 - 掘金 (juejin.cn)

[[键码值对照表]]


不要删除

是日已过,命亦随减,如少水魚,斯有何乐?