Skip to content

ChibiEngine/ChibiEngine

Repository files navigation

Chibi Engine (WIP)

npm version Maintainability Rating

Chibi Engine aims to offer a modern and simple approach to game development with web technologies. It takes advantage of TypeScript and ES6 features such as asynchronism, classes, and mixins for a flexible and maintainable programming methodology, inspired by popular game engines.

Its main objective is to pave the way for cross-engine game development. In this way it introduces an abstraction layer over existing engines to simplify the development process, gathering their common features under a unified API, while still allowing developers to leverage specific engine capabilities.

Additionally, Chibi Engine aims to integrate usual game creation features such as an entity component system, a physics engine and camera system.

Currently, the main target is PixiJS.

Objectives

  • Modern API, easy to use. Inspired by Flash and Cocos2d-x.
  • Focused on Object-Oriented Programming through an extensible node and component system.
  • Implicit dynamic assets loading.

Roadmap

  • Event system
  • Transparent resource loading
  • Nodes
  • Sprites
  • Game loops
    • Update loop
    • Render loop
  • Entity Component System (ECS)
  • Scenes ⚒️
    • Basic implementation
    • Transitions between scenes
  • Automated props interpolation (position, rotation, size)
  • Input ⚒️
    • Keyboard
    • Mouse
    • Touch
    • Gamepad
  • Implement missing transformation attributes..
  • Audio: SFX and Music with volume control
  • English translation ⚒️
  • Tweens and sequences (inspired by Cocos2d-x)
    • Easing functions (penner / phaser)
    • Implement missing actions
  • Camera (inspired by pixi-viewport) ⚒️
    • Bounds
    • Parallax ⚒️
    • Lerp
    • Effects
  • Physics engine
  • Refactoring & code cleanup
  • Documentation
    • API Reference
    • Getting Started
  • Custom animation engine
    • JSON Animation format
    • Frame-by-frame element integration
    • Animation editor 🔮
  • Tilemap
  • Masks
  • Meshes
  • Dynamic node loading (prefab) ❓
  • Atlas generation at runtime (for optimization) 🔮
    • Or ahead-of-time at compile-time? Or with a CLI?
  • 3D support with babylon.js or three.js 🔮
  • Native Desktop/Android/iOS version with cocos2d-x 🔮

⚒️ Work in progress...

🔮 Non-essential feature that will arrive in the distant future

❓ Potentially irrelevant feature


Chibiland - http:https://chibi.land/       •     Feavy 2023 - https://feavy.fr/