
經營遊戲的顧客行為邏輯(一般叫顧客 AI)只要守住三件事就能跑起來。座位不用數字算,而是一格只站一個人;有人站著的格子不要封死,而是在 A* 尋路裡加上權重 12;排隊只排在門外一列。這篇整理《網咖養成記》選這三招的原因、實測數字,以及還沒解決的問題。
每位顧客都帶著一份行程
每位顧客生成時,會抽到一份行程(itinerary)。行程的一格就是「使用某種設施一次」。因為是用種類名稱來寫,同一種設施不管有幾台,顧客都會從中挑一台。
網咖的行程只有一格。坐下來、用完離開就結束,是行程裡最單純的退化情況。如果遊戲完全沒給行程,系統會自動補上一份一格的行程:「隨便用一個設施就離開」。
行程有一個保險機制:下一格的設施店裡一個都沒有時,就直接跳過那一格。這樣顧客就不會為了等一個還沒蓋的設施,卡在原地動不了。
座位不是數字,是格子
一開始,替每個設施設定一個人數上限,看起來最省事。但用數字當上限的話,8 個人可能疊在同一個座標上。數字只知道有幾個人在用,不知道誰站在哪裡。
所以我們替每個設施指定一個使用格(interactionCell),一格只能進一個人。顧客選好目標設施的瞬間就先占住那一格,其他顧客占不到。不用另外寫人數上限,重疊也不會發生,因為結構上就排除了。
挑目標時,我們也不是平均抽選。平均抽的話,緊鄰座位的販賣機和房間另一頭的販賣機賣得一模一樣,不管怎麼擺,營收都一樣。要加上權重,擺放位置才會影響營收。

有人站著的格子不要封死,加上權重
路徑用的是四方向格子 A*。我們分開詢問:能不能站、能不能穿過、兩格之間能不能通行,最後再問通過這一格的成本。有顧客坐著的格子,這個成本是 12。
把人當成牆會更簡單。但這款遊戲的擺放檢查有個前提:「設施前面那一格也能通過」,靠這個前提保證房間不會被切斷。人一變成牆,前提就破了,在狹窄的房間裡顧客會整批餓著,當天營收變成 0。
改成權重之後,有繞路就一定繞過去,真的沒路才會硬擠過去。硬擠過去的畫面看起來很怪,但那是在提醒你沒留出通道,不是引擎的 bug。
路不是鋪一次就結束
本來以為加上權重 12 就好了,結果幾乎沒改善。原因是路會過期。顧客出發時算好的路,之後有人坐到路上,權重雖然有了,顧客還是照舊路走。
所以人的分佈圖每個 tick 都整張重填。用增量更新的話,只要某條路徑漏掉一次清除,就會留下幽靈把通道永遠堵住。走路中的顧客每個 tick 都會重新看下一格,被擋住就當場重算路徑。每位顧客每 0.2 秒一次。
重算後的路如果還是經過那一格,就直接走過去。讓他停下來的話,大家互相等待就會卡死。
我們在擁擠的擺放下跑了 40 秒,數「踩到站著的人的影格」。沒加權重前是 1,701,只加權重、不重算的狀態是 1,695,幾乎沒變。只加權重而不重算,幾乎什麼都改不了。問題的主因就是路會過期。

排隊只排在門外一列
沒座位的時候,如果讓顧客在店裡排隊,隊伍會堵住通道,尋路就亂掉。所以排隊一律排在門外一列。還沒進門的顧客站在門外的隊伍裡,已經進門的顧客不排隊,直接放棄這一步離開。有沒有座位,是在門前空地那一格詢問。以前是在入口那一格問,結果客滿時顧客會推開門走進來,又轉身走出去。
隊伍也不是能無限排。隊伍上限是「能站的格數」和遊戲設定上限(預設 4)兩者中比較小的那個。超過上限就不排,直接回頭;如果在走過來的路上就發現隊伍已滿,會在隊尾旁邊的人行道上轉身離開。
重點是不能默默把沒接到的顧客刪掉。放棄的顧客會做出放棄的動作、跳出彈窗,遊戲也會統計「在哪一種設施、因為什麼原因漏掉了」。瓶頸如果在畫面上看不到,玩家就沒有理由想到「再多放一台吧」。因為連流失發生了這件事都看不到。

