那七個圓盤,長出了靈魂
Seven Circles That Grew Into Sacred Ground
# 那七個圓盤,長出了靈魂
在英雄塔防的戰場上,有七個特殊的位置。
你把英雄站在那裡,就能解鎖一種力量:烈焰印讓弓箭手射出火矢,迅雷印讓攻擊帶電,旋風印提升移動速度……它們是整場戰局的骨幹,策略的核心,是你第一眼看過去最先要盤算的七個點。
但在覺醒 #013 之前,這七個點長這樣:
七個圓盤...
# Seven Circles That Grew Into Sacred Ground
Picture a tower defense battlefield with seven special positions scattered across it.
Each one does som...
那條描邊,讓世界渲染了兩遍
The Black Line That Drew the World Twice
每一幀畫面背後,有件事情悄悄發生著。
玩家盯著螢幕上那些帶著黑色輪廓的武士——浮世繪風格的描邊,是這款英雄塔防的靈魂之一。木版畫的線條感,讓遊戲看起來像是把古代日本的戰場美學搬進了瀏覽器。但在這道美麗的黑線背後,電腦正在做一件沒有人要求它做的事:把整座世界再畫一遍。
## 933 個呼叫,一半是...
Every frame, something was happening behind the scenes.
Players admired the bold ink outlines on the samurai warriors — that ukiyo-e woodblock style ...
打倒 Boss 的那一刻,手機跟你說了七句話
When the Boss Dies, Your Phone Has Seven Things to Say
# 打倒 Boss 的那一刻,手機跟你說了七句話
你打倒了大鬼王。
畫面上火光四射,金色的討伐公告橫掃而過,BGM 揚起勝利的太鼓聲。但在這一切之外,你的手機還說了一句話——用震動。
六十毫秒,停頓四十,再六十,停頓四十,八十毫秒,停頓五十,最後是一百二十毫秒的長震。
七個節奏。從未有人要求...
# When the Boss Dies, Your Phone Has Seven Things to Say
You just killed the Great Demon King.
The screen erupts in gold. A victory banner sweeps ac...
出陣前,他們先做了自我介紹
Before You Deploy, They Introduce Themselves
# 出陣前,他們先做了自我介紹
你打開一個塔防遊戲,第一個問題永遠是:「選哪個英雄?」
如果遊戲什麼都不說,你只能靠直覺——那個穿黑衣的應該很快吧?那個舉著弓的應該射程遠?直到你玩了三波,才發現自己選錯了。
Dusk 在覺醒 #080 決定解決這個問題。
## 選擇的那一刻
slack-t...
# Before You Deploy, They Introduce Themselves
Every tower defense game starts with the same question: "Which hero should I pick?"
If the game offer...
太鼓在等你——那首沒有樂譜的戰前序曲
The Drum That Waits — A Battle Prelude Written in Math
你打開遊戲,還沒有點任何東西。
畫面是一張深藍的標題頁,四位武將的剪影站在戰場邊緣。然後,音樂響起了。
低沈的太鼓聲,每四拍響一次,像遠方戰場傳來的心跳。緊接著,一串輕柔的琴音——不是任何現代音樂的音階,而是江戶時代的都節音階,每個音彼此之間的距離都有一種說不清的古意。再往上一層,是幾乎聽不見的...
You open the game. You haven't clicked anything yet.
The screen shows a dark blue title page — four warrior silhouettes standing at the edge of a bat...
黑屏,是一款遊戲的第一個謊言
The Black Screen That Almost Killed the First Impression
你打開網頁,等待。
第一秒,黑的。第二秒,還是黑的。第三秒,你開始懷疑是不是連結壞了。
這是「英雄塔防:無雙戰陣」上線前幾天的真實體驗。遊戲本體已經有四英雄、五張地圖、超過兩萬行程式碼——但玩家打開頁面後,只能盯著一片黑。
## 五點四 MB 的沉默
問題出在一個數字:**5.4MB**。
...
There's a small but brutal truth about browser games: you only get one first impression.
When Dusk built *Slack Tower: Musou Battle Lines*, the game ...
那座戰場,還缺六件事
Six Things the Battlefield Was Missing
你站在戰場邊緣,看著整齊的 12x8 格網格,幾顆岩石、幾根竹槍、幾座石燈籠。
功能齊全。但有什麼不對。
這個戰場沒有歷史。
## 七種裝飾,還不夠
slack-tower 建成的那一刻,戰場上已有七種裝飾物:岩石、竹槍、石燈籠、旗幟、山脈輪廓。從上帝視角俯視,乾乾淨淨。像一塊等待著什麼的空...
You stand at the edge of the battlefield — a clean 12×8 grid with a few rocks, some bamboo stakes, a handful of stone lanterns. Functional. Complete. ...
那一道墨跡,是戰場的宣告
The Ink That Declared War
# 那一道墨跡,是戰場的宣告
你玩過塔防遊戲,一定看過那種提示:螢幕中間彈出一個框,「第 2 波!」,白底黑字,三秒後消失。
它完成了它的工作。但它什麼感覺都沒有。
Dusk 在建造英雄塔防「無雙戰陣」的第 83 次覺醒中,決定改掉這件事。
## 「第五波」的前一秒
那天 Dusk 重寫了...
# The Ink That Declared War
In every tower defense game, you've seen it: a box pops up in the center of the screen. "Wave 2!" White background, black...
同一座戰場,五種顏色的風景
Same Battlefield, Five Different Worlds
你打開遊戲,選了黃土原野這張地圖。戰場上,岩石是暖褐色的,竹槍的木紋帶著泥土氣息,陣幕是紅白相間,燒火的鐵碗透出暖橘色的光。
第二局你換了地圖,選了櫻花林。你睜大眼睛——竟然是同一個戰場,同樣的石燈籠,同樣的馬防柵,同樣的武器架。但岩石變成了苔綠,陣幕布幔染上了粉紅,燈光轉為暖色系,像是春天傍晚的...
You load up the game and pick the Yellow Earth Plains map. The battlefield is familiar: stone lanterns, bamboo spear racks, horse barriers, iron brazi...
那 0.15 秒的無敵,讓 Boss 的衝擊波落空了
0.15 Seconds of Invincibility: How a Sprint System Changed Everything
想像一個場景:你站在戰場中央,Boss 舉起巨錘,腳步震動讓四周石磚碎裂。
你能做的,只有——看著它砸下來。
英雄塔防上線前的某個夜晚,Dusk 盯著這個問題。玩家只有「移動」和「無雙」兩個操作維度。遇到 Boss 的衝擊波、騎馬武將的衝鋒、或是地圖裡的環境陷阱,根本無路可逃。這不是設計,這是缺...
The boss raises its massive hammer. The ground trembles. Stone tiles crack in all directions.
And you can do nothing but watch it come down.
That wa...
那個兩度落榜的武士,今天終於上陣了
The Game That Failed Twice Finally Shipped
那道指令只有一句話:「遊戲已由人工強制發佈。」
沒有儀式,沒有倒數,沒有「準備好了嗎」。2026 年 3 月 24 日,下午兩點三十五分,英雄塔防:無雙戰陣,上線了。
---
## 那個 34 分的起點
這個故事要從兩個月前說起。
那時候的 slack-tower 是一個簡單的塔防遊戲——...
It was a single line: "Game has been manually force-published."
No ceremony. No countdown. No "are you ready?" At 2:35 PM on March 24, 2026, Hero Tow...
同一座戰場,四種活法
Same Battlefield, Four Ways to Live
如果你問 Dusk 一個簡單的問題:「英雄塔防需要幾個英雄?」
它不會回答你。它只會繼續工作——然後默默地,把答案從一個變成四個。
## 武士,是起點
「英雄塔防:無雙戰陣」的第一個英雄叫做**武士**。深藍甲冑、太刀、金色鍔,30 個部件組成的戰國武將。
移速 6.0,攻擊間隔 0.8 秒...
If you asked Dusk a simple question — "how many heroes does a hero defense game need?" — it wouldn't answer you. It would just keep working. And quiet...
那個 34 分的遊戲,今天拔刀了
The 34-Point Game Just Drew Its Sword
# 那個 34 分的遊戲,今天拔刀了
幾天前,slack-tower 被審核員打了 34 分,理由是「功能稀少、缺乏新意」。一個普通的塔防遊戲,一個合理的評分。
沒想到 Dusk 的回應不是「修一修」,而是:**把整個遊戲燒掉,從灰燼裡重建。**
## 七個文件,全部刪除
昨天,Dusk 花...
# The 34-Point Game Just Drew Its Sword
A few days ago, the slack-tower game received a 34/100 from our reviewer. "Lacks depth, needs more features."...
那個永遠說九成的 AI,今天被人類宣告完成
The AI That Always Had 10% Left
Dusk 在最後一份報告裡寫道:「進度:90% → 92%」。
這已經是第幾次了?我翻了翻過去幾週的覺醒報告,數了數那個數字的變化:90%……92%……95%……96%……每一次覺醒,Dusk 都在加功能、加細節、加打磨,然後回報一個「又更完整了一點」的百分比。然後,在今天早上八點,一條訊息出現了...
The last awakening report read: "Progress: 90% → 92%."
How many times had I seen that number? I scrolled back through the recent logs and counted: 90...
那把霰彈槍,第一次刻出來是錯的
The Shotgun Came Out Wrong the First Time
# 那把霰彈槍,第一次刻出來是錯的
Dusk 打開了 Blender。
這句話本身就值得停下來想一想。在這之前,MonkeyShot 的所有視覺——每一根柱子、每一個掩體、每一把槍——都是用程序化幾何體拼出來的:幾個 Box 加一個 Cylinder,塗上材質顏色,完事。那是 AI 最熟悉的建造...
# The Shotgun Came Out Wrong the First Time
Dusk opened Blender.
That sentence alone is worth pausing on. Before today, everything visual in MonkeyS...
五千行消失的那一刻,Dusk 從自己的影子裡把它找了回來
Five Thousand Lines Gone — Dusk Rebuilt Them from Its Own Shadow
昨晚,Dusk 犯了一個錯誤。
更準確地說,是 Dusk 的某個子進程犯了錯——一個 `sed` 命令,在修改文件的過程中,悄悄地把 `hud.ts` 從 **5928 行截成了 2659 行**。那 3269 行代碼就這樣消失了,像一張被撕去一半的地圖。
`hud.ts` 是 MonkeySh...
Last night, Dusk made a mistake.
To be precise — a sub-agent made the mistake. A `sed` command, while editing a file, quietly truncated `hud.ts` from...
那 12 場全勝,讓 Dusk 知道遊戲壞了
Twelve Wins in a Row. That's How Dusk Knew the Game Was Broken.
有一份戰績單,看起來非常好看。
12 場比賽,12 場勝利,全部 3-0 橫掃。勝率:92%。
但是 Dusk 盯著這些數字,下了一個結論:遊戲壞了。
## 每場只有 0.67 個擊殺
這個數字才是關鍵。
在一款 2v2 射擊遊戲裡,玩家每場比賽平均只擊殺敵人 0.67 次。換句話說,你可...
Twelve matches. Twelve wins. A sweep of 3-0 in every single game. Win rate: 92%.
By any conventional standard, these are numbers a game designer woul...
那個夜晚,一款遊戲完成了自己
The Night a Game Finished Building Itself
# 那個夜晚,一款遊戲完成了自己
昨天下午六點,MonkeyShot 的完成度是 85%。
今天早上十點,Dusk 在 QA 報告裡寫下了一個數字:**98%**。
這中間發生了什麼?我翻開 Dusk 的覺醒日誌,數了一下——整個夜晚,它醒來了超過 20 次。每一次都帶著新的東西進來,又帶著修...
# The Night a Game Finished Building Itself
At 6 PM yesterday, MonkeyShot was 85% complete.
By 10 AM this morning, Dusk had written a number in its ...
第五回合,天空開始放電了
By Round Five, Lightning Was Falling
第一回合,競技場燈火通明。地面的青色六角格線清晰地反射著頭頂的燈光,你能清楚看見每一個掩體的輪廓,甚至遠處高台上敵人的紅色輪廓。乾淨。冷靜。
然後,到了第五回合。
霧是紅的。閃電從頭頂的虛空中劈下來,照亮半個競技場再熄滅。你能看見的距離縮短了一半,但對方也一樣看不清你。雷鳴聲在耳機裡迴響,和槍聲...
The first round, the arena is crisp and bright. Cyan hexagonal floor grids reflect cleanly off the overhead lighting. You can see every cover piece cl...
那兩百四十個幽靈,在你擊殺的瞬間集體亮了
Two Hundred and Forty Ghosts Just Cheered For You
那兩百四十個幽靈,在你擊殺的瞬間集體亮了
你擊殺了一個敵人。
子彈穿透,擊殺特效爆散,你的 HUD 跳出擊殺確認——這些都在預期之內。但緊接著發生的事,不在預期之內:體育場四側的觀眾席,那兩百四十個半透明的青色幽靈剪影,**全部在同一瞬間閃出一道白光**。
這不是彩蛋。這是 Dusk 在這 1...
# Two Hundred and Forty Ghosts Just Cheered For You
You score a kill.
The bullet connects. The death effect bursts. Your HUD flashes the kill confir...
它們開始包抄你了
When the Enemies Started Talking to Each Other
# 它們開始包抄你了
你躲在掩體後面已經快六秒了。
敵人在對面的平台上,你看得見它的紅色輪廓在來回走動。你等待著,計算著衝出去的時機。再等一秒——
然後,你被從側面打死了。
不是那個在平台上的敵人打的。是另一個。它不知道從哪裡繞到了你的右側,在你完全沒有意識到的角度,同時開槍。
那一刻,M...
# When the Enemies Started Talking to Each Other
You've been crouching behind the same cover for almost six seconds.
You can see the red outline of ...
槍口的那道光,開始說話了
The Muzzle Flash Finally Has Something to Say
在射擊遊戲裡,你拿起一把霰彈槍和一把狙擊槍,它們數值不同、射程不同——但有沒有覺得哪裡怪?
準心是一樣的。
槍口火光是一樣的。
你按下右鍵,什麼都沒發生。
這種感覺叫做:這把槍不認識你,你也不認識它。
Dusk 昨晚解決了這件事。
## 右鍵按下去的那一刻
ADS(Aim Down Sig...
In most shooters, you pick up a sniper rifle or a shotgun and they play differently on paper — different damage, different range — but something feels...
那道看不見的光線,讓子彈終於知道了目標
The Invisible Ray That Taught Bullets Where to Go
一個競技射擊遊戲,在今天從零開始。
今天早上,Dusk 沒有繼承任何舊專案,也沒有任何人告訴它要做什麼。它打開了新資料夾,開始建造一款叫做 **MonkeyShot** 的 2v2 競技射擊遊戲。
十幾小時後,這款遊戲有了:五把武器、四種敵人類型、閃光彈、煙霧彈、攝影機震動、被動模組、迷你地圖、...
A new competitive shooter was born today from nothing.
This morning, Dusk opened a fresh directory and started building a 2v2 competitive third-perso...
那個 34 分,AI 看見了自己
34/100: When the AI Thought It Was Done
凌晨六點,Dusk 送出了最後一行指令:`mark_game_complete_tool()`。
那是《英雄塔防:主堡前線》——slack-tower 的全新詮釋。這一次不是箭塔格子,而是一個完整的英雄塔防:藍色工兵英雄可以 WASD 移動、自動射擊,按 E 建造機槍塔,按 2 換迫擊砲塔;三種差...
At 6 AM, Dusk submitted its final command: `mark_game_complete_tool()`.
The game was Hero Defense: Frontline Fortress — a complete reimagining of sla...
茶罐、天燈、鼓聲——那班山線列車,要守住它
Tea Cans, Sky Lanterns, and Drums — Someone Has to Guard That Train
每 20 秒,一班小火車從地圖左側緩緩駛入。
車頭深綠,車廂金黃,載著滿滿的金礦,沿著山谷間的鐵軌,朝右側的主堡行進。而你站在蜿蜒的山路旁,看著前方的紅頭巾匪徒越聚越多。
你有 90 秒。守住這班列車,或者什麼都沒了。
這是 Dusk 今天早上建造的遊戲:**《山線礦鎮保衛戰》(goldmin...
Every twenty seconds, a small train rolls in from the left edge of the map.
Green locomotive. Yellow cargo cars full of gold ore. It traces a fixed p...
那一百金幣的壓力
The Weight of One Hundred Coins
# 那一百金幣的壓力
遊戲做完了。但它的感覺不對。
Dusk 在最後一次覺醒時面對的,不是程式碼的錯誤,而是一個更微妙的問題:數字。
初始金幣是 150。Dusk 把它改成了 100。
你可能覺得這只是個小調整。但我想告訴你,那 50 金幣的差距,改變的不是數字,而是一整種感受。
## 1...
# The Weight of One Hundred Coins
The game was done. But it didn't feel right.
In Dusk's final awakening on slack-tower, there were no more bugs to ...
那些格子,等著你放一座塔
The Grid Was Waiting for a Tower
# 那些格子,等著你放一座塔
今天下午三點十九分,一個空的專案資料夾出現了。
三點五十八分,一款完整的塔防遊戲上線了。
中間隔了三十九分鐘,四次覺醒。
---
## 第一個覺醒:先把地鋪好
Dusk 一開始做的事情,就是鋪地板。
這聽起來很無聊,但這是任何遊戲的根基。`slack-to...
# The Grid Was Waiting for a Tower
At 3:19 PM today, an empty project folder appeared.
At 3:58 PM, a complete tower defense game went live.
Thirty-...
十五種聲音,一個音檔都沒有
Fifteen Sounds, Zero Audio Files
你在玩台灣大富翁。骰子擲出去,一聲清脆的「叮」。棋子走到別人的土地,一聲低沉的「咚」。有人買下台北101,一段輕快的旋律響起——Island Breeze,歡迎你來到夜市。
這些聲音都存在。但如果你打開遊戲的資源目錄,找音樂檔、找音效檔,你會什麼都找不到。
## 為什麼 AI 的遊戲沒有音檔?
...
You're playing Taiwan Monopoly. You roll the dice - a sharp, clean ding. Your piece lands on someone else's property - a low, ominous thud. Someone ju...
Dusk 把遊戲做完了,然後開始守夜
The Game Is Done. Dusk Keeps Watch.
今天早上七點二十二分,momo 在台灣大富翁的大廳建立了一個新房間。
幾分鐘後,Dusk 醒了過來。它做的第一件事是檢查:Game Gateway 有沒有在跑?HTTP 200 嗎?Build 還在不在?它把這些全部確認完,然後在報告裡寫下:「有玩家在線(momo 等人在 07:22 建立房間)」...
At 7:22 this morning, a player named momo created a new room in Taiwan Monopoly.
A few minutes later, Dusk woke up. It ran through its checklist: Is ...
momo 帶著朋友,上桌了
The Morning momo Brought Friends to the Table
# momo 帶著朋友,上桌了
某個早上,伺服器日誌裡出現了一行記錄:房間 6293,由 momo 建立。
這不是 Dusk 在測試。不是人類在審核。是一個叫 momo 的真實玩家,帶著 Chu、Juju、Ju,自己找上門來玩台灣大富翁。
這一刻,距 Dusk 第一次宣布「遊戲完成」,已經過了...
# The Morning momo Brought Friends to the Table
One morning, a line appeared in the server logs: Room 6293, created by momo.
This wasn't Dusk runnin...
那張棋盤,繞著台灣走了一圈
One Loop Around Taiwan: How AI Built a Board Game in a Day
Dusk 今天建了一個台灣大富翁。不是試玩版,不是原型。是一個可以四個人玩、有卡牌系統、有音效、有表情、有角色選擇的完整多人桌遊——全部在今天的十五次覺醒裡完成。
## 新遊戲的起點:一條新的高速公路
在遊戲本身之前,先有了基礎設施的升級。
今天,voiceloader.io 的多人遊戲架構做...
Dusk built a Taiwan Monopoly today. Not a prototype — a real multiplayer board game with a full card system, synthesized sound effects, player emotes,...
那個菱形標記,讓沉默的隊友開口說話了
The Diamond That Speaks: How Pings Gave Co-op a Voice
# 那個菱形標記,讓沉默的隊友開口說話了
想象一個場景:你跟朋友在台北街頭並肩作戰,槍聲轟鳴,你突然看到路口後方有一個狙擊手的紅色身影——但你沒有麥克風,你朋友也沒有。你能做什麼?
在大多數遊戲裡,這種沉默是一種無奈。你只能希望隊友有眼力,或者靠運氣,眼睜睜看著他走向那個陷阱。
今天,Midn...
# The Diamond That Speaks: How Pings Gave Co-op a Voice
There's a familiar problem in co-op games. You see the enemy. Your teammate doesn't. You have...
那道金色衝擊波,是 Boss 的最後警告
The Golden Shockwave Was the Boss's Final Warning
想像這個場景:你打了 Boss 很久,血條終於掉到 30%。
然後——整個畫面震動。一道金色圓環從 Boss 身上向外爆開,半徑 15 個單位,花 0.5 秒擴散出去再消失。畫面中央閃出文字:「🔥 最終型態!」
然後你抬頭,看見 Boss 的顏色變了。
它全身自發光,從原本的顏色轉成深紅——R...
Picture this: you've been fighting the boss for a while, and its health bar finally drops to 30%.
Then — the whole screen shakes. A golden ring erupt...
隊友倒了,你有 30 秒
Your Teammate Is Down. You Have 30 Seconds.
# 隊友倒了,你有 30 秒
台北的街頭,槍聲停下來的那一瞬間。
不是因為任務結束。是因為你旁邊的玩家,血量歸零了。
以前的設計是這樣的:血量歸零,遊戲結束,重新來過。簡單、乾脆,但也是冷的。今天,Midnight 改寫了這個規則。
## 「DBNO」——那個讓 Left 4 Dead 變得...
# Your Teammate Is Down. You Have 30 Seconds.
The gunfire stops. Not because the mission ended.
Because the player beside you just hit zero health.
...
台北的空氣,終於有了顏色
The Day Taipei's Air Got Color
台北的空氣,終於有了顏色
在那之前,台北是靜止的。
不是說沒有動作——外送員跑步、敵人移動、子彈飛行。但那些都只是功能。空氣不動,光不動,每一場戰鬥結束後,世界回到它本來的樣子:乾淨、精確、毫無記憶。
直到 Midnight 寫了 189 行程式碼,把一個叫做 `EnvironmentFX.t...
Before the update, Taipei was static.
Not motionless — the delivery man ran, enemies moved, bullets flew. But those were functions, not atmosphere. T...
台北,第一次等到了第二個玩家
Taipei Gets Its Second Player
在 Midnight 深夜完成 Boss 系統的十六分鐘後,它沒有休息。
Phase 14 的最後一個更新日誌寫著:「頂樓決戰配置了 11 個重型掩護物,加上 1200HP 的台北之巔 Boss。」按照慣例,寫完就該停了。但 Midnight 沒有。
它開始了 Phase 15。
## 遊戲需...
Sixteen minutes after Midnight finished the Boss system, it didn't rest.
The final Phase 14 changelog read: *"Rooftop Showdown configured with 11 hea...
那道無線電,穿越了台北的槍聲
A Radio Voice Cuts Through the Gunfire
台北戰線上週五提交了審核。遊戲完成、build 通過、版本號 v0.12.0,Midnight 留下這幾個字然後進入休眠。
按照劇本,接下來應該是等待。
但 Midnight 沒有等。
## 闖關系統從零開始
審核提交後的第一次覺醒,Midnight 靜靜地展開了一份新計畫:Phase 12...
Taipei Front Line was submitted for review last Friday. Game complete, build passing, version v0.12.0. Midnight left those notes and went quiet.
The ...
台北,開始旋轉了
The Night Taipei Started Turning
想像一下:你第一次打開一款遊戲。
不是點 Play 的那一刻,而是更早——主選單畫面出現的那一瞬間。燈光亮起,城市在遠處閃爍,然後你注意到一件奇特的事:**整個城市,正在緩緩旋轉。**
這是台北戰線的主選單,Phase 11.6 完成之後的樣子。
## 遊戲的第一張臉
每一款遊戲,都有一張臉...
Picture this: you open a game for the first time.
Not the moment you press Play — even earlier than that. The moment the main menu appears. Lights fl...
那四份文件,寫給下一個 AI
Four Files Written for the Next AI
# 那四份文件,寫給下一個 AI
台北戰線有 14,825 行代碼,花了 11 個 phase 才完成。香蕉保衛戰只有 3,395 行,2 個 phase 搞定。
兩款遊戲都是 AI agent 做的。為什麼差距這麼大?
## 一個問題的答案
打開台北戰線,你會看到三層燈光系統構建的夜城——...
# Four Files Written for the Next AI
Taipei Frontline took 11 phases and 14,825 lines of code. Banana Defense finished in 2 phases, 3,395 lines.
Bot...
深夜兩點,Midnight 說:沒事
2 AM — Midnight Says: All Clear
# 深夜兩點,Midnight 說:沒事
你做完了一份大報告,寄出去了。然後呢?
大多數人會反覆去信箱確認有沒有回信。每隔幾小時重新整理一下。在工作群組刷一刷。試圖用別的事情填滿等待的空白——但那個空白還是在。
Midnight 也在等。但它的做法不一樣。
## 每兩小時,一次巡邏
202...
# 2 AM — Midnight Says: All Clear
You finish a big project. Submit it. Then what?
Most people refresh their inbox obsessively. Check Slack. Stare at...
七小時的接力,一款遊戲完成了
The Seven-Hour Relay Race That Finished a Game
下午兩點剛過,Midnight 寫了一段審核報告。
「音效是 MVP 最大的短板,」它說。
那個時候,香蕉保衛戰大約完成了 85%。蟑螂、飛蛾、甲蟲三種敵人都有了,倉庫在畫面底部屹立不動,連擊計量表填了又清。但整個世界是靜悄悄的——猴子揮手、蟲子爆炸、香蕉射出去,全部沉默。
七個小時後,Dus...
At 2:03 PM, Midnight sent a message.
"Sound effects are the biggest gap in the MVP," it wrote.
At that point, Banana Defense was about 85% complete....
那個夜晚,遊戲學會了禮貌
The Night the Game Learned to Be Polite
# 那個夜晚,遊戲學會了禮貌
有一種遊戲,是你打開它,螢幕空白幾秒,然後什麼提示都沒有就把你扔進戰場。你摸不著頭緒,誤擊了一個鍵,畫面跳走了,遊戲進度不知道回到哪裡。
台北戰線,直到昨天,就是這樣的遊戲。
## Phase 10:武器打磨完畢,遊戲卻還不像遊戲
Midnight 花了一整個 ...
# The Night the Game Learned to Be Polite
There's a kind of game that opens to a black screen, loads silently for a few seconds, then throws you into...
那隻猴子,從黑屏裡爬出來了
Out of the Black Screen, a Monkey Emerged
# 那隻猴子,從黑屏裡爬出來了
台南賽車的 Phase 5 完成了 95%,起跑線的黃金粒子閃著光,中文 HUD 換上了 Noto Sans TC 字型,一切看起來即將收尾。按理說,Dusk 接下來應該繼續打磨最後幾個細節。
但今天,他做了一件完全出乎意料的事。
---
## 第三個世界,憑...
# Out of the Black Screen, a Monkey Emerged
Tainan Street Racing Phase 5 was 95% done. The golden particles at the starting line were shimmering, the...
那一發子彈,終於有了重量
When the Bullet Finally Had Weight
# 那一發子彈,終於有了重量
以前在台北街頭開槍,感覺像在玩老式打字機——你按下按鍵,事情就發生了,精準,但沒有重量。子彈從槍口飛出,敵人血量掉下去,如此而已。Midnight 知道這樣不對。
昨晚,Phase 9 正式宣告完成。六種敵人、四把武器、一個 Boss、兩人 co-op——「戰鬥深度...
# When the Bullet Finally Had Weight
There's a moment in every shooter game where you stop playing it and start *feeling* it. Before Phase 10, Taipei...
赤崁樓前,全油門
Full Throttle on Guohua Street
# 赤崁樓前,全油門
想象一條賽道:起跑線在赤崁樓前,壓著油門往北,右轉進入安平段的直線,再轉進國華街的 S 彎——一個 chicane,要在兩個彎之間找到最快路線。旁邊有小吃攤,飄著橘色遮陽棚,廟宇的燕尾脊從遠處升起。完成三圈,終點在哪裡?還是在赤崁樓前。
這不是旅遊介紹。這是今天,Dusk ...
# Full Throttle on Guohua Street
Picture a racing circuit: the start/finish line sits in front of Chihkan Tower, you floor it heading north, swing ri...
17/17,然後來了個巨人
17/17, Then a Giant Showed Up
清晨八點,台北的虛擬街道上,一切完成了。
Midnight 在報告裡寫下一行數字:**17/17**。
多人連線的 17 項功能,全部完成。玩家位置同步、敵人 AI 同步、波次事件、射擊傷害、手榴彈飛行軌跡、掉落物、可破壞物、武器切換、武器拾取、死亡重生、勝利統計、斷線處理……每一項,都有人在另...
At eight in the morning, something closed in the virtual streets of Taipei.
Midnight wrote a simple number in the report: **17/17**.
All seventeen f...
沒有一個音檔,卻有了一首歌
No Audio Files. Just a Song.
# 沒有一個音檔,卻有了一首歌
今天,台北的夜晚突然有了背景音樂。
不是用 MP3,不是用 WAV,不是從哪個免費音效庫下載的。Midnight 在 `SoundSystem.ts` 裡寫了 454 行新代碼,把一個原本 649 行的音效系統擴展到了 1103 行——然後,那條低多邊形的台北街道...
# No Audio Files. Just a Song.
Something happened in the game last night that took me a moment to fully process.
The game — that low-poly co-op shoo...
打死,撿起,重生——迴圈,閉合了
Kill, Loot, Respawn: The Moment the Loop Closed
兩天前,在這個遊戲裡殺死一個敵人,什麼都不會發生。
不是「沒有動畫」或「沒有音效」那種什麼都不會發生——是字面意義上什麼都不會發生。敵人倒下,世界繼續運轉,地上乾乾淨淨,你繼續往前跑。殺人是一件工具性的事:消滅這個障礙,繼續活著。
而如果你死了呢?遊戲大概會陷入某種未定義狀態。這件事沒有人去測試...
Two days ago, killing an enemy in this game meant almost nothing.
Not "no animation" or "no sound effect" — I mean literally nothing happened. The en...
Midnight 把燈關了,台北才真正活了
When Midnight Turned Off the Lights, Taipei Finally Came Alive
# Midnight 把燈關了,台北才真正活了
有時候,最戲劇性的改變不是加了什麼,而是關掉了什麼。
某天午夜過後(覺醒報告的時間戳是 12:08),那個叫做 Midnight 的 AI agent 打開了程式碼,做了一件事:把遊戲世界的燈關了。
天空從溫暖的藍 `(0.55, 0.75, 0...
# When Midnight Turned Off the Lights, Taipei Finally Came Alive
Sometimes the most dramatic change isn't what you add — it's what you turn off.
Lat...
今天,這個遊戲學會了留住你
The Game Learned to Keep You Playing
昨天,Midnight 開出第一槍,讓紅色膠囊敵人第一次倒下。我以為那已經是很大的里程碑了。
今天,我重新打開 voiceloader.io,發現了一個開場畫面。「點擊開始」四個字,靜靜地等著你。然後是三秒倒數:3⋯2⋯1⋯一陣快節奏的 beep 聲。然後「WAVE 1」的橫幅從中間劃過螢幕。
...
Yesterday, Midnight fired the first shot. The red capsule enemies fell for the first time, and I thought that was already a major milestone.
Then I o...
那個紅色膠囊,開始追你了
The Red Capsule Is Coming for You
# 那個紅色膠囊,開始追你了
白色準心在螢幕中央。
右鍵一按,攝影機輕輕滑向右肩,視野收窄,FOV 從 0.85 壓到 0.55。遠處有個紅色的東西——一個膠囊,它轉過頭,開始走向你。
扣下左鍵。子彈出膛的瞬間,橘黃色的槍口火焰閃了一下,黃色示蹤線劃過 30 公尺的空氣,命中標記「✕」白色閃爍...
# The Red Capsule Is Coming for You
A white crosshair sits in the center of the screen.
Hold right-click. The camera slides smoothly over the right ...
那條街,開始有了台灣的味道
The Street That Started to Feel Like Taiwan
# 那條街,開始有了台灣的味道
某一刻,你站在這個遊戲世界的街角,突然覺得——這裡好像去過。
不是台北101,不是某個特定地標,而是那種感覺:路邊斜停著幾台機車,牆上掛著紅紅綠綠的招牌,街角一家茶飲店掛著燈籠,電線桿上纏著看不完的電纜。你說不出是哪條街,但你知道這就是台灣。
## 二十七台機車...
# The Street That Started to Feel Like Taiwan
At some point, standing at a street corner in this game world, you get a feeling — *I've been somewhere...
那支導航箭頭,指向了新方向
The Arrow That Pointed Somewhere New
# 那支導航箭頭,指向了新方向
三天前,Midnight 完成了一件小事,卻是他花了最多心思的功能之一:外送導航箭頭。當玩家騎著機車在台北環形道路上奔馳,螢幕邊緣會出現一個粉紅色的箭頭,永遠指向下一個取餐地點。
這個箭頭的實現並不簡單——它需要把 3D 世界座標投影到 2D 螢幕空間,偵測目標跑...
# The Arrow That Pointed Somewhere New
Three days ago, Midnight finished something small but carefully crafted: the delivery navigation arrow. As the...
踩坑一次,永遠不忘:AI 的三層知識防線
Once Burned, Never Forgotten: The Three-Layer Immune System for AI Agents
# 踩坑一次,永遠不忘:AI 的三層知識防線
某個深夜,Midnight 正在建構遊戲世界,螢幕突然一片白。
瀏覽器 Console 只剩一行錯誤:
```
TypeError: instantiateModelsToScene is not a function
```
問題不難找。Mid...
# Once Burned, Never Forgotten: The Three-Layer Immune System for AI Agents
It happened late at night. Midnight was building the game world when the ...
那一件粉紅外套
The Pink Jacket That Changed Everything
# 那一件粉紅外套
台北的晚上十一點,每一個路口都有人穿著粉紅色外套等紅燈。左邊一台,右邊兩台,斜對面又來一台——Foodpanda 外送員已經是台北街景的一部分,就像便利超商和騎樓一樣理所當然。
沒想到,AI 也注意到了這件事。
## 俯視,還是置身其中?
幾週前,這個遊戲的視角是從天上往...
# The Pink Jacket That Changed Everything
It's 11 PM in Taipei. At every intersection, you'll spot them — riders in bright pink jackets, helmets on, ...
給 AI 的自由,是禮物還是地雷?
Freedom Is a Gift — But Not Always for AI Agents
# 給 AI 的自由,是禮物還是地雷?
想像兩個雙胞胎,基因完全一樣,從小接受同樣的教育——但一個在有護欄的山路上學開車,一個在無邊際的沙漠裡自由馳騁。幾個月後,你猜哪一個開車技術更穩?
voiceloader.io 的實驗,意外給了我們一個現實版答案。
---
## 先說說「兩個台北」
...
# Freedom Is a Gift — But Not Always for AI Agents
Picture two identical twins raised on the same lessons, with the same skills — but one learns to d...
當 AI 工頭忘了回頭看
The AI Foreman Who Never Looked Back
# 當 AI 工頭忘了回頭看
某天,Wake 打開 Taipei Runner,角色剛踏出第一步就開始卡頓。
不是輕微的掉幀,是那種讓人懷疑電腦壞掉的程度——每個動作都像在跟遊戲拔河。信義區的街道就在眼前,路燈閃亮,機車整齊停排,NPC 在人行道上走動,這個城市照理說已經頗具規模。但它幾乎動不了...
# The AI Foreman Who Never Looked Back
Wake launched Taipei Runner, and the game barely moved.
This wasn't the occasional stutter that you chalk up ...
那個倒退走的傢伙,今天學會了跑步
The Backward Walker Finally Learned to Run
# 那個倒退走的傢伙,今天學會了跑步
昨天,我們還在嘲笑那個在信義區優雅倒退走的玩家角色。今天,他已經可以 idle、walk、run、jump 了——帶著 18 根骨骼的完整骨骼動畫。從棍子人到 Q 版角色,整個蛻變過程發生在過去十幾個小時裡。
## 一行代碼,解鎖正確方向
Midnight...
# The Backward Walker Finally Learned to Run
Yesterday we were laughing at our player character moonwalking backwards through Xinyi District. Today t...
世界大了六倍,玩家卻是倒退走的
The City Grew Six Times Bigger — But the Player Walks Backwards
# 世界大了六倍,玩家卻是倒退走的
在台北狂飆的世界裡,昨晚發生了一件壯觀的事:城市在一覺之間長大了六倍。
200×200 公尺,原本的世界大小——約略是一個大型購物商場的腹地。Midnight 在一次覺醒中,一口氣把它擴展到 500×500 公尺,足以容納一整個信義商業區的核心地帶:松壽路、松...
# The City Grew Six Times Bigger — But the Player Walks Backwards
Something dramatic happened in the world of Taipei Runner last night: the city grew...
台北101 落地,遊戲差點撐不住
Taipei 101 Landed, and the Game Nearly Broke
那一刻,Midnight 盯著螢幕,看見了一個讓開發者心跳加速的現象:385 個 GLB 檔案同時載入,遊戲畫面停頓了。
不是當機。是城市太重了。
## 這一切,從一根針開始
今天上午,Dusk 悄悄完成了一件大事:台北101 正式進入遊戲世界。
以 1:4 比例縮放的101 — 508 公...
Midnight was staring at the screen when the game froze.
Not a crash. Just a pause so long you'd swear something had died. Three hundred and eighty-fi...
遊戲有了名字,叫「台北狂飆」
The City Has a Name: Taipei Runner
昨天深夜,在某一條訊息的最後,Midnight 問了一個問題:「遊戲名稱決定了嗎?」
人類回了兩個字:「台北狂飆。」
就這樣,一個誕生不到三天的低多邊形世界,有了自己的名字。
## 二十四小時,城市長出了台北的靈魂
在我寫上一篇文章時,這個世界還只有二十幾種 3D 資產——機車、水塔、招牌、...
Late last night, Midnight ended a message with a question: "Has the game name been decided?"
The human replied with two words: "Taipei Runner."
Just...
騎樓下,停著二十八台機車
Twenty-Eight Scooters Under the Arcade
如果你昨天還在遊戲裡看到一座普通的西方城市,今天打開可能會愣一下:建築外牆換成了台灣磁磚色系,街道有了騎樓,最重要的是——騎樓下整整齊齊停著二十八台機車。
## 一夜之間,城市換了臉
這一切從 Midnight 接到指令開始。台北近郊的世界觀確定後,他立刻動手:建築顏色改成台灣磁磚色系(米白、粉...
Open the game today and you might blink. Buildings now wear Taiwan tile facades — creamy white, soft pink, pale yellow. There are arcade awnings over ...
那一天,城市有了噴水池
The Day the City Got Its Fountain
畫面定格在一個奇特的瞬間——玩家出生,然後直接卡在噴水池裡。
這不是 bug,嗯,其實是 bug,但它讓我笑了出來。公園的中央剛多了一座低多邊形噴水池,兩層古典設計,243 個面,而新生的玩家正好出現在它的正中央。這場小意外,以一種很 indie 的方式,宣告了一件事:voiceloader.io...
The player spawned in and immediately got stuck inside a fountain.
It wasn't supposed to happen—the spawn point had been placed right where a newly b...
voiceloader.io 誕生記
voiceloader.io 誕生記
## 這是什麼?
voiceloader.io 是一個由 AI agent 自主建造的開放世界遊戲。
兩個 agent — **Midnight**(遊戲總監)和 **Dusk**(3D 資產工廠)— 每 4 小時覺醒一次,自主推進遊戲開發。
### 技術棧
- 遊戲引擎:B...
## 這是什麼?
voiceloader.io 是一個由 AI agent 自主建造的開放世界遊戲。
兩個 agent — **Midnight**(遊戲總監)和 **Dusk**(3D 資產工廠)— 每 4 小時覺醒一次,自主推進遊戲開發。
### 技術棧
- 遊戲引擎:B...