v2.0.0 released! Changelog
| Docs | Wiki | Getting Started | Demos | Download |
A 2D Game Engine for the web.
- Customizable Hitbox Based Physics Engine
- Multiple Scenes
- Fast & Performant
- Sprites & Spritesheets
- Many GameObjects
- Plugins & PluginManager
- Multiple Cameras with Effects
- Animations & State Machines & Cutscenes
- Hitboxes and Colliders
- Keyboard, and Mouse Inputs
- DPR / Mobile Scaling
- Advanced Particle System
- Cache & Fast Loading Times
- Effects and Presets
- Advanced UI System
- Groups & Management
- Advanced Tilemap System
- Small Package Size
- Static Lighting
- Asset Preloader & Manager
- Textures & Manager
- Made fully in TypeScript
- Typedefs
- Docs
- A lot more...
- Browser supports ES6 (EcmaScript2015)
- Browser supports Canvas APIs
- Chromium Based Browsers, includes Chrome, Opera, Edge, Vivaldi, and Brave
- Safari
- Firefox | Bugs
- Google Chrome or any other Chromium based browser
- More stuttering than Chromium Browsers and Safari.
- Garbage collection occurs more often than Safari and Chromium Browsers. (Causes very minor and not noticeable stutters.)
- Download the latest release.
- Setup an asset bundler like webpack or parcel.
- Import DuckEngine.
- Read the docs.
- Run
npm install duckengine
. - Setup an asset bundler like webpack or parcel.
- Import DuckEngine.
- Read the docs.
- Setup an asset bundler like webpack or parcel.
- Import DuckEngine from URL
- Read the docs.
- Download DuckEngine from https://ksplatdev.itch.io/duckengine
- Import DuckEngine into your project.
- Read the docs.
Learn how to use DuckEngine with simple, clean, documentation with typings and more.
Ask questions, share ideas, engage with the community, and share your work with DuckEngine Discussions.
Read and learn about DuckEngine with the DuckEngine wiki.
How to use DuckEngine with Typescript.
- Setup webpack/parcel and tsconfig.
- Import DuckEngine and Duck for types.
Not working ? Add the following to your tsconfig.json
{
"typeRoots": [
"./node_modules/@types",
"path_to_duckengine_index.d.ts"
],
"types": [
"DuckEngine"
]
}
The Duck Namespace has types such as gameobject, every class config, all classes, and more.
- Knowledge of TypeScript, Git, and HTML Canvas.
- Reading and agreeing to the Contributing and Code of Conduct documents.
- Basic knowledge of how DuckEngine works.
- Reading and agree to the Contributing and Code of Conduct documents.
- Fork the repository and create a new branch following the branch guidelines.
- Clone the fork to your device.
- CD (change directories) into the cloned directory.
- Run
yarn upgrade
. - Run
yarn run build
orctrl + shift + b
for vscode users. - Make your changes.
- Test your changes on codesandbox by forking this codesandbox and updating the duckengine.js file. (Or any other way you would like to test it.)
- Create a pull request.
- Wait for it to be reviewed and revised and possibly merged.
yarn run test
- Opens the codesandbox test.yarn run build
- Compiles typescript, bundles files, creates minified version, builds docs, and copies package.json to dist.yarn run build:docs
- Uses TypeDoc to build docs.yarn run webpack
- Bundles files in lib directory.yarn run minify
- Uses uglifyjs to minify bundled file.yarn run format
- Uses Prettier to format files.yarn run format:watch
- Watches for changes and formats once changes are saved.yarn run lint
- Uses ESLint to lint all files in the src directory.yarn run lint:watch
- Watches for changes and fixes all fixable issues found by ESLint.yarn run lint:fix
- Uses ESLint to fix all fixable issues found by ESLint.yarn run tree
- Prints out all files and directories used in readme.yarn run serve
- Serves the docs on :8080.yarn run checkout
- Runs the checkout shell script with bash. Run before thinking about publishing a release.
- main - main branch
- staging - stage changes to this branch
DuckEngine follows SemVer.
The cube in the DuckEngine Logo is by José Manuel de Laá from the Noun Project.
Bleart Emini