Code Monkey home page Code Monkey logo

tengine's Introduction

TEngine

logo

TEngine

Unity框架解决方案
status license last issue topLanguage

TEngine

TEngine是一个简单(新手友好开箱即用)且强大的Unity框架全平台解决方案,对于需要一套上手快、文档清晰、高性能且可拓展性极强的商业级解决方案的开发者或者团队来说是一个很好的选择。

文档快速预览 - 5分钟

为什么要使用TEngine

  1. 开箱即用5分钟即可上手整套开发流程,代码整洁,思路清晰,功能强大。高内聚低耦合。您可以很轻易的把您不需要的模块进行移除替换。
  2. 严格按照商业要求使用次世代的HybridClr进行热更新、最佳的Luban配置表(TEngine支持懒加载、异步加载、同步加载配置。)、百万DAU游戏验证过的YooAsset资源框架(框架管理资源引用与释放。),全平台热更新流程已跑通。
  3. 严格按照商业化流程执行的热更新、商业化的UI开发流程、以及资源管理等等,设计并实现了YooAsset资源自动释放、支持LRU、ARC严格管理资源内存。
  4. 支持全平台,已有项目使用TEngine上架Steam、Wechat-minigame、AppStore。

最新的Demo飞机大战位于demo分支

服务器相关

TEngine本身为纯净的客户端。不强绑定任何服务器。但是个人开发以及中小型公司开发双端则推荐C#服务器。

Net Core现在已经更新到了8.0的版本,在性能和设计上其实是远超JAVA和GO。在JAVAER还在为JVM更新和添加更多功能时,其实他们已经被国内大环境所包围了,看不到.Net Core的性能之强,组件化的结构。国内大环境是JAVA和GO的天下这个不可否认,但是国外C#也确实很多。其实.Net Core最大的问题是大多数自己人都不知道他的优点(AOT、JIT混合编译、热重载等等),甚至很多守旧派抵制core。GO喜欢吹性能,但其实目前来看,除了协程的轻量级,大多数性能测试其实不如JAVA和.Net。简单可以说出了C++的性能以外,Net Core其实都打得过。

需要服务器可以合并GameNetty过来,或者分支Fantasy为接好的带有Fantasy服务器的双端分支。

项目结构概览

Assets
├── AssetRaw            // 热更资源目录
├── Atlas               // 自动生成图集目录
├── HybridCLRData       // hybridclr相关目录
├── TEngine             // 框架核心目录
└── GameScripts         // 程序集目录
    ├── Editor          // 编辑器程序集
    ├── Main            // 主程序程序集(启动器与流程)
    └── HotFix          // 游戏热更程序集目录 [Folder]
        ├── GameBase    // 游戏基础框架程序集 [Dll]
        ├── GameProto   // 游戏配置协议程序集 [Dll]  
        ├── BattleCore  // 游戏核心战斗程序集 [Dll] 
        └── GameLogic   // 游戏业务逻辑程序集 [Dll]
            ├── GameApp.cs                  // 热更主入口
            └── GameApp_RegisterSystem.cs   // 热更主入口注册系统   


TEngine
├── Editor              // TEngine编辑器核心代码
└── Runtime             // TEngine运行时核心代码
  • 必要:项目使用了以下第三方插件,请自行购买导入:
    • /Unity/Assets/Plugins/Sirenix

优质开源项目推荐

YooAsset - YooAsset是一套商业级经历百万DAU游戏验证的资源管理系统。

JEngine - 使Unity开发的游戏支持热更新的解决方案。

HybridCLR - 特性完整、零成本、高性能、低内存的近乎完美的Unity全平台原生c#热更方案

Fantasy - Fantasy是一套源于ETServer但极为简洁,更好上手的一套商业级服务器框架。

GameNetty - GameNetty是一套源于ETServer,首次拆分最新的ET8.1的前后端解决方案(包),客户端最精简大约750k,完美做成包的形式,几乎零成本 无侵入的嵌入进你的框架。

