{"repo":"dudu502/littlebee_libs","free":true,"listed":false,"github":"https://github.com/dudu502/littlebee_libs","clone":"git clone https://github.com/dudu502/littlebee_libs.git","description":"Keyframe sync framework","language":"C#","stars":31,"topics":["csharp","ecs","frame-synchronization","gameplay","lockstep","moba","multi-clients","network","reconnect","replays"],"license":"MIT","category":"api-integrations-sdks","readme_excerpt":"帧同步开发框架 将帧同步项目 https://github.com/dudu502/LittleBee 帧同步核心部分提取出SDK，本SDK基于netstandard2.0。提供服务端，客户端的SDK部分。目前主要的代码案例用Unity编写客户端，dotnetcore控制台程序为服务端。 项目结构如下 - Docs/ - Diagrams/ : 说明文件。 - Protocols/ : 协议工具和配置。 - Engine/ : SDK目录。 - Client/ : 供客户端项目使用的库，引用Common项目，基于netstandard2.0项目。 - Common/ : Client和Server项目的基础引用库，基于netstandard2.0项目。 - Server/ : 供服务端项目使用的库，引用Common项目，基于netstandard2.0项目。 - Examples/ : 案例项目。 - Clients/ : 目前有一个案例项目，使用Unity开发。 - Servers/ : 目前一个netcore控制台程序。 说明 API SDK中找到Context类，这是框架的主类，这个类很重要它是整个SDK的入口，在客户端和服务端中都用这个类作为程序入口，都是相似API的用法，默认Context的name分为服务端和客户端，使用的时候根据需要选择client或server类型来构造Context实例。 在构造方法里传入name来指定对应的Context： 对应的获取方法： 在SDK内或自定义游戏中均可以通过上述的方法获取Context对象。再通过Context对象可以方便获取其他对象和数据。 这是Context的类关系图，Context中包含SDK所有提供给开发者的功能模块入口。 ContextMetaId中定义的内置类型如下，这些类型会在SDK内部使用，用户还可以通过Context.SetMeta和Context.GetMeta来存储和读取自定义类型。 服务端代码案例 服务器分Gate和Battle两部分，Gate服务旨在提供用户一个大厅服务，让用户登录进来，每一个用户有一个不同的uid，这个uid目前仅用不同的字符串区别测试就可以，正式项目应该是数据库中的guid以确保每一个用户的id是唯一的。在这个Gate服务中提供用户创建房间，加入房间，离开房间等有关组队的服务。当多用户在房间内开启战斗的时候Gate服务会开启Battle服务的新进程并告知这些用户进入Battle服务。每一个战斗都会开启一个新的Battle进程。在Battle服务中具体实现了同步关键帧给所有用户的服务。 如下是Gate服务端的代码案例： - 构造Context主类，传入name是\"server\"。传入LiteNetworkServer实例 - 必须设置的内置Meta数据，配置battle部分dll路径，这个路径的程序会以进程的方式单独启动 - 必须设置的内置Meta数据，配置最大连接数 - 必须设置的内置Meta数据，服务器地址 - 添加模块RoomModule，该模块用来管理登录用户的创建房间，加入房间，离开房间等 接下来是Battle项目案例： - 构造Context主类，传入name是\"server\"。传入LiteNetworkServer实例 - 必须设置的内置Meta数据，配置最大连接数 - 必须设置的内置Meta数据，设置地图Id - 必须设置的内置Meta数据，设置Gate服务端的端口 - 添加模块BattleModule，该模块处理帧同步的具体细节 客","default_branch":null,"files":null,"tree":[],"storefront":"/r/dudu502","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/dudu502/littlebee_libs/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}