diff --git a/README.md b/README.md index b821caf..dccbdbd 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,19 @@ A unified game launcher for KDE Plasma 6, inspired by [KDE Apps Initiative issue#26](https://invent.kde.org/teams/apps-initiative/tasks/-/issues/26). +## Project tracks + +This repository currently has two development tracks: + +- **Legacy (launcher-first)** + - The current `master`/`legacy` baseline: a traditional game launcher UI. + - See `docs/LEGACY.md`. +- **Gamecenter (launcher + daemons)** + - The `gamecenter` branch: an experimental direction to evolve A-La-Karte into a launcher + game center suitable for a console-like KDE experience. + - See `docs/GAMECENTER.md`. + +For documentation index, see `docs/README.md`. + ## Features - Import games from Steam, Lutris, Heroic, Bottles, itch.io, Legendary, RetroArch playlists, Flatpak applications, and desktop entries diff --git a/docs/GAMECENTER.md b/docs/GAMECENTER.md new file mode 100644 index 0000000..15790ee --- /dev/null +++ b/docs/GAMECENTER.md @@ -0,0 +1,52 @@ +# Gamecenter track (Launcher + Game Center) + +## Goal + +The gamecenter track evolves A-La-Karte from “a launcher” into “a launcher + game center” suitable for a **fully integrated, console-like experience on KDE**. + +Key ideas: + +- The UI becomes a client of background services. +- Launching and monitoring games is handled by a daemon. +- Runner resolution (Wine/Proton) is handled by a runner manager service. + +## Architecture (high level) + +### UI (A-La-Karte) + +- Displays the library and settings. +- Requests launches via the Game Center daemon instead of launching processes directly. +- Surfaces daemon/service errors to the user. + +### Game Center daemon + +- Manages game sessions (launch/stop, running state, concurrency policy). +- Tracks/monitors sessions so Steam/Lutris URL-based launches can still be managed. +- Intended to be activatable via DBus/systemd. + +DBus service (planned/implemented on the gamecenter branch): + +- `org.kde.GameCenter1` + +### Runner manager daemon + +- Manages “runners” (e.g. Proton, Wine, GE builds): + - install/uninstall + - inventory listing + - resolve launch specs deterministically + - prefix lifecycle helpers + +DBus service (planned/implemented on the gamecenter branch): + +- `org.kde.ALaKarte.Runner1` + +## Branches + +- `master` / `legacy` + - Launcher-focused baseline. +- `gamecenter` + - Experimental daemon-based direction. + +## Status + +This document is intentionally a living overview. Detailed API docs / roadmaps should live in separate documents as they solidify. diff --git a/docs/LEGACY.md b/docs/LEGACY.md new file mode 100644 index 0000000..b02243d --- /dev/null +++ b/docs/LEGACY.md @@ -0,0 +1,18 @@ +# Legacy track (Launcher) + +## What it is + +The legacy track is a traditional desktop application: + +- The UI directly owns the game library. +- The UI launches games. +- Focus is on being a high-quality KDE Plasma launcher with good keyboard/gamepad navigation. + +## What it is not + +- A system-level game session manager. +- A daemon that monitors and manages sessions across launchers. + +## Why it exists + +This track is the stable baseline and the fastest way to iterate on UX, importers, and per-game configuration. diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..96ec304 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,14 @@ +# Documentation + +This folder contains higher-level project documentation. + +## Overview + +- `LEGACY.md` + - Notes on the current launcher-focused architecture (historically the "legacy" track). +- `GAMECENTER.md` + - Notes on the "gamecenter" track: a launcher + Game Center daemon-based architecture for a more console-like KDE experience. + +## Contributing docs + +If you add a new document, link it from this index so it stays discoverable. diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md new file mode 100644 index 0000000..fa24c8a --- /dev/null +++ b/docs/ROADMAP.md @@ -0,0 +1,22 @@ +# Roadmap + +This document captures the high-level direction of the project. + +## Legacy track (launcher-first) + +- Maintain a stable, polished KDE Plasma launcher. +- Keep importers and library UX solid and reliable. + +## Gamecenter track (launcher + daemons) + +- Evolve into a fully integrated, console-like experience on KDE. +- Move launching + session monitoring into a daemon. +- Add runner management (Wine/Proton) as a service. + +## Near-term goals + +- (Fill in) + +## Longer-term goals + +- (Fill in)