This is a Vite project that aims to create a 2D game engine in TypeScript. The project is based on the WebGPU API and is intended to be used in the browser. The engine is designed to be modular and extensible, with a focus on enforcing a strict separation of concerns between the different components of the engine.
- IDE used PhpStorm 2024.2 or Webstorm 2024.2
- npm 10.2+ official doc
- node v21+ official doc
- git version 2.39 official doc
- git-lfs/3.5 + official doc
- Astah UML 8+ official doc
- Google Chrome 130+ (or any other browser that runs WebGPU)
Install packages
npm install
Run vite dev server
npm run dev
npm run test
npm run build
This will generate static files in the dist
folder.
You can then deploy these files to a any web server.
├───doc // Documentation
├───src // Source code
│ ├───Core // Core components
│ │ ├───EventSystem // Event and callback helpers
│ │ └───MathStructures // Math structures (like Vector2)
│ ├───Extensions // Extensions and modules
│ │ ├───RenderEngine // WebGPU rendering engine
│ │ ├───PhysicsEngine // 2D Bounding Box physics engine
│ │ └───InputSystem // Web input systemeb
├───test // Vitests Unit tests
├ ├───... // Same structure as src
├───public // Web files (not bundled, external resources)
The classes are written in order to follow the Google TypeScript style guidelines
- Gitflow
- How to commit
- How to use your workflow
- Propose a new feature in Jira
- We only use tasks
- Pull requests are open to merge in the develop branch.
- Release on the main branch we use GitFlow and not with GitHub release.
- When creating a new feature, the branch name must be
feature/SPR-XX-NameOfTheFeature
- Before merging a feature into develop, the code should be reviewed by one other person (by opening a pull request).
- Issues are added to the github issues page
Distributed under the MIT License. See LICENSE.txt for more information.
- If needed you can create an issue on GitHub we will try to respond as quickly as possible.