There are several ways you can get Excalibur:
npm
or nuget
Deno
If you’re using Node.js or intend to use Excalibur in a primarily JavaScript project, you can install it via npm.
With Node installed, run the following on the command-line:
npm install excalibur
This will add excalibur to your package.json as a project dependency and will create a folder structure like:
/node_modules
/excalibur
/build
/dist
excalibur.js
excalibur.min.js
excalibur.d.ts
...other files
See below for how to reference these files in your project after Excalibur is installed.
View the excalibur package on npm.
If you are using Excalibur in a script tag, unpkg provides a quick way to include published npm packages as scripts.
It is recommended you pin your version of excalibur to specific version like excalibur@0.24.5
, however you can get the latest https://unpkg.com/excalibur@latest
<!DOCTYPE html>
<html>
<head></head>
<body>
<script src="https://unpkg.com/excalibur@0.24.5"></script>
<script src="./my-game.js"></script>
</body>
</html>
You can also download the compiled script from Excalibur repository.
<!DOCTYPE html>
<html>
<head></head>
<body>
<script src="excalibur.min.js"></script>
<script src="./my-game.js"></script>
</body>
</html>
If you intend to use Excalibur in a primarily .NET-based project (like Xamarin, Windows 10, etc.), you can use Nuget.
With the .NET SDK installed, run the following on the command-line:
Install-Package Excalibur
Nuget will automatically place the Excalibur files in the Content/Scripts
folder of your project:
/Content
/Scripts
excalibur.js
excalibur.min.js
excalibur.d.ts
...other files
See below for how to reference these files in your project after Excalibur is installed.
View the Excalibur package on Nuget.
If you want to use Excalibur in a Deno
environment, use a content delivery network like esm.sh
or skypack.dev
. They transform our NPM
package into an ES Module
. That may sound complicated, but it's really just one line of code:
// index.ts
import { Engine } from 'https://esm.sh/excalibur'
// and Tada!
const game = new Engine()
game.start()
If you want to live on the edge and get the latest unreleased and possibly unstable builds, you can download -alpha npm
packages.
The latest documetnation for the Unstable Builds.
The excaliburjs organization on GitHub has several example projects:
These examples allow you to simply clone and start building your game!
We recommend using TypeScript for the best experience using Excalibur, but it will work just as well using plain JavaScript.
If you are using a standalone script for Excalibur, you may want to use triple-slash references. It requires no extra module system or loaders!
/// <reference path="node_modules/excalibur/build/dist/excalibur.d.ts" />
const game = new ex.Engine({ ... });
game.start();
Make sure the path is relative to the current TS file. You only need to include the reference on your “entrypoint” file. Then simply include excalibur.min.js
as mentioned above in your HTML page.
You can also reference Excalibur through the tsconfig.json
.
{
"compilerOptions": {
"target": "es5",
"outFile": "game.js",
"types": ["excalibur"]
}
}