--- date: 2026-05-29 type: session tags: - session - setup - dots - netcode permalink: gamevault/07-sessions/2026/2026-05-29-project-setup --- # Session 2026-05-29 — DOTS + Netcode + Memory Stack Setup One-time project setup per `Docs/dots-setup-task.md`. ## Done - **DOTS stack** (Unity 6.4.7 / 6000.4.7f1): `com.unity.entities` 6.4.0, `com.unity.netcode` 1.13.2, `com.unity.physics` 1.4.6, `com.unity.entities.graphics` 6.4.0. Console clean. (Entities / Collections / Graphics now track the Editor version → 6.4.0; Netcode / Physics still independent 1.x.) - **Asmdef split** under `Assets/_Project/Scripts/`: `ProjectM.Simulation` (shared), `ProjectM.Client`, `ProjectM.Server`, `ProjectM.Authoring`. Root namespace `ProjectM`. - **Bootstrap**: `GameBootstrap : ClientServerBootstrap` (Simulation) → `CreateDefaultClientServerWorlds()`, auto-connect off. Play Mode verified: separate `ServerWorld` (GameServer) + `ClientWorld` (GameClient). - **Subscene**: `Assets/_Project/Subscenes/Gameplay.unity` wired into `SampleScene` as a baking target. - **Smoke test**: `Heartbeat` IComponentData + `[BurstCompile] HeartbeatSystem : ISystem`; EditMode test ticks `SimulationSystemGroup` 8× and asserts advance → green (1/1). - **Vault + memory MCPs + `CLAUDE.md`**: scaffolded. ## Decisions - [[DR-001_Netcode_Test_Harness]] — smoke test uses a plain-Entities tick test, not the internal `NetCodeTestWorld`. ## Open / deferred - Unity 6.6 upgrade considered, deferred. Stack is forward-compatible; `NetCodeTestWorld` stays internal regardless of version. - Optional template cleanup (visualscripting / TutorialInfo / Readme) deferred → [[Backlog]]. ## Next - Define pillars ([[Pillars]]) and the first playable slice ([[Milestones]]).