Release v0.1.6 2026-07-12
This commit is contained in:
@@ -2,16 +2,23 @@
|
||||
|
||||
Playable low-poly third-person combat vertical slice for AYN Thor's dual displays.
|
||||
|
||||
Offline-first frontend includes three timestamped save slots, optional account sync, local/online overwrite controls, Hunter Profile statistics, boss collection logs, Settings, and PvE/PvP mode entry points.
|
||||
Offline-first frontend includes three timestamped save slots, TrueNAS accounts
|
||||
and cloud saves, Hunter Profile statistics, boss and roguelike leaderboards,
|
||||
boss collection logs, Settings, and PvE/PvP mode entry points. Offline saves
|
||||
remain playable without an account and can be uploaded after sign-in.
|
||||
|
||||
## Run
|
||||
|
||||
```bash
|
||||
pnpm install
|
||||
pnpm dev:api
|
||||
# In a second terminal:
|
||||
pnpm dev
|
||||
```
|
||||
|
||||
The development server listens on `0.0.0.0:4173`.
|
||||
The Vite development server listens on `0.0.0.0:4173` and proxies `/api` to the
|
||||
local production/API server on `127.0.0.1:4174`. Both processes use the same
|
||||
client API contract as TrueNAS.
|
||||
|
||||
## Android / AYN Thor test APK
|
||||
|
||||
@@ -23,6 +30,10 @@ installable debug APK:
|
||||
pnpm android:apk
|
||||
```
|
||||
|
||||
Build explicitly against the TrueNAS API with `pnpm android:apk:truenas`.
|
||||
Native builds also default to `https://iwanttoheal.phenomrom.com` when no API
|
||||
base override is supplied.
|
||||
|
||||
Output is written under `android/app/build/outputs/apk/debug/`. With Android
|
||||
platform tools and a connected Thor, build and install it with:
|
||||
|
||||
@@ -41,12 +52,25 @@ state rather than two independent WebViews.
|
||||
Complete first-install, local-Gitea clone, YAML, update, and verification steps:
|
||||
[DEPLOYMENT.md](DEPLOYMENT.md).
|
||||
|
||||
The production preview server uses the existing deployment address and port:
|
||||
The live TrueNAS web server uses the existing deployment address and port:
|
||||
|
||||
- Public URL: `https://iwanttoheal.phenomrom.com`
|
||||
- Host/container port: `4173`
|
||||
- App directory: `/mnt/usbssds/apps/iwanttoheal-mmo/app`
|
||||
|
||||
### Server architecture
|
||||
|
||||
TrueNAS is the online production game server. Its Node process serves the browser
|
||||
application and authenticated `/api` routes on port `4173`; the reverse proxy
|
||||
exposes both at the public URL above. SQLite data persists at `/app/data/game.db`
|
||||
through the separate TrueNAS data mount.
|
||||
|
||||
The server owns account credentials, 30-day sessions, three cloud-save slots per
|
||||
account, boss-kill rankings, and roguelike highest-round rankings. Passwords use
|
||||
scrypt with per-account salts; clients store only opaque session tokens. Local
|
||||
saves remain available for offline play. Gitea is a separate TrueNAS service used
|
||||
for source hosting and deployment.
|
||||
|
||||
Clone from the TrueNAS-local Gitea bare repository into the app directory, then
|
||||
deploy `compose.yaml`. The expected source path is:
|
||||
|
||||
@@ -54,18 +78,16 @@ deploy `compose.yaml`. The expected source path is:
|
||||
/mnt/.ix-apps/app_mounts/gitea/data/git/repositories/phenom/i-want-to-heal-mmo.git
|
||||
```
|
||||
|
||||
Compared with the old game configuration:
|
||||
Current configuration:
|
||||
|
||||
- use `corepack pnpm install --frozen-lockfile`, not `npm ci`;
|
||||
- remove `npm run db:init` because this game has no server database;
|
||||
- remove `COOKIE_SECURE`, `CORS_ORIGINS`, and `TRUST_PROXY`; the static Vite
|
||||
preview server does not consume them;
|
||||
- remove `/app/data`; offline saves live in each player's browser/Android WebView
|
||||
storage, not on TrueNAS.
|
||||
- run `pnpm db:init` before starting the production server;
|
||||
- mount `/mnt/usbssds/apps/iwanttoheal-mmo/data` at `/app/data`;
|
||||
- keep `CORS_ORIGINS` configured for the public site and Capacitor host;
|
||||
- keep the source checkout and persistent data in separate mounts.
|
||||
|
||||
The existing reverse proxy can keep forwarding the public hostname to port
|
||||
`4173`. Add server data and authentication environment variables only when an
|
||||
actual sync API is introduced.
|
||||
The existing reverse proxy forwards the public hostname to port `4173`, including
|
||||
all `/api` routes.
|
||||
|
||||
## Publish updates to Gitea
|
||||
|
||||
@@ -116,11 +138,11 @@ outside the repository.
|
||||
|
||||
Touch controls on lower display support party targeting, ability casting, map, and inventory.
|
||||
|
||||
## Prototype scope
|
||||
## Current game scope
|
||||
|
||||
- Five-member AI party with Disc Priest healer
|
||||
- Animated Druid healer, Knight tank, Ranger, Rogue, and Mage party models
|
||||
- One animated boss: Bulldrome, using the Bull model at 180% of its original prototype scale
|
||||
- Animated bosses using canonical tracked game models
|
||||
- Telegraph, charge, 0.75-second knockdown, and return-to-tank behavior
|
||||
- Three-charge cycle into a five-second stack marker and 300-damage shared pounce
|
||||
- Tank pressure, party-wide Cinder Nova, dispellable Ember Brand
|
||||
|
||||
Reference in New Issue
Block a user