Unity RareIcon
Overview
Section titled “Overview”RareIcon Unity client. Source: apps/rareicon/unity-rareicon. ECS DOTS world (Hex / Items / Logistics / Buildings / Units / Combat / Professions / Quests).
Pipeline
Section titled “Pipeline”pipeline: unity → dispatched by ci-main.yml to ci-unity.yml whenever version here outpaces version.toml. Standard manifest-driven flow, no bespoke workflow.
Build matrix
Section titled “Build matrix”engine.build_targets:
StandaloneLinux64StandaloneWindows64StandaloneOSXAndroid— APK / AAB (debug-signed for now; production keystore + Play upload pending)iOS— Unity exports the Xcode project; the.ipastep is gated on an Apple Developer account
WebGL deliberately omitted — DOTS hybrid renderer + Burst aren’t WebGL-friendly.
Steam integration is locked to standalone via RareIcon.Platform.asmdef (includePlatforms excludes mobile / WebGL) plus SteamPluginPlatformGate editor hook (disables com.rlabrecque.steamworks.net native binaries on iOS / Android / WebGL importers). Mobile builds compile without seeing Steamworks types and ship without libsteam_api.so in the APK / IPA.
External publish
Section titled “External publish”Two destinations from one build:
Itch (external_publish.itch_user / itch_game):
kbve/rareicon:linux-x86_64kbve/rareicon:windows-x86_64kbve/rareicon:osx-universal
Build runs with DISABLESTEAMWORKS scripting define so SteamManager auto-no-ops when launched outside Steam.
Steam (external_publish.steam_apps[]):
- AppID
3791950—label: demo(the public demo, shipped first) - AppID
2238370—label: main(full game, queued for later) - Build keeps
steam_appid.txt+ Steamworks.NET enabled (the AppID flips per build via the Editor postprocessor)
The same ci-unity.yml run can target either route — the workflow reads external_publish to pick which post-build deploy fires.
Secrets required
Section titled “Secrets required”UNITY_LICENSE(Personal/Professional auth artifact, GameCI flow)UNITY_EMAIL,UNITY_PASSWORD(Personal license)BUTLER_API_KEY(itch.io upload)STEAM_USERNAME,STEAM_CONFIG_VDF(Steam Guard mobile auth, encoded)
Trigger
Section titled “Trigger”Tag-driven via the standard manifest dispatch. Bump version here, run npx nx run astro-kbve:sync:ci-manifest, commit, the next push fans ci-main.yml → ci-unity.yml for this entry.