Skip to content

ChibiEngine/ChibiEngine

Repository files navigation

Chibi Engine (WIP)

npm version Maintainability Rating

Goal

illustration

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
    • Lerp
    • Parallax
    • Effects
  • Physics engine ⚒️
  • Refactoring & code cleanup
  • Separate ChibiEngine common API and Pixi implementation
  • Documentation
    • API Reference
    • Guide
  • Simple animations (scaling, rotation, translation, tinting of elements)
    • JSON Animation format (defines skins, skin parts and animations)
    • Frame-by-frame element integration
    • Mesh transformation 🔮
    • Animation editor 🔮
  • Tilemap
  • Masks
  • Meshes
  • Dynamic node loading (prefab) ❓
  • Atlas generation tool CLI (for optimization) ❓
  • 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://chibi.land/       •     Feavy 2023 - https://feavy.fr/

Packages

 
 
 

Contributors