Sling through the stars. Weave your destiny.
Orbit Weaver is an action-arcade HTML5 cosmic slingshot game built with Phaser 3, TypeScript, and Vite. This repository contains the complete engine foundation, service registration pipelines, and UI layout frameworks.
- Game Engine: Phaser 3 (v3.80+)
- Build Tool: Vite
- Language: TypeScript (Strict Mode)
- Formatting / Linting: ESLint, Prettier
- Test Framework: Vitest (JSDom)
- Deployment: PWA / Service Workers compatible
- Node.js >= 18.0.0
- npm >= 9.0.0
npm installnpm run devnpm run buildnpm run testorbit-weaver/
├── docs/ # Architectures and coding guidelines
├── src/
│ ├── config/ # Config structures (display, audio, debug, performance)
│ ├── constants/ # Magic numbers, asset keys, and storage paths
│ ├── core/ # DI containers and interfaces (IService, IManager)
│ ├── debug/ # Debug console monitoring tools
│ ├── effects/ # Particle burst/trail generators
│ ├── entities/ # Base classes for composable game actors
│ ├── events/ # EventBus payload declarations
│ ├── game/ # Initialization orchestrators
│ ├── helpers/ # Pure math, color, and string helper libraries
│ ├── input/ # Mobile touch and gesture detectors
│ ├── managers/ # Singleton managers (audio, save, assets, transition)
│ ├── physics/ # Circular orbital calculations
│ ├── save/ # Save file serializers, validations, and updates
│ ├── scenes/ # Phaser scenes (Boot, Preload, Menu, Gameplay, HUD)
│ └── ui/ # Reusable components (Buttons, Panels, Bars, Dialogs)
└── tests/ # Vitest unit-test suites
The game uses a Service Container for dependency injection. Singleton services are registered on boot, resolved by their Symbol identifier keys, and updated on every game step if they implement the IManager interface. Communication is decoupled using a type-safe EventBus.
UNLICENSED (All rights reserved)