Underground 2 Revived
Play Need for Speed: Underground 2 (2004) in Chrome and Firefox with WebGPU graphics, Web Audio, up to 120 fps widescreen, controller support, free roam and Online races with friends. Fan project, not
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证比斯泰德 Beastidal — 社畜轉生御獸師:海上生存、御獸培育、五層戰艦的 3D 瀏覽器遊戲 · https://beastidal.yzprojecttw.com
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
第一章可玩原型:大學畢業後騎機車上班的主角,在砂石車碰撞後轉生到海洋異世界,並逐步發現海底隆起的新生礁島。通勤、碰撞與轉生以可跳過的即時 3D 動畫呈現。 手把使用瀏覽器 Gamepad API 的標準配置,需瀏覽器可辨識該手把。在電腦 USB/藍牙或手機藍牙連線後,按一下任意手把按鈕啟用。不同瀏覽器、裝置與手把的相容性仍需實機驗證。 打撈漂流木、金屬、纖維、異晶、口糧與水,擴建兩格地基、避難所、蒸餾器與遠洋訊號塔完成第一章。生命、水分與飽食形成生存循環,危險生物可用船槳驅離,失去意識時返回木筏並損失部分木材和金屬。 東北方研究浮標解鎖隱藏共生任務。建造海洋展示池後投餌,建立信任並馴化生物。每池三個名額,孵育卵也會預先占位。馴化生物會在池中游動展示並依基因能力提供物資或防護。 建造基因孵化台,選兩隻不同的個體,消耗一份異晶與兩份口糧,三十秒後孵化。每台可同時培育兩顆卵。後代可繼續交配。 16 個基因座,每個有兩個 0–255 的等位基因。後代每個基因座各從兩親代隨機繼承一個等位基因,再對各等位基因以 4.5% 機率突變。以 256^32 個有序編碼構成龐大的有限空間,不宣稱数学上的無限,也不宣稱每個編碼都有完全獨特的外觀。身體、鰭、尾巴、觸角、眼睛、紋路、色彩、光度和體型控制 3D 模型;能力基因影響生產與防護。查看完整 README ↗
第一章可玩原型:大學畢業後騎機車上班的主角,在砂石車碰撞後轉生到海洋異世界,並逐步發現海底隆起的新生礁島。通勤、碰撞與轉生以可跳過的即時 3D 動畫呈現。
| 動作 | 鍵盤與滑鼠 | 手機 | 標準配置遊戲手把 |
|---|---|---|---|
| 駕艇 | WASD / 方向鍵,或點海面航行 | 左側虛擬搖桿,或點海面 | 左搖桿 |
| 環視 | 第三人稱右鍵拖曳;第一人稱移動滑鼠,Esc 釋放游標 | 在海面拖曳 | 右搖桿 |
| 縮放第三人稱 | 滾輪 | 雙指 | 十字鍵上下 |
| 第一/第三人稱 | V 或畫面按鈕 | 視角按鈕 | R3 |
| 登岸/登艇 | Q | 「登上避難所/登艇出海」按鈕 | LT |
| 打撈/調查/投餌 | E | 互動按鈕 | A |
| 驅離 | 空白鍵 | 驅離按鈕 | RT |
| 建造 | B | 建造按鈕 | X |
| 隨身裝置(背包、狀態、御獸倉庫…) | I | 裝置按鈕 | LB |
| 日誌 | J | 日誌按鈕 | RB |
| 共生研究 | C | 共生按鈕 | Y |
| 返航 | H | 返航按鈕 | 左搖桿按下 |
| 暫停/返回 | Esc | 暫停/返回按鈕 | Start / B |
| 選單 | Tab、Enter、方向鍵 | 觸控 | 十字鍵上下選項、左右切换親代、A 確認 |
| 建造放置 | 點擊格子;R 旋轉 | 點擊格子;旋轉按鈕 | 左搖桿選格、A 放置、X 旋轉 |
手把使用瀏覽器 Gamepad API 的標準配置,需瀏覽器可辨識該手把。在電腦 USB/藍牙或手機藍牙連線後,按一下任意手把按鈕啟用。不同瀏覽器、裝置與手把的相容性仍需實機驗證。
打撈漂流木、金屬、纖維、異晶、口糧與水,擴建兩格地基、避難所、蒸餾器與遠洋訊號塔完成第一章。生命、水分與飽食形成生存循環,危險生物可用船槳驅離,失去意識時返回木筏並損失部分木材和金屬。
東北方研究浮標解鎖隱藏共生任務。建造海洋展示池後投餌,建立信任並馴化生物。每池三個名額,孵育卵也會預先占位。馴化生物會在池中游動展示並依基因能力提供物資或防護。
建造基因孵化台,選兩隻不同的個體,消耗一份異晶與兩份口糧,三十秒後孵化。每台可同時培育兩顆卵。後代可繼續交配。
16 個基因座,每個有兩個 0–255 的等位基因。後代每個基因座各從兩親代隨機繼承一個等位基因,再對各等位基因以 4.5% 機率突變。以 256^32 個有序編碼構成龐大的有限空間,不宣稱数学上的無限,也不宣稱每個編碼都有完全獨特的外觀。身體、鰭、尾巴、觸角、眼睛、紋路、色彩、光度和體型控制 3D 模型;能力基因影響生產與防護。
存檔使用此裝置此瀏覽器的 localStorage,每 8 秒及重要行為後自動保存。不同手機、電腦之間不會同步;清除瀏覽資料會移除進度。暫停及切出分頁時停止遊戲時間。需要支援 WebGL 2 的瀏覽器,建議開啟硬體加速。
0.2 版新增小艇停泊、角色登岸、木筏步行與登艇。木筏邊緣會阻止角色走入海中,展示池不視為可行走地面;集水器和孵化台具有步行碰撞。舊存檔會自動補上移動狀態。手機以橫屏配置左右拇指操作區、中央快捷列與瀏海安全邊界;直向時顯示旋轉提示並暫停,橫放後恢復。全螢幕與方向鎖定使用能力偵測,不支援的瀏覽器仍可手動橫放遊玩。
純靜態 HTML/CSS/ESM,所有遊戲依賴隨檔提供,沒有 CDN、伺服器資料庫或付費 API。dist/ 為網站內容。程式模組:world.js 即時 3D 與動畫、game.js 輸入/UI/流程、rules.js 生存與經濟、genetics.js 基因、navigation.js 停泊與步行、mobile.css 橫屏介面。
使用任何靜態 HTTP 伺服器提供 dist 目錄。模組無法透過 file:// 直接開啟。
npm ci # 安裝開發工具(Prettier、ESLint、Playwright…)
npm start # http://localhost:8080
npm run verify # 格式、Lint、語法、單元測試、翻譯完整度、瀏覽器冒煙測試
GitHub Actions 每次 push 都會跑同一套檢查。dist/dev/creatures.html 是御獸圖鑑的開發者展示頁。
第三方圖形庫 Three.js 0.180.0,MIT 授權,授權文件在 dist/vendor/THREE-LICENSE.txt。
此版本是一章原型,尚未包含多人連線、跨裝置雲端存檔、完整配音及長篇劇情。真實手機 GPU 效能與個別手把相容性需要實機測試。
驗證:21 項規則/模型測試,另以模擬 DOM 驗證設施點擊、取水、滑鼠位移、航線選單、孵化、手把與橫屏流程;DOM 測試使用繪圖替身,未代替真實手機、GPU 或滑鼠鎖定權限的實機驗證。
每池最多 3 隻,孵育卵預留入住名額。共生研究的展示場頁籤與展示池點擊面板可選目的池搬移;若目標已滿,可指定另一隻生物互換。住處使用池子座標識別並隨存檔保存,孵化後保留預約池。舊存檔自動分配空位,超額生物保留為待安置(不擠入模型展示),增建池後自動安置;基因不變。
點擊展示池只顯示該池住民、該池住處操作與該池預留幼體;全體名單保留在共生研究。空池不會列出其他池住民。桌面面板與對話框加寬至最多 760px,字級與生物預覽同步放大;手機橫屏面板接近滿屏、內容可捲動且保留安全邊界。本次修改以 ZIP 交付,線上版未同步更新。
點擊展示池,在面板上方輸入名稱並儲存;最多 16 個字。名稱同步到展示池標題、互動提示、住處與搬移選單、幼體預留資訊,並隨進度自動儲存。不更改池子識別碼或住民安排。留白、過長與重複名稱會顯示原因。
此包整合 0.4.2 的池名、每池 3 隻、個別池面板與放大彈窗,以及以下新玩法;依然是單人瀏覽器原型。未更新線上 Site。
按 K 或「御獸遠航」開啟管理。一次出戰一隻,出戰不釋放原展示池名額。
| 羈絆 | 解鎖 |
|---|---|
| 15 | 跟隨、協助採集 |
| 30 | 攻擊敵對生物、守護協戰 |
| 35 | 可作為雜交親代(兩親代皆需達標) |
| 45 | 海上騎乘 |
| 60 | 騎乘深潛至 8 公尺 |
| 85 | 完成遺跡與海怪挑戰後,花 12 異晶喚醒契印 |
野生投餌每次信任 +5~10,間隔 18 秒,約需 10~20 次;連點不會消耗第二份誘餌。馴化與舊存檔夥伴的初始羈絆為 10,原有基因和池子分配保留。訓練花 2 口糧+1 異晶,羈絆 +4、耐力與體力各 +15,冷卻 90 秒。出戰同行每分鐘 +0.75;成功協採 +1。通常需持續培養十餘分鐘才會解鎖騎乘,具體取決於訓練與採集頻率。
協採每 45 秒嘗試一次:海上回收附近 12 公尺漂流物;島上回收身旁 4 公尺的可用採集點。守護模式會對附近敵對生物自動攻擊。攻擊消耗耐力,回池可恢復耐力與體力。已派出夥伴的狀態在畫面顯示。
T 騎乘/解除、G 潛水/浮上、F 夥伴攻擊;手機使用畫面按鈕。手把 RT 在有夥伴時改為攻擊,沒有夥伴時維持驅離,Select 開啟御獸面板。小艇停留在出發處;H 可標記返回小艇,回到 7 公尺內才可解除騎乘。此版需先回小艇再登島,尚不支援直接從坐騎登陸。深潛氧氣最多 90 秒,耗盡自動浮上;騎乘耐力耗盡會緊急返回小艇並損失 8 體力。
形態基因不再以雙親數值取平均決定單一種類。主體使用來自第一親代的形態等位基因,第二親代的等位基因決定追加翼膜、龜甲、觸鬚傘膜或尾刃;後代仍可把繼承的形態傳下去。多眼、晶觸角、骨棘、發光絲帶等強化突變感,且依基因改變。現有基因資料不重抽。契印覺醒加上環形靈光與攻擊 +12;完整幻獸進化樹、專屬稀有種與多技能配置尚未加入。
B 建造:新增二樓地板、樓梯、椅子、工作餐桌、晶光燈。施工樓層可切換。先在既有地基上蓋二樓地板,再在同格空間放樓梯;走近並點擊樓梯上下樓。此版本最多兩層。
家具可放在兩層:椅子以 1 口糧恢復 15 體力、餐桌開啟背包與工作功能、晶燈可開關。建築面板的「移動/拆除建築」可輸入整數格位搬移;展示池連同名稱與住民一起移動。地板、樓梯以拆除重建調整。建造面板底部列出所有建築,包含不能直接點選的地板。拆除需再點一次確認,回收各材料向下取整約 50%;有住民或預留幼體的展示池不能拆除,地基不可切斷木筏,二樓不可拆掉玩家腳下地板。
御獸遠航的「航務與遺跡」頁可標記探索點。
世界每 480 秒循環,約第 288~365 秒為風暴期(0.12.1 起一天改為 1200 秒,風暴期同樣在一天的 60%~76%)。海上每 10 秒遭受船體衝擊傷害,岸上可避風;雨點與光線同步變化。小艇最高 3 級,每級增加航速 0.7 並降低風暴傷害 1.5,也減少海怪衝擊。升級需返回避難所 20 公尺內並支付木材、金屬及異晶。面板會列出當級費用。
30 項規則/模型/存檔測試通過。以模擬 DOM 檢查派出、騎乘、下潛、浮上、回船、升級、池名、住處與原有玩法。另建立實際 Three.js 場景檢查海面、騎乘、深潛、步行、二樓、洞窟的幾何與鏡頭座標。這些檢查使用繪圖替身;未宣稱已完成真實 GPU、手機效能或實體手把測試。
線上版:https://beastidal.yzprojecttw.com
驗證:38 項規則測試(新增 8 項戰艦/占領/上限/獨白測試),並在瀏覽器實際檢查各甲板、掌舵航行、建造選單與島嶼畫面。手機實機與實體手把未測。
為上架網站版、Google Play、Steam 做準備。各平台的打包方式、Google OAuth 設定步驟與原生橋接介面見 docs/PLATFORMS.md。
manifest.webmanifest 與 service worker(sw.js),HTTPS 網站可安裝成 App,離線也能玩。之後也可以用 Trusted Web Activity 上架 Google Play。appDataFolder(應用程式專用的隱藏資料夾,遊戲讀不到其他檔案)。dist/config.js 填入 Google OAuth 網頁用戶端 ID。留空時只有單機模式,也不會載入任何 Google 程式。npm test 全部通過,新增 6 項存檔協調、Drive 用戶端(模擬 API)、太陽時鐘與畫質設定測試。另以模擬的 Google 登入與 Drive API 在瀏覽器實測:訪客遊玩→登入上傳、新裝置登入下載、雙邊衝突選擇、登出。並截圖檢查正午、黃昏、夜間暴風與第一人稱地平線畫面。真實 Google 帳號登入要等填入用戶端 ID 後才能驗證;手機 GPU 效能仍需實機測試。
dist/physics.js),小艇會隨浪起伏、前後俯仰、左右搖晃。第一人稱坐船時視角也會跟著浪起伏。暴風會漸強漸弱,不再瞬間切換。dist/audio/music/CREDITS.md:
npm test 全部通過,新增 5 項物理測試:波浪連續性、浮力姿態、船的慣性與滑行、生物連續逃離、航跡記錄。?debug 會開啟測試用的模擬步進介面。暫停選單與標題畫面都有「⚙ 設定」。設定只存在這台裝置,可調整:
npm test 全部通過,新增 7 項:提示換字、教學進度。dist/i18n/en.js,以中文原文為鍵。npm run i18n:check 會列出還沒翻譯的字串,CI 也會檢查。ACH_<ID>),之後接上 Steam 版即可同步。劇情、釣魚、天氣、季節、戰鬥系統與「帶御獸進入異域裂縫地下城修煉」都整理在 docs/ROADMAP.md。自適應畫質等畫面精緻度提升後再做。
npm run verify 全部通過:格式、Lint、單元測試(新增圖鑑、成就、統計、存檔槽、陸棲御獸、翻譯、離線快取)、翻譯完整度(1214 句全部有英文)、瀏覽器冒煙測試。?temper=255 看每個物種最兇的樣子。npm run verify 全部通過,新增測試:
和設施互動不再跳出一大塊文字面板。按「操作」(E/手把 A/點擊建築)之後,鏡頭會拉近到那個東西,畫面下方只留一張小卡片和幾個動作鈕。
共通操作:
?debug 會略過開場,讓自動測試直接開始。index.html 的 #splash;動畫寫在 beastidal.css。dist/human.js,全部用程式生成,不需要外部素材:
dist/dev/human.html,並排顯示站立、走路、奔跑、坐姿;加上 ?face=1 可以看臉部特寫。「船隻停靠站」要占領第一座島嶼後,才會出現在建造選單裡。
連續投餌:不用再每 18 秒等一次,可以對同一隻野生御獸一直餵。每次投餌要的誘餌越來越多:第 1 次 1 份、第 2 次 3 份、第 3 次 5 份……依此類推。
信任度隨機增加:每次投餌,信任度隨機 +8% 到 +30%。稀有度決定「最多餵幾次一定滿」:
| 稀有度 | 最多要餵 | 最多要的誘餌 |
|---|---|---|
| 常見 | 6 次 | 36 份 |
| 少見 | 7 次 | 49 份 |
| 稀有 | 8 次 | 64 份 |
| 罕見 | 9 次 | 81 份 |
| 傳說 | 10 次 | 100 份 |
餵到上限那一次,信任度一定會到 100%;運氣好的話會更早滿。
稀有度怎麼算:淺海種最常見;陸棲、深淵、植生突變依序更稀有;強烈生物光、混種血統再各加一級。
特別親人的個體:每一隻新出現的野生御獸,有 0.9% 機率特別親人。第一次餵就 +90%,身上帶淡淡的金色微光;靠近時提示會寫「似乎特別親人」。
跟著你走:信任到 100% 後,牠會一直跟在你身後。陸棲御獸在你出海時會跳上船頭。
契約書:在工作桌做好,放進背包帶著走
舊存檔:照舊規則累積的信任度,會換算成對應的投餌次數。
dist/models/protagonist.glb)。dist/models/protagonist-female.glb)。Business_Male_06 與 Business_Female_04,MIT 授權,詳見 dist/models/CREDITS.md。scripts/avatars/:把 Rocketbox 的 FBX 轉成 GLB,把骨骼改名成 Mixamo 名稱,並烘焙動作。用法見檔案開頭的說明。dist/dev/human.html:
?look=female 看女主角?proc 看原本程式生成的人物按「操作」進入建築時,鏡頭不再飛過去:
畫面底部只剩一條橫列:建築名稱、「管理」、「離開」。
其他操作都放到建築裡的物品上:
各建築裡可以點的東西:
| 建築 | 物品 | 動作 |
|---|---|---|
| 帆布避難所 | 床鋪 | 睡覺(夜晚)、躺下休息 |
| 集水蒸餾器 | 儲水桶 | 取出淡水 |
| 遠洋訊號塔 | 訊號塔 | 掃描島嶼訊號、島嶼航線 |
| 基因孵化台 | 孵化槽 | 基因配對與孵育 |
| 工作餐桌 | 工作檯 | 製作契約書、製作誘餌 |
| 漂流書桌 | 破舊筆電 | 卡片上直接顯示筆電畫面 |
| 漂流書桌 | 隨身裝置 | 拿起(拿走後標記消失) |
| 海洋展示池 | 池裡的每一隻御獸 | 默契訓練、帶牠出發/回池、改名、換展示池 |
進避難所時,主角會走進帳篷、面向床鋪。第三人稱時帳篷頂會掀開,看得到裡面。
點到別的設施,會直接換成那個設施。走開也會離開建築。
dist/clock.js:DAY、dayOf、hourOf、isNight、nextMorning。完整的分階段計畫在 docs/UPGRADE-PLAN.md。
這一版是重玩完整流程後的節奏調整。scripts/pacing.mjs 是一個照真實規則、跟著內心獨白一步步玩的機器人。用它從新遊戲玩到握住戰艦舵輪:
| 0.40 | 0.41 | |
|---|---|---|
| 到達掌舵 | 4 小時內到不了(卡死) | 機器人約 13–15 分鐘 |
| 打撈次數 | 200 次以上 | 約 55–66 次 |
| 背包已滿 | 4000 次以上 | 0 次 |
機器人比真人專注、快約三倍,換算真人大約 40–50 分鐘。tests/pacing.test.mjs 用四個種子守住這個範圍。
劇情的完整設定在 docs/STORY.md。這一版只在第一章埋線索,不說破。
tests/echoes.test.mjs(7 項):回聲解鎖順序、零件來源、修理、舊存檔補件、新結尾。第二章(上)。設定與線索整理在 docs/STORY.md。
tests/town.test.mjs(5 項):城牆與建築碰撞、進出城、見過晴才開放的設施、每日配給、每週家書、第二章(上)的結尾。設定與線索整理在 docs/STORY.md。
在留言碑按 E 打開,有四個分頁:
用了某些詞的留言,隔天會被慈愛組織移除。
其他居民目前是模擬的。想改成真的玩家互傳,照 docs/COMMUNITY.md 在 Cloudflare 部署 Worker 和資料庫,再設定 dist/config.js 的 communityUrl。
tests/dome.test.mjs(7 項):野外的邊界、河與橋、樹木碰撞、鳥群路線、破綻、片語、每日上限、審查、漂流信、線上用戶端。tests/chapter2.test.mjs(5 項)。在 Chromium 實際跑過「穹頂之外」結局。docs/2D外包素材清單.txt。tests/chapter3.test.mjs(6 項),包括戰鬥平衡:好好運用戰術時勝率超過九成,只按猛攻勝率比較低。tests/chapter3.test.mjs 增加到 8 項,涵蓋第二、三層、晴的卡、橋、舊存檔。在 Chromium 實際打過一次第二層。戰艦三級:比斯泰德號融合後為 1 級。在「御獸遠航 → 航務與遺跡」頁升級(需登上戰艦)。每級提高航速、縮短艦砲裝填、降低船體受到的傷害,並擴大貨艙:
| 等級 | 航速 | 艦砲裝填 | 船體受傷 | 貨艙上限 |
|---|---|---|---|---|
| 1 | 1.00× | 5 秒 | 40 % | 300 |
| 2 | 1.15× | 4 秒 | 34 % | 420 |
| 3 | 1.30× | 3 秒 | 28 % | 560 |
升到 2 級需 木 35、金 22、晶 8;升到 3 級需 木 50、金 32、晶 12。舊存檔的戰艦自動視為 1 級,數值與之前相同。
驗證:npm test 含 tests/warship.test.mjs(規則);npm run smoke 含 tests/ui-warship.mjs(真實建置在瀏覽器中按下升級鈕)。
交付:npm run package 產生 build/beastidal-web-<版本>.zip(電腦版下載包)與 build/site/(網站部署資料夾,即 dist/)。
server.mjs 送出 ETag 與 Last-Modified。湖面計算的 Worker 會再請求一次 lake-data.js,以前是完整重新下載,現在只回 304。單次載入的 lake-data.js 傳輸量從 929 KB 降到 465 KB。另補上 png、webp、glb、m4a、ogg 的檔案類型。scripts/playtest.mjs 改為每一幀都完整渲染並等 GPU 完成後才計時,繪製數量改為累計整幀。預設量 12 幀,可用 PLAYTEST_FRAMES 調整。舊版只量到後製的全螢幕方塊(1 次繪製、2 個三角形),數字不可用。用 Blender 重做的模型:小艇、避難所(屋頂可掀開)、集水器、展示池、孵化台、訊號塔、木筏地板、樓梯、椅子、桌子、燈柱、書桌、停靠站,共 13 個。
製作方式:建模腳本在 scripts/blender/,用 Blender 的 Python 模組 bpy 產生,輸出到 dist/models/props/*.glb。重新產生的指令是 npm run models,需要先安裝 pip install bpy==5.2.2(Python 3.13)。
外觀:頂點著色,並把環境遮蔽烘焙進顏色。依材質分組(木頭依紋理方向、甲板、繩索、布、金屬),進遊戲後套用原本的表面效果(木紋、甲板縫、織紋、鏽斑)。模型不使用貼圖檔。
保留給遊戲控制的部分:小艇上的人物、旗子與船尾燈;避難所的燈籠與吊燈;集水器的水位計;孵化台的玻璃罩、蛋與螢幕;訊號塔的燈與光束;燈柱的水晶;書桌的筆電與手持裝置;停靠站的燈泡。這些會發光、移動或可被拿走,所以仍是程式模型。
載入失敗時:模型在背景載入,載入前或載入失敗都會顯示原本的程式模型,遊戲照常運作。
效能(同一個擺滿設施的木筏,平衡畫質,headless Chromium 軟體渲染):
| 原本的程式模型 | Blender 模型 | |
|---|---|---|
| 整幀繪製次數 | 1,813 | 658 |
| 木筏上的網格數 | 666 | 101 |
| 整幀三角形 | 約 240 萬 | 約 235 萬 |
一塊木筏地板原本有 35 個網格,現在只要 3 次繪製。
驗證:tests/props.test.mjs 用遊戲本身的 GLTFLoader 解析每個模型,檢查顏色格式、材質名稱、邊界(防止方向、比例錯誤)、三角形數與檔案大小。
以前同一種體型的 4 個亞種共用同一個身體,只有顏色不同。現在每一種都有自己的體型比例和招牌特徵,不看顏色也分得出來。基因、存檔和繁殖規則都沒有改變。
dist/dev/species.html 一次顯示全部 64 種(?top=1 改成俯視,和遊戲鏡頭相同)。surfaces.js。town.js 原本的範圍;Blender 腳本透過 node 直接讀 town.js 的配置,不會跟遊戲的碰撞範圍對不上。新的長椅和花台有碰撞,也避開了所有門口和任務點。scripts/blender/town.py,執行 npm run models 重新產生;tests/props.test.mjs 會檢查兩個模型的邊界、材質、面數與檔案大小。ui.css)。在隨身裝置或御獸倉庫裡按「放生」「解約」,確認視窗會出現在最上面。以前視窗開在倉庫下面,遊戲卻已經暫停,看起來像當機。tests/rules.test.mjs 繞每座島一圈、加上環湖山腳檢查。/ios/,下載描述檔並安裝後,主畫面會出現「比斯泰德」圖示,點開即全螢幕遊玩。npm run ios 產生,dist/_headers 指定正確的檔案類型,Safari 才會提示安裝。npm run exe 會產生 build/Beastidal-<版本>.exe(Node SEA,約 114 MB)。localhost:8765。/test/:同一頁有 Android APK 和 iPhone 描述檔。
/ios/ 會轉到這一頁。android/,npm run apk → dist/download/beastidal.apk,約 200 KB):
/ios/ 這類頁面時,會把它存成離線用的首頁;現在只快取遊戲本身。world.js 改寫這段著色器,算不出來時退回原本的法線。dome-map.js 會畫出整個穹頂:地勢、河和橋、樹林、城牆與建築、往山口的小路、穹頂的邊界;穹頂被撕開後,連外面的荒原一起畫。countryside.js):
interiors.js、interior-models.js):
rift-fight.js):
tests/rift.test.mjs 讓一個只會走過去一直揮、不閃避的機器人實際打完。結果是:
chapter4.js,劇情寫進 docs/STORY.md):
scripts/blender/warship.py,輸出 dist/models/props/warship.glb):船身、五層甲板(材料艙、糧水艙、御獸休息室、主甲板砲列、駕駛室)和駕駛室外殼,照遊戲原本的船身曲線與甲板高度一比一建模,並烘焙了環境光遮蔽(陰影更有立體感)。tests/props.test.mjs 加上戰艦的邊界、面數、檔案大小與七個部分的檢查。endings.js):最後一天過完之後,翻過群山回到裂縫的核心,橋會讓你選:
memories.js):
farewell.js):
docs/STORY.md 加上第四章(下)的完整方向:嘯岳的過去、回去的代價、最後一天、三條路與依羈絆演出的尾聲。