A simple 2D game engine for the D programming language, with built-in physics, animation, tilemaps and dialogue.
excaliburjs/Excalibur
A free TypeScript 2D game engine for building games that run in the HTML5 canvas in the browser.
- Stars
- 2,362
- Forks
- 228
- Open issues
- 37
- Last commit
- 20 hours ago
What is it?
Excalibur is a 2D game engine written in TypeScript that targets the HTML5 canvas. It handles the common engine plumbing for browser games, so developers can focus on gameplay, whether they are new to game development or experienced with it.
The project is aimed at building 2D HTML/JS games and is cross-platform, with automated testing on supported desktop and mobile browsers. It can be installed from npm as the `excalibur` package, and a NuGet package is also built from the repository. The engine is at version 0.x, so APIs may still change between releases.
Excalibur is distributed under the BSD 2-Clause license, which permits use in commercial projects. Documentation, samples and an API reference are maintained on the project's website.
Key features
- 01Built in TypeScript for 2D games rendered on HTML5 canvas
- 02Use as much or as little of the engine as your project needs
- 03Cross-platform targeting with automated browser testing
- 04Available as an npm package and a NuGet package
- 05Documentation, samples and an API reference on the project website
Use cases
- Building 2D browser games with TypeScript or JavaScript
- Making simple games for learning game development on the web
- Shipping a 2D game to desktop and mobile browsers
Quick start
- 1
Clone the repository from GitHub
- 2
Install dependencies
npm install - 3
Start the Storybook-based sandbox
npm run sandbox
Things to know
- Excalibur is still in version 0.x, so breaking changes will occur in new releases.
In collections
Topics
FAQ
- What is Excalibur?
- A free TypeScript 2D game engine for building games that run in the HTML5 canvas in the browser. Excalibur is a 2D game engine written in TypeScript that targets the HTML5 canvas. It handles the common engine plumbing for browser games, so developers can focus on gameplay, whether they are new to game development or experienced with it.
- Is Excalibur free to use? What license does it have?
- Excalibur is open source under the BSD-2-Clause license. Check the license terms before using it in commercial products.
- Is Excalibur still maintained?
- Actively maintained. The last commit to Excalibur was on Nov 6, 2026.
- What can I use Excalibur for?
- Building 2D browser games with TypeScript or JavaScript Making simple games for learning game development on the web Shipping a 2D game to desktop and mobile browsers
- How do I install Excalibur?
- Clone the repository from GitHub Install dependencies: npm install Start the Storybook-based sandbox: npm run sandbox
- Where can I get Excalibur?
- The source code and installation instructions are on GitHub: https://github.com/excaliburjs/Excalibur
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A game engine built on Flutter, providing a game loop, component system, collision detection, effects and input handling for 2D games.
A fun-first 2D game library for JavaScript and TypeScript that provides a component-based API for building games in the browser.
LÖVE is a free, open-source framework for making 2D games in Lua, running on Windows, macOS, Linux, Android and iOS.
A simple C library for making videogames, with 2D/3D graphics, input, audio and cross-platform support, no external dependencies.
A .NET framework for building cross-platform 2D and 3D games in C#, re-implementing Microsoft's discontinued XNA Framework.