Convert Figma logo to code with AI

JasonXuDeveloper logoJEngine

The solution that allows unity games to update in runtime. 使Unity开发的游戏支持热更新的解决方案。

2,210
345
2,210
2

Top Related Projects

10,791

Provides an efficient allocation free async/await integration for Unity.

7,322

Reactive Extensions for Unity

2,912

Dependency Injection Framework for Unity3D

2,028

Nez is a free 2D focused framework that works with MonoGame and FNA

Quick Overview

JEngine is an open-source game framework for Unity, designed to enhance development efficiency and performance. It provides a suite of tools and features to streamline game development, including hot update capabilities, resource management, and various optimization techniques.

Pros

  • Supports hot updates, allowing for easy game modifications without rebuilding
  • Includes a comprehensive set of tools for resource management and optimization
  • Provides cross-platform support for various Unity deployment targets
  • Offers detailed documentation and active community support

Cons

  • Learning curve may be steep for developers new to the framework
  • Some features may be overkill for smaller projects or simpler games
  • Dependency on Unity engine limits its use to Unity-based projects
  • Regular updates may require occasional adjustments to existing projects

Code Examples

  1. Initializing JEngine:
using JEngine.Core;

public class GameEntry : MonoBehaviour
{
    private void Start()
    {
        GameManager.Initialize();
    }
}
  1. Loading a hot-updateable scene:
using JEngine.Core;

public class SceneLoader
{
    public static async void LoadScene(string sceneName)
    {
        await GameManager.LoadSceneAsync(sceneName);
    }
}
  1. Using JEngine's localization system:
using JEngine.Core;

public class LocalizationExample : MonoBehaviour
{
    private void Start()
    {
        string localizedText = JEngine.Localization.Get("key_example");
        Debug.Log(localizedText);
    }
}

Getting Started

  1. Install Unity (2019.4 or later recommended)
  2. Clone the JEngine repository:
    git clone https://github.com/JasonXuDeveloper/JEngine.git
    
  3. Open the project in Unity
  4. Import JEngine into your project:
    • Copy the Assets/Dependencies/JEngine folder to your project's Assets folder
  5. Initialize JEngine in your game entry script:
    using JEngine.Core;
    
    public class GameEntry : MonoBehaviour
    {
        private void Start()
        {
            GameManager.Initialize();
        }
    }
    
  6. Explore JEngine's features and documentation to leverage its capabilities in your game development process.

Competitor Comparisons

10,791

Provides an efficient allocation free async/await integration for Unity.

Pros of UniTask

  • Highly optimized for Unity-specific asynchronous programming
  • Extensive documentation and examples for easy integration
  • Lightweight and focused solely on async/await functionality

Cons of UniTask

  • Limited to Unity environment, not suitable for general C# development
  • Steeper learning curve for developers unfamiliar with async programming
  • May require additional setup and configuration in Unity projects

Code Comparison

UniTask:

async UniTaskVoid Start()
{
    await UniTask.Delay(1000);
    Debug.Log("Delayed execution");
}

JEngine:

public void Start()
{
    this.Delay(1000, () =>
    {
        Debug.Log("Delayed execution");
    });
}

Summary

UniTask excels in Unity-specific async programming with optimized performance, while JEngine offers a broader framework for game development. UniTask provides a more modern approach to asynchronous operations, but may be more complex for beginners. JEngine, on the other hand, offers a wider range of features beyond just async programming, making it a more comprehensive solution for Unity game development.

7,322

Reactive Extensions for Unity

Pros of UniRx

  • Robust reactive programming framework for Unity
  • Extensive documentation and community support
  • Seamless integration with Unity's coroutine system

Cons of UniRx

  • Steeper learning curve for developers new to reactive programming
  • Can introduce complexity in simpler scenarios
  • Potential performance overhead for excessive use of observables

Code Comparison

UniRx example:

Observable.EveryUpdate()
    .Where(_ => Input.GetKeyDown(KeyCode.Space))
    .Subscribe(_ => Debug.Log("Space key pressed"));

JEngine example:

public class SpaceKeyListener : JBehaviour
{
    public override void OnUpdate()
    {
        if (Input.GetKeyDown(KeyCode.Space))
            Debug.Log("Space key pressed");
    }
}

Summary

UniRx offers a powerful reactive programming paradigm for Unity, with extensive features and community support. However, it may introduce complexity and have a steeper learning curve. JEngine provides a more traditional approach to Unity development, focusing on performance optimization and ease of use. The choice between the two depends on project requirements and team expertise.

2,912

Dependency Injection Framework for Unity3D

Pros of Zenject

  • More mature and widely adopted in the Unity community
  • Extensive documentation and community support
  • Powerful dependency injection system for better code organization

