On this page
Overview
Excalibur is a TypeScript 2D game engine for the web. It combines actors, scenes, graphics, physics, input, cameras, tilemaps, and other engine features on HTML5 Canvas so browser games can be built without implementing the core engine loop from scratch.
Features and best fit
Based on official documentation; not hands-on tested · Content checked:
Key features
Compose 2D game objects around Actors and Scenes
Excalibur hides engine boilerplate while exposing Actor and Scene APIs for game objects, positions, graphics, and lifecycle behavior in TypeScript.
Target browser-based games through HTML5 Canvas
The engine is designed for HTML5 Canvas and emphasizes testing across current desktop and mobile browsers.
Sources: [1]
Integrate through npm with TypeScript definitions
The 0.32.0 package exposes ESM/CommonJS entries and TypeScript declarations for modern frontend build systems such as Vite.
Sources: [2]
Best fit
Fits teams building 2D browser games in the TypeScript ecosystem
It is useful when teams want game-loop, scene, physics, and input functionality without leaving the web and TypeScript toolchain.
Sources: [1]
Before adoption
Pin versions because 0.x releases may contain breaking changes
The README explicitly warns that breaking changes can occur while the project remains on 0.x, so engine and plugin versions should be pinned and upgrades regression-tested.
Sources: [1]
0.32.0 focuses on developer experience and performance
The release improves debug draw, offscreen rendering, tilemaps, collision, physics, and API ergonomics. Performance-sensitive scenes should be re-measured in the actual game after upgrading.
Sources: [3]
Official sources
- [1]Excalibur 0.32.0 README(2026-10-04)
- [2]Excalibur 0.32.0 package metadata(2026-10-04)
- [3]Excalibur 0.32.0 release(2026-10-04)
- [4]Excalibur BSD-2-Clause license(2026-10-04)
Supplemental curator note
Excalibur is still a 0.x project and its README explicitly warns that breaking changes can occur between releases. Pin versions and regression-test rendering, physics, input, and asset pipelines when upgrading. Version 0.32.0 focuses on developer experience and performance.
Try it in 3 steps
- 1
Create a local project with Excalibur 0.32.0
Pin the engine and TypeScript compiler versions.
mkdir -p excalibur-demo && cd excalibur-demo && npm init -y && npm install excalibur@0.32.0 typescript@5.6.3 - 2
Create a minimal TypeScript file using the Actor API
Exercise type and API compatibility without opening a browser.
printf 'import { Actor, vec } from "excalibur";\nconst actor = new Actor({ pos: vec(10, 20), width: 16, height: 16 });\nconsole.log(actor.pos);\n' > excalibur-demo/index.ts - 3
Type-check with DOM definitions
Validate the 0.32.0 TypeScript definitions and sample without starting the rendering engine.
cd excalibur-demo && npx tsc --noEmit --module esnext --moduleResolution bundler --target es2022 --lib es2022,dom index.ts
Growth
Growth trends · Last 30 days
2,348 Stars
Trend data is still being collected.
Development activity
Last 90 days · weekly
- Commits (last 30 days)
- 46
- Open PRs
- 14
Development activity is still being collected.
Built with
Categories and tags
Categories
GitHub data
GitHub dataView detailed GitHub data
GitHub Topics
- excalibur
- game-development
- game-engine
- gamedev
- typescript
- html5-canvas
- game-framework
- games
- excaliburjs
- Stars
- 2,348
- Forks
- 226
- Watchers
- 35
- Open issues
- 37
- Contributors
- 114
- Owner type
- Organization
- Primary language
- TypeScript
- License
- BSD-2-Clause
- Repository last updated
- Oct 3, 2026
Related information
Write a related articleShare a guide or use case for this OSS in Markdown. Articles are published after administrator approval.
Explore next
- Zustand58,784 Stars
1 shared tag(s) · 1 shared category(s) · Same language
manage React state with provider-free hook stores and subscribe through selectors
TypeScript - Expo52,540 Stars
1 shared tag(s) · 1 shared category(s) · Same language
build React Native apps for Android, iOS, and web from one project model
TypeScript - TanStack Query50,395 Stars
1 shared tag(s) · 1 shared category(s) · Same language
Manage fetching, caching, refetching, and mutations for remote server state outside local UI-state code
TypeScript - Cocos Engine9,841 Stars
3 shared tag(s) · 2 shared category(s)
use a C++ and TypeScript runtime to deliver 2D and 3D games across native, web, and mini-game platforms through Cocos Creator
C++ - Babylon.js26,128 Stars
3 shared tag(s) · 1 shared category(s) · Same language
render interactive 3D scenes, games, and XR experiences in browsers through TypeScript or JavaScript with WebGL and WebGPU
TypeScript - Godot Engine118,086 Stars
3 shared tag(s) · 1 shared category(s)
Build 2D and 3D games in one editor and export them to desktop, mobile, and the web
C++
Report incorrect information
Tell us if any listing information is incorrect or outdated.