#01 初始構想
Tech C#, Unity, KCP AI Cursor, ChatGPT, Claude Code
源起
公司的連線框架用的是事件同步——狀態一改就手動發事件,每個端點自己收事件、自己同步。平常用還行,但碰到斷線重連和中途加入就炸了:重連的玩家要拿到完整遊戲狀態,最直覺的做法是把所有事件重送一遍。每次技術人員新增功能的時候都要自己記得補上斷線重連的內容,開發上非常不人性化。
核心需求是希望讓開發者根本不用管斷線重連的同步邏輯。
設計
先調查了市面上的方案。Photon、Mirror、PurrNet、FishNet 這些都看過一輪,功能是有,但它們的同步規則和框架綁死——要掛 NetworkObject、要繼承 NetworkBehaviour,各種強制限制。要把這些塞進已經有自己網路系統的專案裡,基本上是遷移不動的。
我理想中的用法很簡單:在要同步的物件上掛一個 interface,在要同步的變數上標一個 Attribute,框架自己處理剩下的事。
實現
做了三次才做出來。
第一次直接跟 AI 協作開幹,結果把資料序列化、網路傳輸、連線實作全混在一起,框架太複雜,砍掉重來。
第二次多花了時間在設計上,但設計不夠嚴謹,做出來的系統似是而非,還是不行。
第三次才學乖,花了大量時間和 AI 把每個環節的設計確認清楚才動手。這次出來的結果才比較接近理想。
三次迭代最大的收穫:設計比實作重要,需求沒釐清就開工只會做白工。跟 AI 協作也是一樣,如果自己沒想清楚要什麼,AI 也幫不了你。
尾聲
這個階段完成了框架的初版設計和核心實作。狀態同步的基本能力跑起來了,但整體還在持續開發中。