duckengine
v2.1.0
Published
A 2D Game Engine for the web.
Downloads
134
Maintainers
Readme
v2.0.0 released! Changelog
| Docs | Wiki | Getting Started | Demos | Download |
A 2D Game Engine for the web.
Features
- 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...
Performance & Compatibility
Browser Requirements
- Browser supports ES6 (EcmaScript2015)
- Browser supports Canvas APIs
Rankings
- Chromium Based Browsers, includes Chrome, Opera, Edge, Vivaldi, and Brave
- Safari
- Firefox | Bugs
Recommendation
- Google Chrome or any other Chromium based browser
Browser Bugs
Firefox Bugs
- 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
Github
- Download the latest release.
- Setup an asset bundler like webpack or parcel.
- Import DuckEngine.
- Read the docs.
NPM
- Run
npm install duckengine
. - Setup an asset bundler like webpack or parcel.
- Import DuckEngine.
- Read the docs.
CDN
- Setup an asset bundler like webpack or parcel.
- Import DuckEngine from URL
- Read the docs.
Itch.io
- Download DuckEngine from https://ksplatdev.itch.io/duckengine
- Import DuckEngine into your project.
- Read the docs.
Docs
Learn how to use DuckEngine with simple, clean, documentation with typings and more.
Discussions
Ask questions, share ideas, engage with the community, and share your work with DuckEngine Discussions.
Wiki
Read and learn about DuckEngine with the DuckEngine wiki.
How to use with Typescript
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"
]
}
Duck Namespace
The Duck Namespace has types such as gameobject, every class config, all classes, and more.
Typescript Example
Developers' Guide
Requirements
- Knowledge of TypeScript, Git, and HTML Canvas.
- Reading and agreeing to the Contributing and Code of Conduct documents.
- Basic knowledge of how DuckEngine works.
How to contribute
- 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.
Dev Scripts
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.
Branches
- main - main branch
- staging - stage changes to this branch
Versions
DuckEngine follows SemVer.
Demos
Simple Demo Game
Test Template
Particle Test
Tilemap test
Attribution
The cube in the DuckEngine Logo is by José Manuel de Laá from the Noun Project.
License
Author
Bleart Emini