/GlobalGameJam2023

Global Game Jam 2023 @ Taipei, Taiwan

Primary LanguageTypeScript

Global Game Jam 2023 - Give a Chance

Test Publish

Architecture

We use PIXI.js, RxJS, and InversifyJS to build a Domain-Driven Design and Clean Architecture-based game.

Architecture

All events should convert to Domain Event and use RxJS to publish to each domain. For example, this is a Keyboard from Browser.

Event Flow

Structure

Path Description
@/assets the static assets e.g. image, mp3
@/config the config for this game included subscriber configureation
@/events the interface of Domain Event resued in all domains
@/utils the helper functions

Core Domain

Path Description
@/core/entities state of game objects
@/core/repository storage of game state
@/core/services logic of game
@/core/usecases behavior of game
@/core/subscribers the public interface of core

Game Domain

Path Description
@/game/scenes the scene similar to usecase
@/game/entities the game object which managed display state