MWG framework architecture

MWG framework architecture An architecture diagram generated by Archify. core · 43 files - zero dependencies · No renderer - usable from any renderer, or none core 43 files - zero dependencies actors · 24 files · No renderer - usable from any renderer, or none actors 24 files battle · 15 files · No renderer - usable from any renderer, or none battle 15 files world · 7 files · No renderer - usable from any renderer, or none world 7 files rpg · 11 files · No renderer - usable from any renderer, or none rpg 11 files roguelike · 22 files · No renderer - usable from any renderer, or none roguelike 22 files simulation · 8 files · No renderer - usable from any renderer, or none simulation 8 files i18n · 10 files · No renderer - usable from any renderer, or none i18n 10 files audio · 9 files · No renderer - usable from any renderer, or none audio 9 files mwl · 21 files · No renderer - usable from any renderer, or none mwl 21 files ai · 5 files · No renderer - usable from any renderer, or none ai 5 files board · 8 files · No renderer - usable from any renderer, or none board 8 files two-d · 80 files - PixiJS · Renderer-facing two-d 80 files - PixiJS assets · 6 files - renderer-facing · Renderer-facing assets 6 files - renderer-facing three-d · 9 files - Babylon.js, optional · Renderer-facing three-d 9 files - Babylon.js, optional StatBlock FOV, pathfinding authored trees loader No renderer - usable from any renderer, or none Renderer-facing Legend Frontend Backend

core has zero dependencies

  • • Every other module reaches core, directly or through mwl/actors/roguelike
  • • core imports no other module and no renderer - the renderer-isolation test enforces it

Renderer isolation

  • • Only two-d reaches PixiJS and only three-d reaches Babylon.js
  • • assets is the one loader shared by both, with no renderer import of its own beyond PixiJS's texture types

mwl as data-authoring backbone

  • • ai's behaviour trees author against mwl's command/expression language
  • • mwl itself depends on actors and simulation for the data it validates

Genre modules build on the shared floor

  • • battle wraps actors' StatBlock/Progression rather than keeping its own stat system
  • • roguelike and simulation share core's turn-based primitives