桌球遊戲原始碼:Sunset Rally 的檔案、物理與賽事
一款瀏覽器 3D 桌球遊戲,逐一打開檔案來看:物理、計分、巡迴賽和場地放在哪裡,該先改什麼。

如果你需要一套能自行架設、自由修改的桌球遊戲原始碼,Sunset Rally 是一款已完成的瀏覽器 3D 桌球(乒乓球)遊戲:九場比賽的巡迴賽、三位電腦對手、一間工坊,以及完整的 TypeScript 專案,定價 39 美元。game 資料夾已經建置完成,也沒有壓縮混淆,可以先上傳上線,之後再慢慢讀程式碼。
運動遊戲比外表看起來更難改,因為樂趣藏在物理和操控手感裡,而不是選單裡。這篇指南說明這些部分在 Sunset Rally 專案中的位置、哪些地方可以放心修改,以及這個版本沒有包含什麼。
這款桌球遊戲怎麼玩
每場比賽與一位電腦對手打到七分。玩家移動滑鼠游標或用手指拖曳來控制球拍,擊球是自動的。往上推會加力,左右移動決定落點,往下拉可以打出放小球,彈得高的球就是殺球的時機。
另有一個輔助功能,玩家可在比賽中隨時開關,它會幫球拍對準來球的高度。這對公開網站很重要:第一次用手機玩的人也能把球回過去。
三位電腦對手各有打法:沉穩的 Capi、愛玩的 Nori 和精準的 Miso,每位都有 Easy、Normal、Hard 三種難度。Training 模式提供一位每球必回的陪練。比賽結束後,重播會再播一次決定勝負的那一分。
桌球遊戲原始碼套件內容
- 可直接架設的 game/ 資料夾,已建置、未壓縮。
- source/ 內的 TypeScript 開發原始碼,附 Vite 設定與遊戲素材。
- 英文與葡萄牙文的圖解手冊,附實際截圖。
- 遊戲隨附的字型與音效檔。
- 第三方授權聲明與更新紀錄。
技術架構為 TypeScript、Three.js r184、Vite 與 WebGL2。檔案類型包括 HTML、CSS、JavaScript、TypeScript 與 JSON。介面提供 14 種語言:英文、葡萄牙文、西班牙文、法文、德文、義大利文、荷蘭文、波蘭文、土耳其文、俄文、印尼文、日文、韓文與簡體中文。手冊只有英文和葡萄牙文。
比賽以外的內容也都在套件裡:分三個階段、共九場比賽的 Sunset Circuit;三個場地(Sunset 花園、Sakura 花園與海邊咖啡館),可選早上、下午、夜晚或雨天;以及一間工坊,用贏來的金幣購買球拍顏色、膠皮、拍型、握柄、底板、護邊、貼紙,還有球與球桌的款式。
程式碼的各個部分在哪裡
手冊把遊戲的每個部分對應到一個檔案。動手修改時,建議把這份清單放在旁邊:
- Campaign.ts:巡迴賽的九場比賽與星星目標。
- Places.ts:每個場地的外觀。
- physics.ts:球和球拍的物理。
- match.ts:計分與比賽規則。
- i18n.ts:英文與葡萄牙文的介面文字;其他語言在 locales 資料夾。
- styles.css:選單與各畫面的樣式。
每場巡迴賽比賽最多三顆星:獲勝、打中三個角落、打出十拍的來回。總共 27 顆星,每完成一個場地還能拿到一項工坊獎勵。星星條件都集中在同一個巡迴賽檔案,想調整難易度時,不必在程式碼裡到處找。
桌球遊戲範本該先改什麼
我們建議依照以下順序,從低風險到高風險。
- 介面文字和遊戲名稱,在 i18n.ts 與 locales 資料夾。
- 顏色與畫面,在 styles.css。
- 工坊裡球拍、球和球桌的款式,讓裝備帶上你的品牌。
- 場地畫面,在 Places.ts。
- 巡迴賽比賽與星星目標,在 Campaign.ts。
- 物理與計分,在 physics.ts 和 match.ts,只有需要不同手感時才動。
手冊另外提了三條值得遵守的原則。解鎖 ID、物品 ID 和存檔鍵名要維持不變,否則玩家會失去已經拿到的東西。開始前先備份。一次只改一項功能,才知道是哪個修改造成了什麼結果。
可以白牌使用:用你或客戶的名稱和標誌取代我們的。
重新建置、架設與嵌入
只是要玩的話,完全不需要建置。把 game/ 的內容上傳到任何能提供靜態檔案的 HTTP(S) 主機,保留相對路徑,打開網址即可。不需要 PHP、資料庫或帳號。
要修改原始碼,需要 Node.js(建議 24 LTS)和 npm。修改 TypeScript,用 Vite 重新建置,再用新的輸出取代主機上的 game/ 資料夾。
瀏覽器需支援 JavaScript、ES 模組與 WebGL2。觸控和滑鼠都能操作,控制方式會依螢幕尺寸調整。效能取決於瀏覽器和裝置,請在玩家常用的手機上測試。
- 把 game/ 上傳到主機上的測試資料夾。
- 用電腦瀏覽器打一場,再用手機打一場。
- 在 source/ 修改文字與樣式,然後重新建置。
- 整個取代測試資料夾,再玩一次。
- 移到正式網址。
這個版本沒有包含什麼
這個版本是跟電腦對打:巡迴賽、自由比賽和練習。套件不含線上多人、線上房間、線上排行榜和雲端帳號,也沒有雙人模式。沒有任何廣告 SDK 或廣告帳號,也不包含原生 App 和主機代管。
進度存在玩家的瀏覽器裡:巡迴賽星星、成績、統計、重播和工坊物品。不使用伺服器或帳號,所以上線後沒有後台要維護。
如果你需要線上模式、遊戲平台 SDK、應用程式商店版本,或安裝到你的伺服器上,這些屬於另外的服務,依專案報價。
授權、支援與價格一次看懂
購買一次即取得一份永久、非專屬的授權,可用於一個最終產品(你自己的或一位客戶的),玩家可免費遊玩,也可透過廣告營利。你可以在該產品內修改程式碼、美術和音效,但不能單獨轉售或分享範本、原始碼或素材。技術支援為 6 個月,結帳時加購延長可達 12 個月,內容包括檔案的安裝與使用,以及修正可重現的錯誤;客製化、主機代管和 SDK 或遊戲平台串接另行報價。定價 39 美元;2026 年 11 月 30 日前,黑色星期五活動全部範本 85 折,Sunset Rally 只要 33.15 美元,12 月 1 日起恢復原價。
常見問題
使用這款桌球遊戲需要先建置嗎?
不需要。game/ 資料夾已經建置好。把內容上傳到靜態網站主機,打開網址即可。只有修改 TypeScript 並重新建置時才需要 Node.js 和 npm。
有雙人或線上模式嗎?
沒有。這個版本在巡迴賽、自由比賽和練習中與電腦對打。
可以修改巡迴賽和星星目標嗎?
可以。比賽和星星條件都在 Campaign.ts。改完後用 Node.js 重新建置。
可以改變球的行為嗎?
可以。物理在 physics.ts,計分規則在 match.ts。一次只改一個地方,並跟每位對手測試。
手機上可以玩嗎?
可以,觸控操作會依螢幕調整。需要 WebGL2,效能取決於裝置,請在目標手機上測試。
進度存在哪裡?
存在玩家的瀏覽器裡。不使用伺服器或帳號。
可以一起比較的其他運動範本
如果你要替網站打造運動遊戲專區,還有兩款範本很適合跟 Sunset Rally 擺在一起。Velvet Pool 是八號球撞球遊戲,有電腦對手和本機雙人模式,以原生 JavaScript 和 WebGL2 撰寫,定價 39 美元。Puttide 是有 30 洞的 3D 迷你高爾夫遊戲,以 Three.js 和 Rapier 打造,定價 39 美元。兩款都有 14 種介面語言。
Sunset Rally 適合想要短局運動遊戲的遊戲入口網站和一般網站、替單一客戶交付品牌遊戲的工作室,以及想找一個易讀的 TypeScript 與 Three.js 專案來學習或擴充的開發者。如果你需要同一台裝置上的雙人對戰,Velvet Pool 有這個模式,Sunset Rally 沒有。
同一筆訂單購買兩款以上範本,每份授權都會更便宜:兩款折 5%,三款折 10%,四款折 15%,五款以上折 20%。
