南庄山水悠遊行 2026 幕後紀錄
從活動官網一路做到導播台的 216 天
Published on Updated on從活動官網一路做到導播台的 216 天
Published on Updated on10 月 18 日爬坡賽結束,回到家先昏睡了半小時。醒來才開始算,這七個月到底做了多少東西。
南庄山水悠遊行由苗栗縣政府、南庄鄉公所等地方單位主辦。10 月 17 日是山水路跑賽,分半馬、10K、4K。10 月 18 日是慢城爬坡(觀賞)賽,計時段 12.93 公里、爬升 508 公尺。我們接的是幕後,包含活動官網、紙本秩序冊、現場的印刷圖卡、直播導播台的字卡和控制系統,賽後再加上成績查詢和電子獎狀。主視覺是人做的,其餘大部分是我跟 Claude、Codex 一起做出來的。
官網的第一個 commit 在 3 月 17 日,到 10 月 18 日比賽結束剛好 216 天。一開始要處理的只有報名資訊,兩場賽事、各個組別、路線地圖、獎勵兌換和常見問答。報名在 8 月 31 日截止,路跑報名 2,049 人次,爬坡 2,471 人次。
網站後來長出很多原本沒規劃的東西。選手名單查詢、物資領取查詢頁都是後來加的,介面也翻成繁中、英文、日文、印尼文、越南文、韓文六種語言。到 10 月 17 日,repo 累積了 1,029 個 commit,GitHub 上合併 76 個 PR,正式站成功部署 397 次。5、6 月一個 commit 都沒有,8 月一個月就有 362 個。活動越近,改得越快。
秩序冊是發給選手的紙本手冊,從 28 頁長到 44 頁,光這一本就有 104 個 commit。
現場印刷品清點下來共 291 片,單面面積加起來約 248 平方公尺。攤位牌 154 片、里程牌 33 面,每一面都要寫字,標語如果全靠人想,三天三夜也寫不完。靈洞宮那面背板尺寸從 595×240 改成 480×270,定案前又改了好幾稿。
直播是這次最燒的一塊。字卡模板做了 21 種,跑台排了 97 個 cue。HDMI 本地字卡從 v3.0 出到 v5.9.1,一共 39 版,10 月 9 日一天就從 v3.10 出到 v3.17。比賽當天早上,我們還在打包 v5.9.1。
有些問題只有站在導播台旁邊才看得到。現場那台 ATEM 導播機用 luma key 去背,會把磚紅色的字和奶油色的底吃成半透明。HDMI 訊號又沒有透明通道,不開 key 就整片蓋住畫面。最後改用綠幕去背,連運動部 logo 上的黑字也調成深綠,免得被吃掉。
10 月 17 日路跑那天還出過一次錯,Top 10 字卡把第 4 名播成了第 1 名。原因是字卡只輪詢 20 位熱門選手的號碼,名次也只在這 20 個人裡面排,真正的前三名不在名單上,排出來就全錯。當天改成讀整場成績,邊播邊修。
得獎規則也是比賽當天才對清楚的。半馬男女總排前 5 名領總排獎,不佔分組名額。爬坡那天另有 74 個號碼不計排名,要先排除。這些規則寫進控制台以後,字卡上的名次才跟計時公司的得獎名單一筆一筆對得上。
比賽結束後,官網換成選手專區。輸入號碼或姓名就能查兩天的成績,查到就直接出電子獎狀,可以下載 PDF、存成圖片,也可以用 ibon 取號,到 7-ELEVEN 印紙本。得獎名單也一起放上去了,10 月 17 日 19 組 134 人,10 月 18 日 24 組 189 人。
這次我們刻意記了帳。Claude 收到 2,811 則指令,token 用量推估約 78 億,其中 34 億有實測紀錄,其餘按實測的平均值外推。main 分支上有 811 個 commit 掛著 Claude 的名字。Codex 用了約 1.94 億 token,主要做直播彩排工具和字卡跑台。
這些量放在一年前,就算十個人的團隊花半年,也不一定做得完。可是哪個顏色會被導播機吃掉、哪個選手不該排進名次,還是要有人在現場看過才知道。AI 幫上的忙,是我們發現問題以後,幾個小時內就能把新版送到現場。
謝謝主辦單位給我們這次幕後的機會。活動官網在 https://nanzhuangrunandride.criterium.tw ,成績查詢和電子獎狀都還開著。