Skip to content

zeyu-yang-dev/patchwork

Repository files navigation

Patchwork

IntroductionCurrent ProgressArchitecture

🎴 Introduction

This project is a C# implementation of the board game Patchwork.
The UI Layer is built with Godot, an open-source game engine.
For the original game rules, see the Rulebook.

📸 Current Progress

This is a work-in-progress project.
While the game is already playable, some art assets and additional features are still being updated and refined.
The following GIFs demonstrate the current state of the project.

Patch Transformation and Placement

Patch Transformation and Placement

Obtaining Gold and Special Patch

Obtaining Gold and Special Patch

Game End Scene Transition

Game End Scene Transition

🧱 Architecture

This project follows a four-layer architecture that separates UI, game logic, domain model, and static data:

Layer Directory Responsibility
UI Layer Scenes
  • Contains the Godot scene files and the corresponding C# scripts.
  • Responsible for rendering the user interface and handling user input.
  • Forwards player actions and reflects the current game state through visual updates.
Service Layer Service
  • Contains the game logic and controls the game flow.
  • Updates the game state in the domain layer upon user input.
  • The RootService acts as a central coordinator, providing access to all services and orchestrating interactions between layers.
Domain Layer Domain
  • Defines the domain model of the game.
  • The GameState represents a single game instance and acts as the central state holder.
  • Aggregates other domain objects such as Timeline and PatchShop, which represent the fundamental elements of the game.
Data Layer Data
  • Stores static data such as patch definitions.

About

A Patchwork game built with Godot and C#

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors