展开

关键词

Leafgo

Leaf 是一个使用 Go 语言开发的开源,注重运行效率 并追求极致的开发效率。Leaf 适用于几乎所有的戏类型。其主要的特性:* 良好的使用体验。 )Leaf 不建议在中设计过多的模块。 最后,关闭时(Ctrl + C 关闭)将按模块注册相反顺序在同一个 goroutine 中执行模块的 OnDestroy 方法。 LeafServer 是一个基于 Leaf 开发的,我们以 LeafServer 作为起点。 关闭正常关闭输出:20150826 22:12:30 Leaf closing down (signal: interrupt748242A game server framework

2.9K41

Gsky2

github最近跟新了许多代码,目前代码如下:gsky├── crypto│   ├── pe.cc│   ├── pe.hh│   ├── pmd5.cc│   └── pmd5.hh├── gsky.cc length; 数据长度 unsigned char route; 请求路由,代替http url中的path unsigned char code; 数据校验码}; } 采用pp协议的gsky连接与客户端过程 客户端发送数据,在协议头部的code值设置为之前端发送过来的code,再分别对内容与头部后8字节采用端发送过来的密钥进行加密,再发送给端。5. 上面提到了PE加密,PE加密是自己先暂时写的一个对称加密算法,比较简单,采用密钥轮加变换单字节单字节的异或数据,密码算法简单的目的也是处于的处理效率考虑,目前加解密c++实现如下: namespace 目前来说pp协议端已经基本差不多了,只是pp协议客户端还有待实现一下sdk,方便接入gsky