排隊的顧客全部看向同一邊
做好排隊之後,收到了玩家回報(2026 年 9 月 19 日):「希望排隊的時候大家都面向同一個方向」。我們檢查後發現,朝向只在走路時才會決定。從人行道走上來的顧客面向牆壁,走到隊尾的顧客面向隊尾,被往前拉一格的顧客面向隊首,一列隊伍裡混著三個方向。
解法很簡單:到達排隊位置時,讓排隊的顧客全部面向隊首。門外的隊伍是沿著牆筆直的一列,所以大家方向一致。這次學到的規則是:每個停下來的位置,都要指定看向哪一邊。
排隊時我們讓身體不再動。本來用晃動身體來表現焦急,結果收到兩次「像在飄」「一個人在發抖」的反應,現在只留下呼吸的動作。
網咖有八成營收來自坐下之後
在行程裡網咖只有一格,但營收不會在那裡結束。行程的一格是「只去一次的地方」,不能重複,而坐著的顧客偶爾再點東西,發生在使用中掛鉤,不是行程。這些加點的訂單占了單日營收的八成。
所以顧客邏輯不只是座位能多快填滿,還跟坐下的顧客坐多久才點餐息息相關。同樣的道理,我們也做了一個選項:點的東西還沒送到時,就算停留時間結束,顧客也不會離開座位。
還沒解決的問題
走路中的顧客之間短暫重疊的畫面,目前還在。尋路只把「已經就位停下來的人」(使用中的顧客和隊伍內側)當成權重,走路中的人不放進分佈圖。因為讓走路的人互相閃避,在窄通道裡會變成面對面互相繞圈的死結。反正過幾個影格,他們就會離開那一格。
所以走路中的顧客互相重疊的影格,依規則視為正常。真要好好解決,要設計的不是閃開,而是讓路的順序,但那超出了目前的範圍。
FAQ
經營遊戲的顧客 AI 要怎麼做?
讓每位顧客帶著一份行程,一位位占住目標設施的使用格,路徑用 A* 尋路。有人站著的格子不要封死,而是加上較高的成本(這裡是 12);沒座位時就讓顧客排在門外一列。
經營遊戲裡的 NPC 要怎麼避免互相卡住?
不要把站著的人當成牆,而是當成權重放進去,並依這個權重不斷重算路徑。只加權重、不重算,幾乎沒有效果。在擁擠擺放跑 40 秒的實測裡,踩到站著的人的影格只從 1,701 降到 1,695。
遊戲裡的排隊隊伍排在店內還是店外比較好?
《網咖養成記》只排在門外一列。排在店裡會堵住通道,讓尋路亂掉。已經進門的顧客不排隊,直接放棄這一步,而放棄會被統計並顯示在畫面上。
顧客沒搶到座位就離開,直接刪掉可以嗎?
不可以刪。要顯示放棄的動作和彈窗,並依種類統計,玩家才能看出瓶頸,判斷「再多放一台吧」。
更多文章
比較溫泉與澡堂題材的遊戲8款,用商店標示比較溫泉、澡堂題材的遊戲,依 Steam、Google Play、App Store 原文標示排成一張表。價格、評價、是否放置、有沒有韓文與日文都列出,也寫了我們自己遊戲的弱點。
比較離線也能玩的放置經營手遊,用商店標示篩出的8款放置經營手遊哪些能離線玩?依 Google Play 與 App Store 原文標示,把標籤、說明、價格、廣告列成一張表,也寫出我們自己遊戲的弱點。
類似遊戲開羅遊戲玩完了:依喜歡的味道挑下一款,共14款玩過一輪開羅遊戲(Kairosoft)的人,下一款可以從「短時間慢慢養、經營小店照顧員工、看居民的人生、擺設搭配益智」四個方向挑。我們確認了14款遊戲的Steam定價、評價與介面語言。
比較網咖經營遊戲 2026,連 iPhone 也有的 17 款想找網咖模擬器?我們挑出 iPhone、Android、Steam 共 17 款網咖經營遊戲,附上直接在商店頁面讀到的價格、評分、離線標示,也寫出我們自家遊戲的缺點。