# Android phone playtest candidate — 0.10.0-demo This is an installation candidate, not the finished friends release. It uses the combined balance profile, 24 NPCs, four maps and the existing frozen Smoker and Anti-Smoker models. No additional training has run. ## Install / 安装 1. Open **https://nonsmokers.ethannov56.dev/** on the phone and tap **Get the Android demo**. The signed `Nonsmokers-v0.10.0-demo-rc4.apk` downloads directly. Open it from Downloads or the file manager; no extraction is necessary. USB transfer also works. 2. If Android asks, allow installation from that browser/file manager for this installation. You can turn that permission off again afterward. No account is needed. 3. Launch **Nonsmokers** in landscape. Language follows the device initially; use the language button on the home screen to switch English / 简体中文. 4. Start with **Learn to play**, or choose **Play → Play anyway** to skip practice. Use the left stick to move and drag the right side to look. The Smoke button must be held. Dragging an action button also turns the view. Ranged players can fire with the left button while continuing to aim with the right thumb; tap ZOOM to toggle the scope. Scoped touch sensitivity has its own Settings slider. 5. Later APKs signed with the same private key can update the installation. Do not uninstall first if you want to retain settings and lesson completion. 在手机打开 **https://nonsmokers.ethannov56.dev/**,点击“下载安卓试玩版”即可直接下载 APK。 从下载列表或文件管理器打开安装,**无需解压**;也可通过 USB 传输。 如系统提示,临时允许该浏览器或文件管理器安装应用,安装后可关闭此权限。横屏启动游戏, 主菜单可以切换简体中文和英文。先选择“学习玩法”,或在“开始游戏”中跳过训练。 左摇杆移动,右侧拖动转向;吸烟键需要按住。远程玩法可用左侧开火键,右手继续瞄准。 点击瞄准键切换开镜,可在设置中单独调整开镜触控灵敏度。 更新时直接安装新 APK,保留旧应用即可保留设置。 ## First phone check / 首次手机测试 - Complete a short lesson, then try Smoker, water launcher and katana. - Confirm you can move, look and use actions with different fingers together. - Try pausing, switching to another app, returning, and explicitly resuming. - Open **Feedback → Open feedback form**. The browser automatically receives basic device information, settings and the latest completed match/measurements. Describe the issue, review the optional details, complete verification and choose **Send feedback**. Nothing uploads before submission. No device identifier, contacts or location is collected. Basic device details work before your first match too. **Copy report only** remains available for offline sharing. - If performance is poor, try **Settings → Performance graphics → 30 FPS**. 请测试三种玩法、多人手指同时操作、暂停和切出应用再返回。完成对局后在 “反馈 → 打开反馈网页”会自动填入设备与最近对局信息,只需描述问题、检查内容, 完成人机验证后发送,无需邀请码。提交前不会上传。仍可复制报告到聊天中分享。 若卡顿,尝试“性能画质”和“30 FPS”。 ## RC4 touch aiming and bars / 触控瞄准与资源条 RC4 (versionCode **4**) expands the aiming surface, retains tiny swipe movements, prevents two aiming fingers from fighting each other, adds a left FIRE button and separate scoped sensitivity, and restores labeled resource bars on both platforms. Try short corrections while zoomed, lift and re-grip, and fire while continuing to drag. Sanity, health, odor, public health, trust, water and dash readiness retain their existing rules and show fill levels alongside their values. RC4 扩大了瞄准区域,改善小幅拖动与多指操作,新增左侧开火键和独立开镜灵敏度。 理智、健康、气味、公共健康、信任、水量和冲刺恢复均恢复进度条,并保留数值。 请试试开镜微调、抬手再拖,以及一手瞄准一手开火。规则与 AI 权重保持不变。 97 editor checks and 417 runtime checks each on Windows and the signed Android release pass. The emulator accepts the signed update over RC3. Details are recorded in the accompanying RC4 validation notes. Phone aiming feel and sustained performance need the next hands-on playtest. RC4 APK: **69,315,334 bytes**; SHA-256: `3c80d4fa9f398cf5eb303386814d29382873580a54cd0cb7813b2029658c2f71`. The signing certificate is unchanged; install over RC3 to keep local data. ## Previous RC3 startup correction / 上一版启动修复 RC3 (versionCode **3**) fixes an engine-stripping error: a runtime-created capsule collider was absent from the Android release, so map construction stopped before the camera/menu existed. The unchanged RC2 reproduced it in an Android 15 emulator; RC3 reaches the menu and passes all **411 native runtime checks** with no errors, including four maps, learned controllers, combat rules and tutorial scenarios. ARM64 execution uses the emulator's translation layer; it is not a phone performance test. The signed update installs over RC2 in the emulator. Actual-phone settings/update behavior and sustained performance remain unverified. See the startup-fix report in the repository for reproduction details. RC3 修复了安卓发布包缺少运行时组件而导致的启动黑屏;安卓 15 模拟器已复现旧问题, 修复版能够进入主菜单,并通过 411 项运行时检查。可覆盖旧版安装,仍需真机确认体验。 无需开启 USB 调试即可下载安装。 Previous RC3 APK: **69,310,182 bytes**; SHA-256: `498cfde6f87a542f587086561a60b3c5a0a527eb0c37cd3133672f9db2592294`. Previous builds are preserved; the signing certificate is unchanged. ## Validation status and release gates RC2 automated preflight: 95 editor tests pass (including device-report handoff and independent touch pointers, action-button camera dragging, cancellation and font coverage). Earlier RC1 validation passed 411 native Windows checks, including every lesson via shared input in desktop/touch modes, checkpoint retry, overlay freeze and explicit resume after focus loss. These are simulated inputs, not physical multi-touch testing. Six mobile-aspect UI captures were inspected in English and Chinese. Sixteen frozen baseline matches reproduce all gameplay fields exactly, ignoring only version/source/campaign metadata. Both incumbent model hashes are unchanged. Target configuration: Android 10/API 29 or later, ARM64, OpenGL ES 3; target API 36. The APK uses IL2CPP with minimal managed stripping and a persistent private signing key. The RC2 APK passed signature-v2, ARM64-only, API/GLES metadata and 16 KiB package-alignment checks. Font licenses remain bundled. Its signing certificate SHA-256 is `156612af3c7b5096dd173dc15c388c9d52d97f132f779c88175705c5d1d5db11`. The 4 GB RAM target and 60 FPS target are not verified device guarantees. Physical-device reports: RC2 installed but showed a black screen. The user's subsequent RC3 gameplay feedback identifies touch aiming and numeric-only meters; RC4 addresses those issues. No instrumented physical-device session has run. The first requested device is `2410DPN6CC`. Its actual Android OS version will be captured by the feedback report. Android 10 installation, signed in-place updates, offline launch, both learned controllers, cutouts, Back gestures, thermal behavior and memory stability require device testing. Before distributing the finished friends demo, test all four maps and three play styles, then a 15-minute sustained session. After warm-up, the primary phone target is median FPS ≥58 and p95 frame time ≤25 ms without crashes or persistent memory growth. No claims about weaker devices until separately tested. A 30 FPS setting is available. The existing observer G3 visibility-capacity limitation remains. Balance is still experimental, especially melee; this build does not claim equal win rates. Tutorial verification found and fixed a committed-dash phase-boundary bug: a tiny floating-point travel interval could be treated as a wall collision by the character controller. The intended six-metre dash now completes at 30, 60 and 120 FPS. Balance parameters and model weights are unchanged, but the old v0.9.2 combined-profile match statistics must not be presented as measurements of this corrected build. Baseline-v0.9.1 movement keeps its legacy path. The broader friends-demo work (including final Windows installer validation and full UI/device release gates) remains in progress. Preserve old Windows trials. RC2 increments Android versionCode to **2** and uses the same signing certificate as RC1. Install over RC1 to test settings/lesson persistence; do not uninstall first. Its new feedback flow needs an installed browser and internet only when sending feedback. Test automatic Chinese text transfer and returning to the paused game. The consolidated Cloudflare site passed 29 local checks, live protection/download checks and a full APK checksum verification. A human-verified synthetic submission passed on the original feedback domain. RC2's original link redirects to the new `/feedback` page; browser testing confirmed its Chinese diagnostics survive the redirect. These do not replace a real phone handoff test. ## Reproduce Run `scripts/build-android.ps1 -VersionCode N`, increasing N for each distributed APK. Run `scripts/verify-apk.ps1 -ApkPath ` to check identity, APIs, ABI, GLES, signature and native-library package alignment. Static checks do not replace execution. Signing material lives outside the repository in the user's private Codex Signing directory. Its password is encrypted for the current Windows user with DPAPI. Back up both files privately; never send them with the APK or commit them. UI font: Noto Sans CJK SC, SIL Open Font License, bundled with its license in `Assets/Fonts`. Touch and desktop controls feed the same gameplay input frame.