Website: Coming Soon
Discord: https://discord.gg/qghcMmr
Docs/Guides: Documentation
Contribute: How to Contribute
Support: How to Support
Fae is meant to be a highly modular ecosystem of modules. The primary target use-case for Fae is to be easily intregrable into larger application frameworks. However, the plugin library for Fae enables it to be useful to end users as well when used as a standalone framework.
Fae contains some code that is originally based on pixi.js. However, Fae takes a different approach to rendering and modularity than pixi. Some notable differences in philosophy are:
- Fae is focused on WebGL
- Fae uses a flat entity structure with z-ordering instead of a heirarchal scene tree
- Fae uses an assemblage-heavy Entity-Component-System (ECS) approach to composing objects
- Using our custom @fae/ecs lib.
and a few other core design differences that result in a familiar but slightly different API.
Pre-built versions of the library are hosted on Amazon S3. These are "full builds" meaning they include all the official, open-source, plugins.
Each build of Fae includes these files:
fae.js
- Development build. Unminified and includes debug asserts and other checks that negatively affect performance.fae.js.map
- Development source-map file that maps compiledfae.js
file back into source code.fae.min.js
- Production build. Minified and all debugging code is stripped out for maximum performance.
Below is information on how to download each build type.
You can download the builds for any particular release at:
http://fae-builds.s3-website-us-west-2.amazonaws.com/release/<version>/fae.js
http://fae-builds.s3-website-us-west-2.amazonaws.com/release/<version>/fae.js.map
http://fae-builds.s3-website-us-west-2.amazonaws.com/release/<version>/fae.min.js
Replace <version>
with the version of the library you want. For example, to get v1.0.0
:
- http://fae-builds.s3-website-us-west-2.amazonaws.com/release/v1.0.0/fae.js
- http://fae-builds.s3-website-us-west-2.amazonaws.com/release/v1.0.0/fae.js.map
- http://fae-builds.s3-website-us-west-2.amazonaws.com/release/v1.0.0/fae.min.js
You can download the builds for any particular branch or git-sha at:
http://fae-builds.s3-website-us-west-2.amazonaws.com/unstable/<branch-or-git-sha>/fae.js
http://fae-builds.s3-website-us-west-2.amazonaws.com/unstable/<branch-or-git-sha>/fae.js.map
http://fae-builds.s3-website-us-west-2.amazonaws.com/unstable/<branch-or-git-sha>/fae.min.js
Replace <branch-or-git-sha>
with a branch name (like master
) to get the latest successful
build of that branch or with the git-sha of a particular commit (like 1e532f70822f262452fb85b3669102bb05b443eb
).
For example:
- http://fae-builds.s3-website-us-west-2.amazonaws.com/unstable/master/fae.js
- http://fae-builds.s3-website-us-west-2.amazonaws.com/unstable/master/fae.js.map
- http://fae-builds.s3-website-us-west-2.amazonaws.com/unstable/master/fae.min.js
Note that only builds that succeed will have files on S3. If the build fails there will be no built files, so not every git-sha in the history may work.
Developing Fae takes a lot of time and effort. The multiple services and servers that run for the Fae project cost a non-trivial amount of money. If you want to help support the continued development of Fae, please consider making a donation.
There are a couple ways you can have an impact:
All donations go right back into the Fae community in the form of server hosting, and development time.
Issues are tagged with labels to help give a good view of the current state of the project.
For example, to see what plugins need to be made you can look at the New Plugin label.
- Intro to the ECS architecture Fae uses
- General Performance Guidelines
- How batching happens and how you can take advantage of it.
- How to write efficient systems.
- Using
renderPriority
andrenderGroupHint
to make batching better. - Batching the addition of entities (skipping sort in
addEntity
).
- Rendering looks weird on my old XYZ Mobile Device
- Description of the options that may fix issues on old mobile
- Shader precision, batch sizes, multi-texture sizes, VAO usage, etc.
The Contributing Guide contains the full details on how to contribute changes to the project.
Main points:
- Report bugs on GitHub Issues and include a code sample.
- Pull Requests should be made against
master
. - Before contributing read the Code of Conduct.