Skip to content

dy-amaker/JEngine

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

157 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JENGINE v0.4.9

JEngine is a streamlined and easy-to-use framework designed for Unity Programmers.

topLanguage size issue license last

QQ Group ID: 921271552

Will hold one live broadcast on 19th of August, 2020

中文文档

Wiki Page, tutorials are in here

Zhihu Article

Gitee link (Clone faster in China)

Stargazers over time

Stargazers over time

What can JEngine do?

  • Hot-update solution

    • Resource hot update & management is based on XAsset which JEngine's author has contributed into.
    • Code hot update is based on ILRuntime which JEngine's author has also contributed into its Unity Project.
    • Encrypts your hot-updatable codes and resources, codes will go into your assetbundles, assetbundles will be encrypt within VFS by XAsset, and also, your codes will be encrypted in AES-128 ECB mode
    • Auto bind hot update scripts to gameObject, no need to write codes to add stuffs
  • Action solution

    • Less code, does more

    • Can be Run in Main Thread

      As we know Task.Run in Unity will run in a new thread, which is not able to call most Unity APIs, now JAction found a solution of using Loom.

  • UI solution

    • Method-Chaining style makes codes prettier and easier to visualize

    • Easier to manage lifecycle

      • Can easily set up what you want the UI element to do in specific time
    • Bindable to data

      • UI can be binded to a data, once data has changed, it will call the method that you has binded
  • Behaviour based on MonoBehaviour

    • More friendly to manage lifecycle

      • You can make loop easier using JEngine
  • Resource Management based on XAsset

    • Support generic method
    • Async/Sync methods
  • Auto bind scripts from Hot-Update DLL to GameObjects & Prefabs

    • Want to make scripts from hot-update project on to GameObject? Too much to write codes to add it? Here is a solution!
    • Fill in namespace, and class of a hotupdate scripts, it will automatically bind to a GameObject
    • Can set values of public/private/static fields automatically
    • Supports numbers, bools, strings, GameObject and Components on GameObject
  • Object Pool soulution

    • MUCH MORE Enhances the performencerather than usingInstantiate method
      • With this solution, you don't have to repeat instantiate gameObject
      • Just tell JObjectPool what gameObject you will repeatedly create, and how many you except to create at the start, it will do it for you
      • Request PoolObject to get the GameObject
    • Easy and powerful
    • With algorithm which fairly controls gameObjects
  • Data persistence solution

    JEngine now supports JSaver, which is a data persistance tool

    What can JSaver do?

    • Convert data into string/JSON string
    • AES encryption
    • Save to local storage
    • Load data from local storage (supports generic method)
    • Judge if has key in local
    • Delete local Key data
  • More to explore!!!

JEngine has its own purpose to help developers write powerful codes which are streamlined and beautiful; and to help developers easier making their games.

If you enjoy using JEngine, please give this repo a star!

Latest Features

  • Able to autobind hot update resource
  • Auto bind runs in Awake which becomes faster
  • ILRuntime Adapter Generator supports custom assembly

Click here to see all version updates

Future Features

  • Supports local hot-update resources development in Unity Editor (Done)
  • Encrypt Hot-update DLL and decrypt in runtime
  • Object Pool which significantly improves performance rather than using Instantiate method
  • JPrefab, a better way to manage Prefab from Resources
  • JUI with more extended APIs
  • UI Special Effects
  • Optiimize logics which can improve process speed (As always doing it)
  • Unity Editor FTP Tool (Maybe)

What is Hot update and Why

Click here to have a read

Directory Structure (IMPORTANT)

Please clone this framework into your project and keep this directory structure

.
├── Assets
│   ├── Dependencies
│   ├── HotUpdateResources
│   │   ├── Controller
│   │   ├── Dll
│   │   ├── Material
│   │   ├── Other
│   │   ├── Prefab
│   │   ├── Scene
│   │   ├── ScriptableObject
│   │   ├── TextAsset
│   │   └── UI
│   ├── Init.unity
│   └── Scripts
│       ├── Init.cs
│       ├── InitILrt.cs
│       └── APIs
├── Builds
├── DLC
├── HotUpdateScrpts

Description for those Directories

Click here to have a read

JEngine Hot Update Logics

flowchart

Development Environment

  • Debuging Unity Engine Version: 2019.3.13f1 (Please use at least this version)

  • .net Environment: .net 2.0 standard

  • Operating System: MacOS 10.15.5

    Definityly supports windows

Recommend Repositories

  • XAsset - A more streamlined, efficient and secure Unity Resource Management Solution for you.
  • IFramework - Simple Unity Tools

Sincerely Appreciated

  • Ekson (Sponsorship)

About

JEngine is a streamlined and easy-to-use framework designed for Unity Programmers | JEngine是针对Unity开发者设计的开箱即用的框架,支持资源+代码热更

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • C# 99.6%
  • ShaderLab 0.4%