Clockwork is a TypeScript-first, modular game engine workspace focused on ECS-driven runtime systems and a WebGL2 renderer stack.
Implemented in this repository:
- Core runtime packages: ECS, scheduler, events, serialization, assets, audio, app/plugin runtime
- WebGL2 renderer packages:
qti-clockwork-gl,qti-clockwork-shaders,qti-clockwork-materials,qti-clockwork-passes - Platform integration package:
qti-clockwork-tauri-bridge - Web shell app:
qti-clockwork-tauri-shell-web
Planned but not fully implemented yet:
- Fixed-point determinism math module
- Full physics plugin
- Full particle simulation plugin
engine/
core/
app/
assets/
audio/
ecs/
events/
input/
scheduler/
serialization/
renderer-webgl2/
gl/
materials/
passes/
shaders/
platform/
tauri-bridge/
apps/
tauri-shell/
web/
examples/
- Node.js 22
corepackenabledpnpm10.x (workspace is pinned topnpm@10.6.3)
corepack enable
corepack pnpm install
corepack pnpm devThe dev command runs the web shell in apps/tauri-shell/web.
Run from repository root:
corepack pnpm lint
corepack pnpm typecheck
corepack pnpm test
corepack pnpm build
corepack pnpm format
corepack pnpm format:checkRun one package:
corepack pnpm --filter qti-clockwork-ecs test
corepack pnpm --filter qti-clockwork-ecs build
corepack pnpm --filter qti-clockwork-tauri-shell-web devimport { AppBuilder, HeadlessRendererPlugin } from 'qti-clockwork-app'
const app = new AppBuilder().use(HeadlessRendererPlugin).build()
app.run()
await app.step(1 / 60)
await app.shutdown()GitHub Actions runs:
- lint
- typecheck
- test
- build
Workflow file: .github/workflows/ci.yml
Publish engine packages from repo root:
corepack pnpm -r --filter "./engine/**" publish --access public --no-git-checksToken-based auth (npm):
export NPM_TOKEN="..."
printf "//registry.npmjs.org/:_authToken=${NPM_TOKEN}\n" > .npmrcDo not commit .npmrc.
CONTRIBUTING.md: contribution workflowCODE_OF_CONDUCT.md: community expectationsSECURITY.md: vulnerability reporting process