Crafty is a JavaScript game engine focused on helping developers build structured, modular 2D HTML5 games that run smoothly in modern browsers. It uses an entity-component system that lets you compose game objects from reusable components instead of relying on inheritance, making game logic easier to organize and maintain. Crafty supports event binding for custom events, so objects can react to game actions, collisions, input, and timers in a clean, decoupled fashion, which helps scale complexity as your game grows. Developers can choose between Canvas or DOM rendering for flexibility in how game elements are drawn, and its lightweight footprint means it won’t slow down load times or performance in most browser environments. The engine is designed to be small and approachable, with enough built-in components for common tasks like movement, collisions, keyboard input, and animations, while still being flexible enough to let developers write their own systems when needed.
Features
- Entity-component architecture
- Event binding system
- Canvas and DOM rendering options
- Built-in components for common game features
- Small, performant footprint
- MIT open-source license