All Projects → slicol → Sgf

slicol / Sgf

This is a Smart Game Foundation (Not Framework)

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
Gdk For Unity
SpatialOS GDK for Unity
Stars: ✭ 296 (+142.62%)
Mutual labels:  game, unity, 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
Gonet
go分布式服务器,基于内存mmo
Stars: ✭ 804 (+559.02%)
Mutual labels:  rpc, game, server
Azerothcore Wotlk
Complete Open Source and Modular solution for MMO
Stars: ✭ 1,330 (+990.16%)
Mutual labels:  game, server
Ffw
A fuzzing framework for network servers
Stars: ✭ 97 (-20.49%)
Mutual labels:  server, network
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
Deta cache
缓存cache服务器
Stars: ✭ 106 (-13.11%)
Mutual labels:  server, network
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,你可以尝试运行一下,可能在不同的机器上运行会有问题,你最好直接打开对应的示例工程来调试运行。

其它:

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].