- Notifications
You must be signed in to change notification settings - Fork197
🎮 Your friendly TypeScript 2D game engine for the web 🗡️
License
excaliburjs/Excalibur
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Excalibur is a free game engine written in TypeScript for making 2D games in HTML5 canvas. Our goal is to make it easier for you to create 2D HTML/JS games, whether you're new to game development or you're an experienced game developer. We take care of all of the boilerplate engine code, cross-platform targeting (usingbrowserstack 😎), and more! Use as much or as little as you need!
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, pleaselet us know!
Our user documentation is athttps://excaliburjs.com/docs (and you can contribute to the docs athttps://github.com/excaliburjs/Excalibur/tree/main/site)
- Follow ourInstallation guide to learn how to install Excalibur.
- Follow ourGetting Started guide if you're looking to get started.
- Learn whatFeatures are available for you to leverage in your games.
- View the1.0 Release roadmap to see what's coming next.
❗Note: Excalibur is still in version 0.x, which means this project and its associated plugins may be a little rough around the edges. We try to minimize API changes, but breaking changeswill occur in new released versions. Excalibur is a labor of love and the product of many hours of spare time. Thanks for checking it out!
Visit theAPI Reference section for fully-annotated documentation of the API.
- ❓ Ask us anything in theGitHub Discussions area.
- 🐛 If you find a bug, report it on theGitHub issues page (please review ourguidelines for reporting bugs).
- 📣 You can also follow us on Twitter@excaliburjs orread the blog.
Compiled examples can be foundin the Excalibur Samples collection.
Please read ourContributing Guidelines and ourCode of Conduct. Whether you've spotted a bug, have a question, or think of a new feature, we thank you for your help!
Prerequisites
- Docker for Machttps://docs.docker.com/desktop/mac/install/
- In the root, run
docker compose build
(setup build environment and installs dependencies, only needed once) - To run tests in watch mode
docker compose run --rm dev npm run test:watch
- To run a build
docker compose run --rm dev npm run all
We love when people help improve our documentation. You can contribute to the docs in this repo under/site
The Excalibur.js team primarily usesVisual Studio Code as a platform agnostic editor toallow the widest contributions possible. However, you can always use your own preferred editor.
Excalibur is committed to supporting the latest 2 versions of popular desktop and mobile browsers. We leveragebrowserstack automated testing to ensure that Excalibur is automatically tested as thoroughly as possible on all our supported platforms.
- Required:Node.js LTS Version
- Recommended:ESLint plugin for VS Code
After cloning the repository, run:
npm install
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 requestsnpm run all# Run engine core compilation only# Useful for quick checks to ensure everything compilesnpm run build# Run engine tests only (does not run compile task)# Useful to run tests ad-hocnpmtestnpm runtest# Start Storybook-based sandbox# Used for creating interactive visual tests and examples for docsnpm run sandbox# Build a nuget package and specify a versionnpm run nuget -- 1.1.1
Excalibur is open source and operates under the 2-clause BSD license:
BSD 2-Clause LicenseCopyright (c) 2014, Erik OnarheimAll rights reserved.Redistribution and use in source and binary forms, with or withoutmodification, 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, THEIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE AREDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLEFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIALDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ORSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVERCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USEOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
About
🎮 Your friendly TypeScript 2D game engine for the web 🗡️