67 lines
3.1 KiB
Markdown
67 lines
3.1 KiB
Markdown
# GaCy Android
|
|||
|
|
|
||
|
|
[ภาษาไทย](README.md) | English | [简体中文](README_ZH.md)
|
||
|
|
|
||
|
|
GaCy Android is an Android companion and local server manager for the
|
||
|
|
GaC-hkrpg-go project. The
|
||
|
|
port is in progress: the app starts the Go SDK and game servers in a foreground
|
||
|
|
service, or connects to an existing server.
|
||
|
|
|
||
|
|
## Current status
|
||
|
|
|
||
|
|
- An ARM64 debug build was tested on a physical phone: the user confirmed game
|
||
|
|
login, in-game map teleport, and restarting the server after an update.
|
||
|
|
- The Go SDK, shared-data, game-server and KCP tests passed. These checks do not
|
||
|
|
establish that every game feature works on Android.
|
||
|
|
- Character settings from the older ppSR runtime are not yet connected to the
|
||
|
|
Go runtime. `/give` and `/heal` are not implemented by the Go command API.
|
||
|
|
|
||
|
|
## Features
|
||
|
|
|
||
|
|
- Start, stop and restart the local server; connect to a remote server and
|
||
|
|
monitor its SDK health.
|
||
|
|
- View and copy server logs, send GM commands and open the SRTool web app.
|
||
|
|
- Use the game's own map to teleport. There is no separate teleport page in
|
||
|
|
the app navigation.
|
||
|
|
- Submit an Unstuck request. The app reports it as queued only when the server
|
||
|
|
supplies a request ID; this does not confirm the game has processed it.
|
||
|
|
- Configure the host and ports and display the actual app version in Settings.
|
||
|
|
|
||
|
|
`/max` updates avatar level, promotion and rank while preserving other save
|
||
|
|
fields. `/teleport <plane_id> [floor_id]` saves the scene for the next game
|
||
|
|
connection. Both have automated tests but have not been verified in the game.
|
||
|
|
`/clear lineup` is rejected because the active team cannot be empty.
|
||
|
|
|
||
|
|
## Build
|
||
|
|
|
||
|
|
Requirements: Android SDK 35, JDK 17 or 21, Go, Python, and a local checkout of
|
||
|
|
GaC-hkrpg-go. The app requires Android 8.0 (API 26) or newer. Normal debug builds
|
||
|
|
target ARM64.
|
||
|
|
|
||
|
|
```powershell
|
||
|
|
python tools/package_go_runtime.py <path-to-GaC-hkrpg-go>
|
||
|
|
.\gradlew.bat testDebugUnitTest assembleDebug
|
||
|
|
```
|
||
|
|
|
||
|
|
The packaging script uses the current Go source and resources, and seeds
|
||
|
|
player data from committed defaults. The APK is written to
|
||
|
|
`app/build/outputs/apk/debug/app-debug.apk` and copied to the project root as
|
||
|
|
`GaCy-Android-<versionName>-debug.apk`. APK files are ignored by Git.
|
||
|
|
|
||
|
|
For the x86_64 emulator, use `--emulator` when packaging and add
|
||
|
|
`-PgacyEmulator` to the Gradle command. These test executables are not part of
|
||
|
|
the normal ARM64 build.
|
||
|
|
|
||
|
|
## Runtime and network configuration
|
||
|
|
|
||
|
|
The Go runtime stores its files under the app's private `files/gacy-go`
|
||
|
|
directory, separate from old ppSR data. An update preserves player data and
|
||
|
|
existing hotfix entries, while adding new bundled versions. A completely empty
|
||
|
|
cached version does not override available bundled hotfix data.
|
||
|
|
|
||
|
|
Set the Host in Settings to the address the game client uses to reach the
|
||
|
|
phone. Use `127.0.0.1` when both run on the same device. Configure the SDK and
|
||
|
|
game ports as needed; changes apply after restarting the server. Redirecting
|
||
|
|
the game client's dispatch traffic remains a separate setup step. The Settings
|
||
|
|
connection test checks the values currently entered; remote monitoring reports
|
||
|
|
an error after three consecutive failed SDK health checks.
|