3. Domain Model and Use CasesΒΆ
THe following image shows the domain model for the Sokoban project. By clicking on it, you can view it in detail.
The domain model captures the following core ideas:
session-based gameplay architecture: A
GameServerBackendmanages multipleUserSessions, which create or joinGameSessionscontrolled and validated by a centralGameEngineand configured viaGameModeType.the system centers around the player: Each
Playerhas their ownPlayerPreferences, that consist ofControlSettings,AudioVisualSettingsandAccessibilitySettings. Additionaly, aPlayergets their ownPlayerStatistics, and participates in one or moreGameSessions, in which they control aSokobanCharacter. If the user plays a ranked match, they will also be part of aLeaderboard.the Sokoverse game world: Every
GameSessioncontains aGameBoardcomposed of multipleTilesandGameObjects(Wall,SokobanCharacter,Box), that each have aPositionon the gameboard.effects: The
Effects, that are contained in some of the boxes, are either of typePowerUporPowerDown.progress and match outcomes:
GameSessionsproduce aScorefor each participatingPlayerand aGameResult, which in case of ranked mode feed into aLeaderboardwith individualLeaderboardEntries.AI assistance: An
AiAssistantcan support players in non-competitive matches by generatingHint``s within a ``GameSession.level creation: A
LevelDesignerbuilds and structuresGameBoardsand all the objects contained on the game boardsTiles.
The following use case diagram shows the the user interaction with the system on a high abstraction level: