slicol / Sgf
This is a Smart Game Foundation (Not Framework)
Stars: ✭ 122
Projects that are alternatives of or similar to Sgf
X
新生命X组件,数据中间件XCode、日志、网络、RPC、序列化、缓存、Windows服务
Stars: ✭ 1,322 (+983.61%)
Mutual labels: rpc, server, network
Jstp
Fast RPC for browser and Node.js based on TCP, WebSocket, and MDSF
Stars: ✭ 132 (+8.2%)
Mutual labels: rpc, server, ipc
Nice Lua
基于xlua的MVVM框架,支持Addressables, 统一渲染管线等Unity新特性
Stars: ✭ 207 (+69.67%)
Mutual labels: game, unity, network
PoShLog
🔩 PoShLog is PowerShell cross-platform logging module. It allows you to log structured event data into console, file and much more places easily. It's built upon great C# logging library Serilog - https://serilog.net/
Stars: ✭ 108 (-11.48%)
Mutual labels: module, log, event
Cellnet
High performance, simple, extensible golang open source network library
Stars: ✭ 3,714 (+2944.26%)
Mutual labels: rpc, game, server
Gdk For Unity Fps Starter Project
SpatialOS GDK for Unity FPS Starter Project
Stars: ✭ 119 (-2.46%)
Mutual labels: game, unity, server
Pss
This is a based plug-in framework that provides cross-platform IO and logically separated plug-in services.
Stars: ✭ 219 (+79.51%)
Mutual labels: game, module, server
Moon
A cross-platform,lightweight,scalable game server framework written in C++, and support Lua Script
Stars: ✭ 313 (+156.56%)
Mutual labels: game, unity, network
Gameproject3
游戏服务器框架,网络层分别用SocketAPI、Boost Asio、Libuv三种方式实现, 框架内使用共享内存,无锁队列,对象池,内存池来提高服务器性能。还包含一个不断完善的Unity 3D客户端,客户端含大量完整资源,坐骑,宠物,伙伴,装备, 这些均己实现上阵和穿戴, 并可进入副本战斗,多人玩法也己实现, 持续开发中。
Stars: ✭ 655 (+436.89%)
Mutual labels: game, unity, server
Azerothcore Wotlk
Complete Open Source and Modular solution for MMO
Stars: ✭ 1,330 (+990.16%)
Mutual labels: game, server
Play
The free and open source karaoke singing game UltraStar Play for Windows, Linux, Android, Xbox, PlayStation and other platforms.
Stars: ✭ 94 (-22.95%)
Mutual labels: game, unity
Entitas Sync Framework
Networking framework for Entitas ECS. Targeted at turnbased games or other slow-paced genres.
Stars: ✭ 98 (-19.67%)
Mutual labels: game, unity
Unity Platformer
Unity platformer framework: IA, Ladders, Jumps, WallStick, WallJumps, Slopes, MovingPlatforms, OneWayPlatforms/Walls, Ropes and more...
Stars: ✭ 97 (-20.49%)
Mutual labels: game, unity
Geotic
Entity Component System library for javascript
Stars: ✭ 97 (-20.49%)
Mutual labels: event, game
Simpletcp
Simple wrapper for TCP client and server in C# with SSL support
Stars: ✭ 99 (-18.85%)
Mutual labels: rpc, server
Yarnspinner
Yarn Spinner is a tool for building interactive dialogue in games!
Stars: ✭ 1,283 (+951.64%)
Mutual labels: game, unity
SGF
the Smart Game Foundation
QQ交流群:809637084
它主要由3个工程组成:
- SGFCore:与Unity无关的功能模块。
- SGFUnity:与Unity相关的功能模块。
- SGFDebuger:一个日志输出工具。
其余工程说明:
- ILRuntime:一个ILRuntime的第3方库。由于官方不推荐以DLL的形式用于项目中,所以该工程将不再维护。
- SGFServerLite:一个服务器的示例。
- SGFAppCommon/SGFAppILRScript/SGFAppDemo:一个客户端的综合演示示例,它包括与服务器通讯,热更新等等逻辑。
其余目录:
- Libs:以上工程编译好的Dll,如果不需要修改代码的话,你可以直接使用这些Dll。
- Apps:以上示例编译好的Exe,你可以尝试运行一下,可能在不同的机器上运行会有问题,你最好直接打开对应的示例工程来调试运行。
其它:
- SGF库发源于我的一个GAD课程项目:《贪吃蛇大作战》
- 其相关的视频链接为:
1.SGFCore
Codec
- 收集或者实现一些常用编解码库,或者对一些编解码库进行易用性封装。
- MiniJson,一个常用的轻量Json编解码库(Copyright (c) 2013 Calvin Rien)
- PBSerializer,对Protobuf的封装,使之在一般场合下非常易用。
- SGFEncoding,一些自己实现的编解码相关算法,比如:
- XOR
- CheckSum
- BytesToHex,HexToBytes
- 等等
Common
- 将来可能放一些数据结构相关的类,或者易用性封装。
- DictionarySafe,是对Dictionary做一个易用性封装。
- MapList,是将List与Dictionary结合起来做一个易用性封装。
Console
- 控制台相关的功能。
- ConsoleInput:使控制台应用程序可以接受命令行输入。
Event
- 事件系统。
- 它的思路与系统自带的Action类似,但是在性能与逻辑上比原生的Action更加可控,并且能够以日志的方式进行追踪和调试。
- 这在实际应用中非常有用。
G3Lite
- 轻量级几何库。
- 考虑到很多时候需要脱离Unity进行开发,所以需要一套脱离Unity的几何类库。这里部分移植了geometry3Sharp里的一些基础类:
- Vector2/Vector3/Vector4
- Matrix3
- Quaternion
- MathUtil
- IndexTypes
IPCWork
- 进程通讯模块。
- 它基于UdpSocket实现,以RPC的方式进行调用。
- 由于是基于Udp的简单实现,所以对单次通讯的数据大小有要求,不能超过当前系统的MTU。
- 如果需要在进程间进行大数据通讯,可以使用Network模块,建立可靠UDP连接,或者TCP连接。当然也可以采用共享内存和管道方案,期待后续有人来完善。
Marshals
- 提供非托管相关的功能模块
- 利用它可以避开C#的内存管理,自己控制内存的分配和释放,避免GC
- MarshalArray:参照托管Array来封装,使用方法上基本与Array相同
- MarshalList:参照托管List来封装,使用方法上基本与List相同
MathLite
- 计划实现一套轻量级的数学库。
- 目前只有随机数生成算法。
Module
- 模块管理器。
- 当项目的规模足够大时,就需要将整个系统划分为若干个模块。这些模块需要一套系统进行管理。
- 它具备很好的扩展性,结合ILRuntime可以实现iOS版本中模块级别的热更新。
- 它实现了模块间的消息通讯,并以此来解耦。
Network
- 网络模块。
- 它实现了与网络通讯相关的绝大部分功能。
- Core,这里实现了一些数据、协议头、消息格式等的定义。还有一个轻量的RPC实现方案。
- FSPLite,实现了一个轻量级的【帧同步】通讯方案的前台与后台模块。使用它,你可以很快搭建出一个帧同步运行环境,包括帧同步服务器和客户端。
- General,实现了一个【通用】的网络通讯方案的前台与后台模块。使用它,你可以很容易实现游戏的状态同步,包括服务器和客户端。
Server
- 服务器模块管理器。
- 在服务器开发中,当项目规范足够大时,也需要像客户端一样将整个系统划分为若干模块。这些模块需要进行管理。
- 目前该功能还比较简单,需要进一步完善。
Time
- 与时间相关的类。
- SGFTime,类似Unity里的Time类。需要在App启动时,进行初始化。
Utils
- 一些工具类。
- FileUtils,文件相关功能。
- PathUtils,路径相关功能。
- TimeUtils,时间相关功能。
- 等等
2.SGFUnity
DebugerGUI
- 一个可扩展的运行时调试和测试工具GUI。
- 可以很方便地在其上扩展自己的工具页签。
ILR
- 热更新相关的功能模块。
- DebugerILR,为热更模块提供日志输出功能。
- ModuleILR,支持模块级别的热更。
- UIILR,支持UI系统调用热更模块。
- 本热更方案可以实现在开发时,采用原生C#模式进行开发和单步调试。在发布时,无逢切换为热更模式。整个过程对于开发者是无感知的。
ILRuntime
- 用于热更新的运行时库。因为需要支持IL2CPP的缘故,将直接使用其源代码,而非DLL。
- 于是,如果需要使用ILRuntime,你需要将SGFUnity这个库的源代码直接Copy到Unity工程中。
Mono.Cecil.20与Mono.Cecil.Pdb
- 如果将SGFUnity以源代码的形式Copy到 Unity工程中,那么它们有可能与Unity新版本自带的库重复,如果这样的话,可以将其删除。
UI
- UI系统。
- 这是一个基于UGUI的UI管理系统,封装了游戏开发中常用的几种UI元素。并且将这些元素分为2类,UIPage和UIPanel:页面。游戏的基础UI就是Page,它是全屏的。所有的游戏Panel都是显示在一个页面上的。
- 而UIPanel又可以分为以下几类:
- UIWindow,游戏中的窗口。
- UILoading,游戏中的Loading。
- UIWidget,游戏中依附于窗口的一些小UI,或者会自动消失的小UI。
- 顺便封装了一些常用的通用UI面板和控件。
- UIMsgBox,继承自UIWindow。
- UIMsgTips,继承自UIWidget。
- UISimpleLoading,继承自UILoading。
- CtlList/CtlListItem
- CtlProgressBar
- 等等
Utils
- 一些工具类。
3.SGFDebuger
- 一个日志工具类。
- 支持在非Unity环境和Unity环境下都能输出格式化日志。
- 并且支持日志保存为文件。
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].