Skip to content

Unity RareIcon

RareIcon Unity client. Source: apps/rareicon/unity-rareicon. ECS DOTS world (Hex / Items / Logistics / Buildings / Units / Combat / Professions / Quests).

pipeline: unity → dispatched by ci-main.yml to ci-unity.yml whenever version here outpaces version.toml. Standard manifest-driven flow, no bespoke workflow.

engine.build_targets:

  • StandaloneLinux64
  • StandaloneWindows64
  • StandaloneOSX
  • Android — APK / AAB (debug-signed for now; production keystore + Play upload pending)
  • iOS — Unity exports the Xcode project; the .ipa step 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.

Two destinations from one build:

Itch (external_publish.itch_user / itch_game):

  • kbve/rareicon:linux-x86_64
  • kbve/rareicon:windows-x86_64
  • kbve/rareicon:osx-universal

Build runs with DISABLESTEAMWORKS scripting define so SteamManager auto-no-ops when launched outside Steam.

Steam (external_publish.steam_apps[]):

  • AppID 3791950label: demo (the public demo, shipped first)
  • AppID 2238370label: 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.

  • 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)

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.ymlci-unity.yml for this entry.