Cons of Zenject

  • Steeper learning curve for beginners
  • Can introduce complexity in smaller projects
  • Requires more setup and configuration

Code Comparison

Zenject:

public class Foo : MonoBehaviour
{
    [Inject]
    public void Construct(Bar bar, Baz baz)
    {
        // Dependencies injected automatically
    }
}

JEngine:

public class Foo : JBehaviour
{
    public void Awake()
    {
        Bar bar = ClassBind.Bind<Bar>();
        Baz baz = ClassBind.Bind<Baz>();
    }
}

Summary

Zenject offers a robust dependency injection system with extensive community support, making it ideal for larger projects. However, it may be overkill for smaller games and has a steeper learning curve. JEngine provides a simpler approach to class binding and lifecycle management, which can be more accessible for beginners but may lack some of the advanced features found in Zenject.

2,028

Nez is a free 2D focused framework that works with MonoGame and FNA

Pros of Nez

  • More comprehensive 2D game framework with built-in systems for physics, rendering, and scene management
  • Larger community and more extensive documentation
  • Better suited for complex 2D game development with a wider range of features

Cons of Nez

  • Steeper learning curve due to its more extensive feature set
  • Less focused on performance optimization compared to JEngine
  • May be overkill for simpler projects or those primarily targeting mobile platforms

Code Comparison

Nez scene setup:

public class MainScene : Scene
{
    public override void Initialize()
    {
        AddEntity(new Player());
        AddRenderer(new DefaultRenderer());
    }
}

JEngine scene setup:

public class MainScene : JBehaviour
{
    public override void Init()
    {
        CreateGameObject("Player").AddComponent<Player>();
    }
}

Both frameworks offer scene management, but Nez provides a more structured approach with built-in renderers and entity systems, while JEngine focuses on simplicity and performance optimization for mobile platforms.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

JEngine

Ship game updates without shipping a build.

Runtime hot updates for all platforms — push code, assets, and logic without rebuilding.
Powered by HybridCLR with built-in encryption and obfuscation.
1,000+ games shipped · 100+ companies in production · built-in Claude Code AI integration.

Version Tests License Last Commit Top Language FOSSA Status CodeFactor OpenSSF Scorecard OpenSSF Best Practices Ask DeepWiki

Documentation | 中文文档

 

Why JEngine

Ultralight Core

A handful of files — that's the entire core package. Drop it in and hot updates just work. No boilerplate code required.

10x+ Performance

HybridCLR runs standard C# natively — 10x+ faster than ILRuntime or Lua. UniTask for GC-free async, Nino for zero-allocation serialization.

Built-in Security

Encrypt assets and DLLs with XOR, AES, or ChaCha20. Obfuscate hot update code with Obfuz. No other hot update framework ships this.

One-Click Build

Compile code, generate AOT metadata, obfuscate, encrypt, and package resources — all from one button in the JEngine Panel.

All Platforms

iOS, Android, Windows, macOS, WebGL — plus WeChat, Douyin, Alipay, and TapTap mini-game platforms. YooAsset powers games with 1M+ DAU.

AI-Powered Development

First hot update framework with a Claude Code plugin. AI that understands JEngine patterns and writes idiomatic code for your game.

 

Before & After

Traditional ApproachWith JEngine
Learn Lua or TypeScript for hot update codeStandard C# — same language, same IDE, same debugging
Register cross-domain adapters (ILRuntime)Zero adapters — HybridCLR runs C# natively
No built-in asset protectionXOR / AES / ChaCha20 encryption + code obfuscation
Manual multi-step build pipelineOne-click build from JEngine Panel

 

Quick Start

Unity 2022.3+ required. Follow the Getting Started Guide to be up and running in minutes.

 

Packages

PackageTypeDescription
JEngine.CoreRequiredHot update runtime — bootstrap, encryption, resource management
JEngine.UtilOptionalJAction (zero-GC async tasks) · JObjectPool (lock-free object pooling)
JEngine.UIOptionalMessageBox (async dialog prompts) · Editor UI (modern UI Toolkit components with theming)

Built on HybridCLR · YooAsset · UniTask · Nino · Obfuz

 

🎉 Latest Features (v1.1.6)

  • core,ui: add configurable Bootstrap text and JTabView component (#624)
  • core: bump Nino to fix Dictionary serialization in HybridCLR (#627)
  • core: auto-detect manifest decryption in PreprocessBuildCatalog (#626)

📋 View Complete Changelog

 

Community

Stargazers over time

 

Related Projects

JEngine Ecosystem:

Other Great Unity Projects:


If JEngine helps your project, give it a ⭐