5600
  • 广告
    关闭

    腾讯云前端性能优化大赛

    首屏耗时优化比拼,赢千元大奖

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Leaf 简介

    下载地址:https:github.comname5566leafblobmasterTUTORIAL_ZH.mdLeaf 简介Leaf 是一个由 Go 语言(golang)编写的开发效率和执行效率并重的开源 Leaf 适用于各类的开发,包括 H5(HTML5)。Leaf 的关注点:良好的使用体验。Leaf 总是尽可能的提供简洁和易用的接口,尽可能的提升开发的效率稳定性。 最后,关闭时(Ctrl + C 关闭)将按模块注册相反顺序在同一个 goroutine 中执行模块的 OnDestroy 方法。 leaftimer 定时相关leafutil 辅助库使用 Leaf 开发LeafServer 是一个基于 Leaf 开发的,我们以 LeafServer 作为起点。 ,我们来看看如何接收和处理网络消息。

    1.1K80

    探索 Golang 云原生开发,5 分钟上 Nano

    轻量级,方便,高性能 golang 的。nano 是一个轻量级的,它最适合的应用领域是网页戏、社交戏、移动戏的端。 最重要的是可以通过这个入门 Golang 开发示例仓库(https:github.comHacker-Linnercloud-native-game-server)使用 Nano 快速搭建一个 Handler:它定义在 Component 内的方法,用来处理具体的业逻辑。路由(Route):用来标识一个具体 或者客户端接受端推送消息的位置。 会话(Session):客户端连接后, 建立一个会话保存连接期间一些上下文信息。连接断开后释放。 (Push)房间内其它成员,有新人加入New user用户可以在当前房间发送消息用户发送(Notify)消息到当前房间 -> Notify 对应 nano 一种消息类型,不需要对他有所回应将消息

    48720

    Go开源——Pitaya

    简介Pitaya是一款由国外戏公司topfreegames使用golang进行编写,易于使用,快速且轻量级的开源分布式Pitaya使用etcd作为默认的发现组件,提供使用nats和grpc Service是一组对象,包含若干Handler和Remote这里有个温柔的细节——Receiver reflect.Valuepitaya的设计者为了降低引用,采取在逻辑执行中保留方法的Receiver (c *Base) Shutdown() error { return nil } 集中管理的对象容在外部module.go中定义 var ( modulesMap = make(mapinterfaces.Module remoteBindingListeners HandlerTempl } pipelineAfterChannel struct { Handlers []AfterHandlerTempl } ) 流程 app.go是系统启动的入口创建HandlerService并根据启动模式如果是集群模式创建RemoteService开启端事件监听开启监听关闭信号的Chan var ( app = &App

    1.2K30

    教你从头写

    我觉得公司的“祖传”技术不太适合,所以从头写了一个端的,以便获得更好的开发效率和灵活性。现在项目将近上线,有时间就想总结一下,这样一个的设计和实现过程。 高层逻辑功能:包括具体的戏逻辑,针对不同的戏会有不同的设计。?我希望能有一个基本完整的“底层基础功能”的,可以被复用于多个不同的戏。由于目标是开发一个 适合独立戏开发 的。 所以支持脚本,也是一个很重要的能力。其他功能:包括定时端的对象管理等等。这些功能很常用,所以也需要包含在中,但已经有很多成熟方案,所以只要选取常见易懂的模型即可。 我认为一个好的,应该能让这个端程序,在无配置、无依赖的情况下独立启动,以符合在开发、测试、演示环境下快速部署。 所以这个我也希望是以异步非阻塞作为基本的并发模型。这样做还有另外一个好处,就是可以工的控制具体的进程,充分利用多核 CPU 的性能。

    3K165

    构:构设计进化

    所以这种无状态的构也比较简单,常规的操作都是使用web,再在支持web的相关语言代码之上写逻辑。 后来戏玩家呼吁要跨战斗,于是就出现了跨战,再加上随着戏的运行,单个戏活跃玩家越来越少,所以后期就有了的合并以及迁移,慢慢的以的开放、合并形成了一套成熟的运营段。 目前多数页戏还采用分的结构来。 实际上我之前参与过的《摩尔庄园》和《赛尔号》这种页都是采用的分结构来缓解玩家都登陆到一个而造成的网络拥挤。 玩家C:玩家C在node2地图上,由node2控制,如果迁移到node1上,需要将其数据复制到node1上,然后从node2移除。 ,我们以前都是要自己写网络库,或者自己设计内存模型,网络,DB数据库同步策略),现在你在之上写起来不用担心这些问题,甚至在国外,很多开发者在戏开发上也越来越弱化端的设计了,比如大家直接使用GameSparks

    51210

    教你从头写(3)

    第一篇:教你从头写(1) 第二篇:教你从头写(2) 协程使用异步非阻塞编程,确实能获得很好的性能。但是在代码上,确非常不直观。 有一些,试图把状态从逻辑进程中搬迁出来,放在缓冲中,但是往往满足不了性能需求。 其原因就是,往往都是带状态,所以必须要让调用者有办法选择具体的提供者。 展望写到这里,基本上关于一个的主体功能设计,都基本完成了。但是,一个戏中还包含了很多不同的能力需要考虑。 总结一下,,其实基本能力也非常简单:网络功能:提供请求响应、通知两种能力即可组合大部分功能缓存功能:提供二级缓存的远程缓冲功能,也可以满足很多需求持久化功能:以 key-value 方式的存储足以满足很多用户存档的需求对于现代系统

    1.5K43

    一个简单的_戏开发

    最近一段时间不是很忙,就写了一个自己的雏形,很多地方还不够完善,但是基本上也算是能够跑起来了。我先从上层结构说起,一直到实现细节吧,想起什么就写什么。 第一部分 逻辑? 这边简单的分为三个部分,客户端的连接首先到达网关,网关这里有个线程用来监听来自与客户端的连接,然后在将这些数据发送到戏逻辑上,这个逻辑上,数据的交互就是通过与数据进行交互 当然为了能够最大程度的不卡,肯定就得规定好网关上的连接数量,免得像我们号称流畅的铁道部订票网络一样做个卡B,想想玩一局dota被卡的悲剧吧。 当我们要做一个大型网时,这三个显然不够。当然在自己写的小戏的时候就无所谓了,几个全部设在自己的破笔记本上,不就是启动几个程序而已。 这个感觉写得就差不多了,到细节吧。 8.lua与c++交互 这个暂时写了一半,等全部完成了,再来弄,反正就是像npc处理这些,脚本处理这些,使用tolua++。

    2.2K60

    ColyseusJS 轻量级多人开发 - 中文册(下)

    快速上多人开发。后续会基于 Google Agones,更新相关 K8S 运维、大规模快速扩展专用的文章。拥抱☁️原生? Cloud-Native! 系列ColyseusJS 轻量级多人开发 - 中文册(上)ColyseusJS 轻量级多人开发 - 中文册(中)状态处理 在 Colyseus 中,room handlers 序列化方法Schema (default)状态同步时当 user 成功加入 room 后,他将从接收到完整状态。 客户端Callbacks您可以在客户端 schema 结构中使用以下回调来处理来自端的更改。 一般的建议是在您认为合适的时候使用端验证来实现您自己的版本。

    21820

    ColyseusJS 轻量级多人开发 - 中文册(中)

    快速上多人开发。后续会基于 Google Agones,更新相关 K8S 运维、大规模快速扩展专用的文章。拥抱☁️原生? Cloud-Native! 系列ColyseusJS 轻量级多人开发 - 中文册(上)Web-Socket ServerServerServer 负责提供 WebSocket server 来实现和客户端之间的通信 你也可以在你的上使用 express。 options.server:用于绑定 WebSocket 的 HTTP 。options.ws:现有的可重用 WebSocket 。 :该方法由自动调用。该方法将检查 state 中是否发生了突变,并将它们广播给所有连接的客户端。

    14510

    ColyseusJS 轻量级多人开发 - 中文册(上)

    快速上多人开发。后续会基于 Google Agones ,更新相关 K8S 运维、大规模快速扩展专用的文章。拥抱☁️原生? Cloud-Native! 您可以选择 TypeScript(推荐),JavaScript 和 Haxe 作为的选择语言。 确保用与您的兼容的版本来替换其中的 @x.x.x 部分。 连接到:import * as Colyseus from colyseus.js; 如果通过 标记包含,则不需要。 此时没有实际的端连接。 必须与端的 allowReconnection() 一起使用。

    27520

    为什么决定要重新造一个轮子?

    首先是开发语言目前用于开发的主要应该有以下这些语言:cc++优点:性能很好开源:skynet底层是C 开发语言是lua,没有客户端库kbengine底层是C++ 开发语言可以使用C#,Python ,高稳定性的,而且有很多产品已经使用上了。 ,其实这几个都非常优秀,只是不同的需求有不同的要求罢了,希望大家能根据自己实际需求选择最适合自己的的想法自己心里也对有一些自己的想法,最终决定造这个轮子。 它包括了开发和数据库缓存等各种基础,节省大量戏开发的工作时间,真正做到让使用者把精力放在戏玩法逻辑上。用它可以搭建自定义的分布式构,只需要修改相应的配置文件即可。 Scut http:www.scutgame.com 引擎是使用C#语言开发,特别适用于机网络戏,支持使用Python和lua进行戏开发;可以支持多种数据库:支持HTTPSocket协议同时接入

    1.7K70

    (转载非原创)一个java页

    .html 一、前言  此构是一个单的形式,也就是说所有戏逻辑在一个工程里,没有区分登陆、战斗、世界等。 此构已成功应用在了多款页 。在此中没有实现相关业逻辑,只有简单的测试用的注册登陆功能。但在此中添加相应的业逻辑也是比较轻松的,只需要添加相应的协议,编写对应的消息处理即可。   下面是项目代码的地址: 工程---GameServer,工程 测试客户端---TestClient,模拟客户端与通信,用于测试功能 项目工具 ---Tools,搭建用到的 的启动是通过在WEB-INF目录下的web.xml中添加一个监听。 我们可以很容易的在次构中加入一个机遇web的管理系统,直接管理当前的在线玩家三、通信层  java开发socket最常用的就是mina和netty这两个nio

    8030

    gsky简易高性能库1

    有时候方便自己快速开发小,自己采用go,python,c#那些也简单写过一点戏后台,但是针对与socket长连接,感觉有点不太好控制,go稍微好些,这个项目是以前写的web,最近在搞戏项目 介绍为了便于更快速开发高性能,特意基于lgx web,二次开发且封装为一个库。 gsky是一个基于epoll构的高性能库,采用更快速的psp (pwnsky protocol)二进制协议进行传输数据。如何使用? 编译安装好库之后,可以更方便的写了。 =-1) { switch (opt) { case h: { help(); exit(0); } break; case c: { 设置配置文件路径 server.set_config_path

    13930

    Java 编写的轻量级高性能

    mmorpg,是一个用java编写的轻量级高性能。项目提供各种支持快速二次开发的组件,以及对生产环境的进行管理的工具。 同时,为了使用户能够快速上,项目提供了若干常用业功能作为演示。 项目特点支持socketwebsocket接入,兼容构有独立http后台网站,为戏运维运营提供支持提供多种组件,可以直接二次开发业逻辑提供热更机制以及jmx接口,方便对生产项目进行监控与维护第三方技术栈名称用途官网 Nettynio socket http:netty.iogroovy基于类替换的热更新http:www.groovy-lang.orghibernate强大的ormhttp:hibernate.orgormslf4j 管理对象注入重点用于演示场景及技能系统快速开始使用git下载代码 git clone https:github.comkingston-csjmmorpg ;将代码导入带有gradle插件的IDE;启动

    40440

    构:设计的若干问题

    关于更多KCP的内容可以查看历史文章:构:使用KCP 加速戏消息,让全球玩家流畅联网 3.负载高,性能下降,导致无法及时的处理客户端的请求,可能是硬件本身需要升级,另外一方面是程序自身的 问题一:合合区的操作有什么好的建议?答:当一款戏走到生命的中后期时,经常需要进行大量的合区操作,可以采用存储层全区全,接入层和逻辑层分区分构,规避合区时对数据的处理成本。 简单来说就是存储层要统一进行管理,不隔离开来,以保证前端不同区的可以访问任何一个区的核心数据,接入层和逻辑层分小区,让玩家在不同的戏。 可以压缩;4、对接入层要求比较高,现在的前端接入层都是独立出来的,采用分布式方案也可以解决;5、应对海量构必须是各模块扩展的,没有单点瓶颈,要有比较好的负载均衡机制;6、高可用性,可以采取有损 卷1:套接字联网API》《UNIX网络编程 卷2进程间通信》等,主要还是要多动;2、编程语言:CC++、lua、python,腾讯这边端大多还是用CC++,推荐《C和指针》《C++primer

    31220

    再谈

    一、划分原则 在现有的网络构中,多是以功能和场景来划分结构的。负载均衡和集群暂且不在本文中讨论(bigworld、atlas)。 图1 构(此图为本人猜测,可能有误)二、运行时的玩家数据 网络程序一项重要的工作就是根据client发过来的数据包,在端模拟玩家的行为操作并把这些行为广播出去。 通过attach操作获得数据(attach可能是通过通讯skynet,也有可能直接mmap到共享内存sharedb上以获得数据)。 三、底层skynet skynet的设计思想见《Skynet 设计综述》: 我希望我们的(但 skynet 不仅限于用于)能够充分利用多核优势,将不同的业放在独立的执行环境中处理 本人感觉skynet像一个发布订阅的消息中间件(还没看源码,可能有误),这种基于的即插即用式的端带来很大的可扩展性,同时也使得各模块之间独立清晰,具有良好的可维护性。

    2.5K131

    构概要

    声明:本文内容源自腾讯戏学院程序公开课_第二节一、构概念解析1,什么是“构”对软件&硬件&运行的一体化规划结构:分层分块。构建技术选择:编程语言;通信方式;存储技术。 二、案例讲解:分布式构设计演讲——MMORPG(大型多人在线角色扮演)《轩辕传奇》构_分区多世界1,运营视角世界与世界是隔离的世界之间的互通方式:跨、转、合? 轩辕为什么要这么多进程和机_多维度切分1,分区多世界原型v1一个大区包含多台物理机一台物理机仅运营一个戏世界一个戏世界对应一个戏进程问题:跨世界共享的功能? 5,分区多世界原型v2cluster级:整个戏一组world级:每个戏世界一组各组均包含接入、逻辑、存储(DBDRLOG分离)6,继续分离公共公共 分离“列表”、“版本升级”、“ 目录账号与账号登撸角色登录戏过程运营支持脏字过滤验证码五、参考资料让我们谈谈开发(上)构演进(完整版)六、感受本次课程中有句话使我印象很深刻:最重要的不是看结果,而是看这个结果是怎么来的

    1K20

    论可复用的端开发(一)

    本文试图以端开发的角度,探讨在需求高度变化的环境下,可重用模块构建的可能性和基本方案。可复用的必要性与可行性 在现代戏产品的开发中,端程序已经几乎成为了标配。 事实上,可重用的,是完全可以设计和实用化的。 可复用结构整体描述 根据我们对MUD体系的学习,以及长期戏开发经验积累,我们发现,可复用的,应该具有以下几个设计特征:系统应该是典型的分层构,需要同时具备灵活和强大这两个特征。 而一些,所提供的能力也参差不齐,如SmartFoxServer主要提供的是通信中请求-响应和组播的能力,而FireFly和Pemelo则在通信功能外增加了调度能力中并发(异步)的支持。 由于本身端的“底层”就缺乏统一的,所以对于中层的模块来说,更是无从获取可重用的代码,尽管很多戏都有角色、道具、任、商店……。

    1.2K60

    相关产品

    • 云服务器

      云服务器

      腾讯云服务器(CVM)为您提供安全可靠的弹性云计算服务。只需几分钟,您就可以在云端获取和启用云服务器,并实时扩展或缩减云计算资源。云服务器 支持按实际使用的资源计费,可以为您节约计算成本。

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭

      扫码关注云+社区

      领取腾讯云代金券