內心已經有整個世界了,規格反而是枷鎖
3b13ec3..15c310b ↗
一代是規格先行,二代我一份規格都沒寫。這篇講那個轉變,以及五十二天六百多個 commit 之後,第一階段為什麼算完成了。
AbstractThe first version started from a spec. This one started from a README and nothing else. Here is why that inversion happened, and why after 52 days and 610 commits I consider phase one done.
| 時間區間 | 2026-07-03 → 2026-08-23 |
| 涵蓋切片 | 2026-W27 到 2026-W34 |
| commit | 610(不含 merge) |
兩代都還跑在線上,可以直接點進去比:
其實光看瀏覽器分頁上的標題就差不多了。一代叫 Super Reversi - Advanced AI Reversi Game,二代叫 Super Reversi 2 黑白江湖。一個在講它有多強,一個在講它是哪裡。
這段時間發生了什麼
一代是規格先行。我讓 spec-kit 生了六份文件、一千多行,才開始寫程式。
二代開工的時候,整個專案只有一個 README。
規格驅動似乎是許多軟體開發的首選,可是這次我沒有那樣做。我自己把二代這種方式叫做沉浸式開發。
它的前提是你內心已經有整個世界了。在那個前提下,紙面上的制式規格反而會變成負面限制的枷鎖。這種做法更像是畫家慢慢在白紙上把世界畫出來。再加上費氏係數的開發習慣,走兩步停一步回頭整理,自然會找到一個正向循環的平衡點。
所以二代的文件是後來才長出來的。現在 docs/ 有二十幾份,那些是畫完之後才描上去的線。
至於驗收標準,這次我心裡的目標是構築一個以下棋為主的江湖世界,再增加一點肉鴿小遊戲的元素。
那個目標,第一階段已經完成了。
留下來的
一代收攤的時候有三件事沒做成,現在的狀況是這樣。
血條歸零算勝負那個二重判斷,做到肉鴿小遊戲那邊去了。特殊棋子跟玩家自製特效,各做了一半,還在概念階段,沒有開放。
三個棋類、五六個模式,範圍確實太大。不過我會留著,那些本來就是想做的事,而且回頭看都是有意義的。收斂總得有些取捨。
真正最大的收穫不是這些東西本身,是我對整個前端遊戲專案的規劃跟開發流程,有了一套自己的工作流。
一代之後回爐重造,那是量子躍遷式的巨大進步。一方面是工具進步了,一方面是沉澱了一代的經驗。有了這兩樣才走得到今天這一步。
還沒做完的
自製技能編輯器。
我想讓玩家自己編排技能招式,然後在對戰的時候讓對手看到。那個東西還沒開發完,也還沒開放。
這條線從一代就在了。一代的時候它叫「玩家自製招式特效」,當時的 AI 做不出來。現在它有名字、有規劃,但還沒站起來。
現在的樣子
有幾件事是這次才有辦法做的。
Fable 5 在編碼、測試、設計、規劃上全方位更強。Codex 比較適合常規的小任務,例如修 bug。兩者消耗的 token 也是天差地別,可是對於極力避免返工的我來說,我寧願選 Fable 5。
另外那五份實測數據的 JSON,疊棋塔高、圍棋棋風勝率、墨潮平衡那些,其實是我讓 AI 去跑的。我想看看它能不能跑出人工抓不到的問題。
至於 commit 訊息從一代的三成沒內容變成現在的零,還有 PR 從三十個變成九個,那也不是我立的規矩。我沒有特別去規定這方面的慣例,專案也沒有大到需要那個。
那是工具變了。