Quorix Client

This is the QuorixClient BlueJ project — built and shipped as QuorixClient.jar (Main-Class: Quorix). This is what someone who just wants to play runs, and it's the edit source of truth: if you're changing a network message type, a game's rule engine, or an account/economy/social class, change it here first, then copy the same file into QuorixServer/ too (see "Keeping the two projects in sync" below). UI-only code (a page, a dialog, a theme, a game's Window class) only ever lives here — there's nothing to copy for those.

For what Quorix actually is and how the whole platform fits together, start at the root README.md or, for a no-coding-required explanation, HOW_QUORIX_WORKS.md. This file is specifically about this folder.

What's in this folder

Everything the client needs to run as a full, playable app — every page, every game's window/rendering code, every theme, and a full copy of the server's own logic (see below for why). PROGRAM_STRUCTURE.md has the complete package-by-package breakdown; the short version:

  • net, account, social, admin, economy, games (rule engines + match managers) — the server logic. Present here as the edit-source-of-truth copy that gets synced into QuorixServer/ (see below) — not something the shipped client exposes to players. QuorixClient.jar has no way to start a server; only QuorixServer.jar does.
  • ui, theme, pages — everything client-only: reusable widgets, the theming system, and the app's top-level navigable pages (Home, Games, Chat, Settings...).
  • games/ also holds every game's actual Window/Dialog rendering class, and the shared game-launching infrastructure (GameWindowFactory, GameRegistry, GameLauncher).
  • ai.search/ai.grid/ai.steering — offline practice-mode bot opponents, client- only. ai.knowledge is the one ai subpackage the server also needs (live Trivia Blitz lookups).
  • Quorix.java — the actual entry point java -jar QuorixClient.jar runs. ServerMain.java also lives here (the edit-source-of-truth copy of QuorixServer.jar's real entry point) but is never what QuorixClient.jar runs.

Hosting is not a client feature

There used to be an in-app "Start Hosting" button (Settings → Hosting Server, HostServerDialog.java) that let the ordinary client spin up a real server in-process. Removed 2026-09-25 — hosting is exclusively a QuorixServer.jar thing now. A player running QuorixClient.jar has no way to host anything from inside the app.

Keeping the two projects in sync

QuorixServer/ isn't a separate codebase — it's a trimmed copy of whatever this folder's server-side packages contain (see the root README's "Repo structure" section for exactly which packages and why). The rule: every file under net/account/social/admin/economy/games (except each game's Window/Dialog classes, which are client-only) needs to stay byte-identical between the two folders. Changed one of those here? Copy the same file into QuorixServer/ at the matching path, and diff the two to confirm. This has already caused one real, found-and-fixed bug (see ROADMAP.md's "Done" section, 2026-09-25) — a fix landed in QuorixServer/ and silently never made it here, even though ServerMain.java running from this folder is just as real a server as the dedicated one. Worth double-checking, not just assuming.

Building and running

See the root README.md's "Running it" section — covers running from a pre-built jar, from BlueJ, or building fresh jars with build.sh/build.bat.

Development history

DEVELOPMENT_LOG.md is this folder's old README — a chronological, append-only log of what was built each round going back to the start of the project. Useful for the reasoning behind old decisions; not current documentation (this file, and the ones linked above, are).

Source: QuorixClient/README.md on GitHub