Skip to content

The-Microservice-Dungeon/player-sharp

Repository files navigation

Player Sharp

⚠️Player is still in the early phase of development. Nothing in this project is fixed, there are many implicit and explicit TODOs and it is most likely that everything will change

sharp-banner (Photo (Modified) by Julian Paolo Dayag on Unsplash)

🎯 Concepts / Goals

  • No external database: everything should be kept In-Memory or using a file-based store. At the moment mainly SQLite is used, as it gives some insights into the entity framework. Oh, and also it's faster than the file system. Without a external DB the player itself is ephemeral with each deployment unless a persistent claim is used - but that is okay for a player.
  • Rich UI: At least the map should be visualized using a rich UI. Conceptually the map is treated as a graph structure and could also be visualized this way. Libraries like D3.js could be used. How the UI will be presented is still unclear. React is used as UI Framework but I'm also thinking about some kind of static webpage using Graphviz as it would also be fun.
  • Websockets: If the player uses any kind of presentation (Logs, UI or similar) websockets should be used.
  • Stateless: Kinda impossible to develop the player completely stateless but however the state should be kept to a minimum. For example it is not necessary to care about the games current state besides the registration.

🚩 Prerequisites

  • .NET (Core) 6 and .NET CLI

or

  • Docker

🔧 Configuring

❌ Not Yet Implemented

Production Config: appsettings.json

Development Config: appsettings.Development.json

▶️Running

Either use the dotnet CLI or the provided docker image. It is as easy as:

$ docker build -t player-sharp . && docker run player-sharp

or using the dotnet CLI:

$ dotnet run --project .\src\Sharp.Application