How nanoforge-dev/engine works
NanoForge is a browser-oriented game engine assembled from separately released packages. A game developer creates a client or server application, registers capability libraries, initializes them, then runs the engine loop; ECS, rendering, input, assets, audio, and networking provide game features. The README identifies additional package capabilities not sampled in source; those are represented at their existing package paths, with uncertain internal wiring omitted.
Main entry points: library.manager.ts Library registry · nanoforge-application.ts Game application · nanoforge-factory.ts App factory · nanoforge-client.ts Client app
Components 20
Application runtime
- App factory
packages/core/src/application/nanoforge-factory.ts - Game application
packages/core/src/application/nanoforge-application.ts - Client app
packages/core/src/application/nanoforge-client.ts - Server app
packages/core/src/application/nanoforge-server.ts - Game loop
packages/core/src/core/core.ts
Shared runtime
- Lifecycle context
packages/common/src/context/contexts - Library registry
packages/core/src/common/library/manager/library.manager.ts - Config validation
packages/config/src
Gameplay capabilities
- Asset manager
packages/asset-manager/src/asset-manager.library.ts - Entity systems
packages/ecs-lib/src/ecs-library.abstract.ts - Music playback
packages/music/src/music.library.ts - Sound management
packages/sound/src/sound.library.ts
Client capabilities
- Client ECS
packages/ecs-client/src/ecs-client-library.ts - 2D graphics
packages/graphics-2d/src/graphics-2d.library.ts - Keyboard and mouse
packages/input/src/input.library.ts - Client networking
packages/network-client/src/client.network.library.ts
Server capabilities
- Server ECS
packages/ecs-server/src/ecs-server-library.ts - Server networking
packages/network-server/src/server.network.library.ts
Other components
- Game developer
- Remote peers
Connections 24
- Game developer → App factory: creates app
- App factory → Client app: creates client
- App factory → Server app: creates server
- Client app → Game application: extends runtime
- Server app → Game application: extends runtime
- Game developer → Game application: registers libraries
- Game application → Library registry: registers libraries
- Game application → Config validation: loads config
- Game application → Lifecycle context: initializes lifecycle
- Game application → Game loop: starts loop
- Game loop → Lifecycle context: updates frame state
- Library registry → Asset manager: provides access
- Library registry → Client ECS: provides access
- Library registry → Server ECS: provides access
- Library registry → 2D graphics: provides access
- Library registry → Keyboard and mouse: provides access
- Library registry → Music playback: provides access
- Library registry → Sound management: provides access
- Library registry → Client networking: provides access
- Library registry → Server networking: provides access
- Client ECS → Entity systems: wraps ECS
- Server ECS → Entity systems: wraps ECS
- Client networking → Remote peers: exchanges messages
- Server networking → Remote peers: serves connections