Skip to content
This repository was archived by the owner on Feb 27, 2026. It is now read-only.

stranne/Stranne.EcsMemory

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Memory Game (Arch ECS + Godot .NET)

Screenshot of the game

🎯 Purpose

This project is an exploration of using Arch ECS together with Godot 4 (.NET).

Features: deterministic gameplay, command pattern, EventBus integration, complete state serialization (save/load), and engine-agnostic game logic.

🏗️ Architecture

This project implements the Stranne.EcsArchitecture template, which provides:

  • Layered architecture (Core, Adapter, Contracts, UI)
  • Command pattern infrastructure
  • Event system with Arch.EventBus
  • Deterministic ECS logic
  • Complete testing patterns

For architectural details, see the Architecture Template.

🕹️ How the game works

  • It’s a classic Memory game:

    • Flip two cards at a time.
    • If they match, they stay visible.
    • If not, they flip back after a short delay.
    • The game ends when all cards are matched.
  • The UI is minimal:

    • A grid of cards (buttons).
    • A move counter.
    • A New Game button to restart with a new seed.

🧩 Project structure

  • Adapter: Thin bridge between Core and Game (Godot).
  • Contracts: Shared DTOs and event interfaces for cross-assembly communication.
  • Core: Arch ECS logic (deterministic, engine-agnostic) with EventBus for event handling.
  • Core.Tests: Unit tests for Core game logic.
  • Game: Visuals and input using Godot game engine.

🚀 Run the game

Before running, make sure you have Godot .NET installed.

  • From IDE: open the solution in Visual Studio and run the Stranne.EcsMemory.Game project.
  • From CLI: from the repository root, run:
godot --path Stranne.EcsMemory.Game

On some systems use godot4 or Godot.exe.

About

Simple memory card game built with Arch ECS for logic and Godot .NET for rendering. Designed as a learning project.

Resources

License

Stars

Watchers

Forks

Contributors