(Translated by https://www.hiragana.jp/)
GitHub - slicol/SGF: This is a Smart Game Foundation (Not Framework)
Skip to content
/ SGF Public

This is a Smart Game Foundation (Not Framework)

Notifications You must be signed in to change notification settings

slicol/SGF

Repository files navigation

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类,UIPageUIPanel:页面。ゆう戏的もと础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环境のう输出格式かくしきこころざし
  • 并且支持しじこころざし保存ほぞん为文けん