๐Ÿ“ฆ sleepyfran / duets

๐ŸŽธ A text based music simulation game

โ˜… 31 stars โ‘‚ 1 forks ๐Ÿ‘ 31 watching โš–๏ธ GNU General Public License v3.0
clifsharpgamelife-simulationsimsimulationtext-basedtext-based-gametycoon
๐Ÿ“ฅ Clone https://github.com/sleepyfran/duets.git
HTTPS git clone https://github.com/sleepyfran/duets.git
SSH git clone git@github.com:sleepyfran/duets.git
CLI gh repo clone sleepyfran/duets
sleepyfran sleepyfran :arrow_up: Upgrade to .NET 10 c95aabc 7 days ago ๐Ÿ“ History
๐Ÿ“‚ c95aabcfe17203d18dca4d249afda6ddf23d5ef0 View all commits โ†’
๐Ÿ“ .github
๐Ÿ“ deps
๐Ÿ“ src
๐Ÿ“ tests
๐Ÿ“„ .editorconfig
๐Ÿ“„ .gitignore
๐Ÿ“„ .gitmodules
๐Ÿ“„ Dockerfile
๐Ÿ“„ Duets.sln
๐Ÿ“„ LICENSE
๐Ÿ“„ README.md
๐Ÿ“„ README.md

Duets ๐ŸŽธ

Duets is a music/life simulation game focused on allowing the player to be the leader of their own band, composing songs and making gigs to become a star.

๐Ÿ“ท Screenshots

๐Ÿ›  Run it locally

Duets is built with F# as an interactive CLI game. Start by cloning the repository and entering in it:

git clone --recurse-submodules https://github.com/sleepyfran/duets.git
cd duets

[!WARNING]
Duets currently uses a fork of Spectre.Console, so it's important to clone the submodules as well to bring that
dependency.

Once you have it, you can either chose to run it with a local installation of the .NET SDK or, if you prefer, through Docker to avoid installing the SDK on your computer and instead running the game inside a container.

[!IMPORTANT]
Descriptions and dialogues in the game are generated with a local large language model (LLM) that is downloaded during
build time. The model is a quantized version of Gemma 3 1B, which weights around 1GB. Due to this the first build of
the project will take a while as it needs to download the model, but subsequent builds will be much faster.

Running with local .NET

If you you want to install .NET, follow the instructions here to get the latest version of .NET. Once you have it, you can simply run:

dotnet build
dotnet run --project src/Cli/Cli.fsproj

Running with Docker

There's an included Dockerfile in the repo that allows you to run the game inside a Docker container if you prefer to do so, simply run it with:

docker build -t duets .
docker run -it duets

[!WARNING]
The game is nowhere near done or bug-free. I'm constantly doing changes to the savegame format and thus constantly
breaking
savegames. In the future when the game will be more complete I'll introduce some mechanism to automatically migrate
savegames
but for the time being you either need to tinker with the savegame file to adapt it when new versions come up or be
okay
with losing your savegames.

๐Ÿงช Testing

You can run the tests with:

dotnet test

๐Ÿ˜„ Contributions

Right now the game is in concept phase and it'll probably change quickly until it has certain features so there's no public roadmap. The best way of contributing right now is running the game and reporting bugs, if you want to contribute to the code check the project a little bit later, I'll update this section as soon as it's possible to have external contributions!