// ENGINE · FINGERENGINE
FingerEngine Game Engine
A lightweight mini-game engine layered deeply on Cocos Creator 3.8.8, distilling years of R&D into a clean, testable, AI-friendly foundation. One codebase covering WeChat, Douyin, Kuaishou, App, and Web.
// OVERVIEW
Why We Built Our Own Engine
The pain of mini-game development isn't "can't write the gameplay" — it's reinventing the wheel on every project: platform differences, asset pipelines, hot updates, multiplayer sync, UI binding… each one is enough to bog a team down.
FingerEngine folds Cocos Creator's capabilities into a reusable architecture, letting designers, engineers, and artists work in parallel on a stable foundation and leave their energy for the gameplay itself.
- ▍Entity-Component-System (ECS) composable architecture, decoupling logic from presentation
- ▍MVVM-driven UI layer with data binding out of the box
- ▍Hot updates and a remote asset pipeline — iterate without waiting for review
- ▍Both lockstep and state-sync multiplayer modes, ready for competitive games
- ▍Complete JSDoc for an AI-friendly, type-safe development experience
import { FingerEngine } from 'finger-engine';
// One build, every platform · Cocos Creator 3.8.8
const app = new FingerEngine(
platforms: ['wechat', 'douyin', 'web'],
scene: 'MainMenu',
hotUpdate: true,,
});
app.launch(() => {
ui.open('views/LoginView');
res.load('main_atlas');
net.connect('ws://game.joyfinger.cn');
});▍// ARCHITECTURE
A Clear Layered Architecture
From the pure TypeScript core to the Cocos runtime, every layer has a single responsibility and is independently testable.
Core Layer · Pure TS
ECS, network protocols, behavior trees, event bus, deterministic random, and timer systems — all engine-agnostic and unit-testable in Node.
Cocos Adapter Layer
Wraps Cocos Creator 3.8.8 capabilities behind stable interfaces: scene management, component lifecycle, @ccclass serialization and loading.
MVVM UI Layer
Data-driven views with automatic two-way binding between view models and views; dialogs, notifications, and view stacks managed uniformly.
Asset & Hot-Update Pipeline
Loading, caching, compression, and remote hot updates built on the Asset Manager — ship new versions without release waiting.
Networking & Sync Layer
WebSocket / HTTP wrappers with both lockstep and state sync, plus built-in reconnection and protocol compression.
Tools & Performance Layer
Profiling, leveled logging, object pools, and batched render scheduling — smooth even on low-end devices.
// FEATURES
Core Features in Depth
Every capability here was earned through real projects — ready on day one.
One-Click Multi-Platform Builds
One codebase builds for WeChat, Douyin, Kuaishou, App, and Web simultaneously. Platform differences, subpackage strategies, platform login, and payment SDK integrations are handled automatically — building means publishing, with no per-platform manual adaptation.
Composable ECS Architecture
A three-way decoupling of entities, components, and systems: systems own the logic, components carry the data, entities compose capabilities freely. With object pools and command buffers, even thousand-entity scenes stay clear and performant.
Hot Updates & Asset Pipeline
Reinforced asset loading, atlas batching, and remote hot updates on top of the Cocos Asset Manager. Version iterations and event launches no longer wait for platform review; staged rollouts and rollbacks flow seamlessly.
High-Performance Rendering
Adapted to WebGL / WebGPU render pipelines with deeply optimized 2D batching and effects. Particles, combat effects, and open-world scenes stay silky even on low-end devices.
Networking & Multiplayer Sync
WebSocket / HTTP protocol layer with both lockstep and state-sync modes built in. Reconnection, weak-network compensation, and protocol compression come standard — competitive and casual games work out of the box.
Toolchain & Debugging
Built-in profiling, leveled logging, and strict type checks. Complete JSDoc covers every public interface, so AI can readily understand and generate compliant code.
// CODE
A Delightful Out-of-the-Box Experience
Express the clearest logic with the least boilerplate.
import { Comp, Entity, System } from 'finger-engine';
class MoveData extends Comp {
speed: number = 120;
}
class MoveSystem extends System {
update(dt: number) {
this.allOf(MoveData).forEach(e => {
const pos = e.get(PosData);
pos.x += e.get(MoveData).speed * dt;
});
}
}import { viewModel, Bindable } from 'finger-engine';
@viewModel
class HUDModel {
@Bindable score = 0;
@Bindable combo = 0;
}
// Views update automatically — no manual set
hud.data.score += 100;
hud.data.combo = 3;// GET STARTED
Start Your Project with FingerEngine
Whether it's licensing the engine or having us build custom gameplay — we'd love to hear from you.