Unnamed Skill
Migrate a browser-based JavaScript/Canvas game to Unity (C#). Use for Shelter 2250 (or similar) when you need: (1) Unity project setup decisions (2D/URP/input/UI), (2) mapping existing JS classes/systems to Unity architecture, (3) porting core simulation loops (time/resources/rooms/dwellers/save), and (4) planning incremental milestones with parity checks.
$ 安裝
git clone https://github.com/nolainjin/codex_2250 /tmp/codex_2250 && cp -r /tmp/codex_2250/codex-skills/unity-migration ~/.claude/skills/codex_2250// tip: Run this command in your terminal to install the skill
SKILL.md
name: unity-migration description: Migrate a browser-based JavaScript/Canvas game to Unity (C#). Use for Shelter 2250 (or similar) when you need: (1) Unity project setup decisions (2D/URP/input/UI), (2) mapping existing JS classes/systems to Unity architecture, (3) porting core simulation loops (time/resources/rooms/dwellers/save), and (4) planning incremental milestones with parity checks.
Unity Migration (Shelter 2250)
0) Inputs to confirm (ask if missing)
- Target Unity version (recommend latest LTS)
- Render/UI approach:
UGUI(Canvas) vsUI Toolkit(or hybrid) - 2D pipeline: built-in 2D vs
URP 2D - Target platforms: WebGL/PC/Mobile
- Parity target: “feature parity first” vs “re-architecture first”
1) Migration strategy (keep risk low)
- Create a new Unity project and commit it early.
- Port data + simulation first (no fancy visuals): resources, time, room placement rules, dwellers, save/load.
- Add a minimal debug UI (text HUD + simple buttons).
- Only then port visuals (room rendering, animations, VFX).
- Keep a running parity checklist (JS build vs Unity build).
2) Mapping guide (read only if needed)
- For a concrete mapping of the current JS codebase to Unity scripts/components, read
references/js-to-unity-map.md.
3) Unity architecture (recommended baseline)
- Scene:
Boot(init, load/save),Game(world),UI(HUD/menus) or singleGamescene + additiveUI. - Game loop:
- Render: per-frame (
Update) - Simulation tick: fixed step (e.g., 1 sec real-time) using a
GameTickService - “Game time” scale: multiplier (1/2/6x) applied consistently to tick + clock
- Render: per-frame (
- Data:
- Room types / costs:
ScriptableObject(RoomTypeDefinition) - Traits:
ScriptableObject(TraitDefinition) - Country bonuses:
ScriptableObject(CountryDefinition)
- Room types / costs:
- State:
GameStateplain C# object (serializable)SaveServicewrites JSON to disk (PC) and PlayerPrefs/WebGL fallback
4) Incremental milestones (suggested)
- “Simulation only”: tick + resources + rooms + dwellers + save/load (no graphics)
- “Build mode”: placement preview + validation + costs + upgrade
- “UI parity”: resource bars + dwellers panel + room modal
- “Visual parity”: 2D cutaway rendering, lighting, animations
- “Content”: events, exploration, country-specific flavor
5) Parity checks (fast)
- Room placement rule tests: given grid + rooms, validate allowed positions
- Tick consistency: at 1x/2x/6x, 60 seconds real-time should advance:
- 1x: 1 in-game hour
- 2x: 2 in-game hours
- 6x: 6 in-game hours
- Save/load: load legacy saves (if required) and new saves
Repository

nolainjin
Author
nolainjin/codex_2250/codex-skills/unity-migration
0
Stars
0
Forks
Updated12h ago
Added1w ago