交流群

Buy me a 奶茶.

您的赞助会让我们做得更快更好,如果觉得TEngine对您有帮助,不妨请我可爱的女儿买杯奶茶吧~

tengine's People

Contributors

alanweekend avatar alextangxiao avatar senfee-cheng avatar zemelling avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tengine's Issues

LoopListView和LoopGridView重复加载问题

LoopListView和LoopGridView会重复调用SetItemData。#56
上一次pr注释了一部分逻辑。不会重复调用了,但新的数据个数小于原数据个数时不会触发SetItemData。
这块比较复杂,我这边用fancyscrollview实现了。fancyscrollview和uiwidget不太好做兼容,就不提pr了

UIDemo运行报错

TEngine2.0.0
Unity 2021.3.12f1c2
UIDemo
[TLogger][ERROR][2023-02-17 10:25:20 062] - Can not find procedure type 'TEngine.Runtime.ProcedureRunPuerts'.
UnityEngine.Debug:LogError (object)
TEngine.Runtime.TLogger:Log (TEngine.Runtime.TLogger/LogLevel,string) (at Assets/TEngine/Scripts/Runtime/Core/Base/Logger/TLogger.cs:311)
TEngine.Runtime.TLogger:LogError (string,object[]) (at Assets/TEngine/Scripts/Runtime/Core/Base/Logger/TLogger.cs:160)
TEngine.Runtime.Log:Error (string,object[]) (at Assets/TEngine/Scripts/Runtime/Core/Base/Logger/Log.cs:42)
TEngine.Runtime.ProcedureComponent/d__9:MoveNext () (at Assets/TEngine/Scripts/Runtime/Core/Procedure/ProcedureComponent.cs:67)
UnityEngine.SetupCoroutine:InvokeMoveNext (System.Collections.IEnumerator,intptr)

PuertsMgr的脚本丢失

在2.0.0版本中的TEngine.prefab内包含一个PuertsMgr,该物体的脚本是丢失状态,,在项目未找到类似名字的脚本文件,请问该PuertsMgr是有什么特殊作用吗?或是可以删除。

导入报错

报错2个:
DirectoryNotFoundException: Could not find a part of the path "C:\UnityTest\TEngine-main\Assets\StreamingAssets\TEngine\AssetBundles\AssetBundleMeta.bin".

[TLogger][ERROR][2023-04-09 20:39:10 953] - Can not find procedure type 'TEngine.Runtime.ProcedureRunPuerts'.

AudioAgent类中_audioModuleImp的赋值问题

QQ截图20231029182111
QQ截图20231029182146
您好,我发现_audioModuleImp字段只在AudioAgent的Create方法中进行了赋值,但在AudioCategory的构造方法中使用的是默认构造,因此在AudioCategory构造中创建的AudioAgent的_audioModuleImp字段都没有被赋值

案列

大佬,有些小案列就超赞了

macos中文乱码

使用macos打开工程后,代码里的中文都是乱码。希望能在工程中把源文件的编码格式改成UTF-8的,这样对使用苹果设备的人更友好。

运行UIDemo时候报错

”DirectoryNotFoundException: Could not find a part of the path "C:\UnityTest\TEngine-main\Assets\StreamingAssets\TEngine\AssetBundles\AssetBundleMeta.bin".
没有文件夹“StreamingAssets" 猜想是否要手动HybirdCLR 打包一次,(需要本地build一次apk,build的时候报错:“Exception: Unity.IL2CPP.Building.BuilderFailedException: Lump_libil2cpp_vm.cpp
C:\UnityTest\TEngine-main\HybridCLRData\LocalIl2CppData-WindowsEditor\il2cpp\libil2cpp\utils/Il2CppHashMap.h(71): error C2039: "hash_compare": ���� "stdext" �ij�Ա
”)参考HybirdCLR常见错误,没有找到sparseconfig.h文件添加定义#define _SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS
然后就进行不下去了

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.