Excalibur is a simple, free game engine written in TypeScript for making 2D games in HTML5 canvas. Our goal is to make it incredibly simple to create 2D HTML/JS games, for folks new to game development as well as experienced game developers. We take care of all of the boilerplate engine code, cross-platform targeting (using browserstack
Excalibur is an open source project licensed under the 2-clause BSD license (this means you can use it in commercial projects!). It's free and always will be. We welcome any feedback or contributions! If you make something with Excalibur, please let us know!
Our user documentation is at https://excaliburjs.com/docs (and you can contribute at https://github.com/excaliburjs/excaliburjs.github.io)
- Follow our Installation guide to learn how to install Excalibur
- Follow our Getting Started guide if you're looking to get started.
- Learn what Features are available for you to leverage in your games
- View the Release roadmap to see what's coming next
Visit the API Reference section for fully-annotated documentation of the API.
❓Ask us anything in the Excalibur.js forum 🐛If you find a bug, report it on the GitHub issues page (please review our guidelines for reporting bugs). 📣You can also follow us on Twitter @excaliburjs or read the blog.
Compiled examples can be found in the Excalibur Samples collection.
Please read the Contributing guidelines. Whether you've spotted a bug, have a question, or think of a good feature, we thank you for your help!
We love when people help shore up or write new documentation. You can help contribute to docs at https://github.com/excaliburjs/excaliburjs.github.io
The Excalibur.js team primarily uses Visual Studio Code as a platform agnostic editor to allow the widest contributions possible. You can always use your own preferred editor of choice.
Excalibur is commited to supporting the latest 2 versions of popular desktop and mobile browsers. We leverage browserstack automated testing to ensure that Excalibur is automatically tested as thoroughly as possible on all our supported platforms.
- Required: Node.js & npm (8.x)
- Recommended: TSLint extension for VS Code
- Recommended: Prettier plugin for VS Code
- Optional: PhantomJS Debugger for VS Code
- Optional: Grunt CLI (
npm i -g grunt-cli), same task names
After cloning the repository, run:
You can then run the npm tasks for various purposes:
# Run compilation, linting, and all unit & visual tests # Recommend to do this before finalizing pull requests npm run all # Run engine core compilation only # Useful for quick checks to ensure everything compiles npm run core # Run engine tests only (does not run compile task) # Useful to run tests ad-hoc npm test npm run test # Compile HTML visual tests # Useful to ensure HTML sandbox compiles npm run visual # Start sandbox dev server (long-running) # Run in separate terminal alongside `npm run visual` npm run sandbox # Compile API docs npm run apidocs
Excalibur is open source and operates under the 2-clause BSD license:
BSD 2-Clause License Copyright (c) 2014, Erik Onarheim All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.