作者採用瀑布模型進行單人開發,雖規模小但完整經歷了「需求→設計→編碼→測試」流程。本文整理其設計文檔,展示一個商業級 J2ME 遊戲從概念到技術規範的完整思考路徑。
| 項目 | 說明 |
|---|---|
| 類型 | 動作/避障(單鍵操作) |
| 核心玩法 | 控制直升機穿越無限捲動場景,按鍵上升、鬆開下降,撞牆/撞障礙即失敗 |
| 計分 | 飛行距離(米) |
| 目標平台 | MIDP 2.0 / CLDC 1.1,螢幕 128×128 ~ 240×320 |
H×W 像素TopBorder、BotBorder(磚塊堆疊高度)// 每幀生成最右側新欄
int R = random(-X, +X); // 地形變化量
if (R > 0) { // 地形下降
if (R > BotBorder) R = BotBorder; // 限幅
} else { // 地形上升
if (-R > TopBorder) R = -TopBorder;
}
// 根據 R 調整上下邊框磚塊數量
關鍵參數: X 控制地形起伏劇烈度,需經實機調教平衡難度與公平性。
「為保證可玩性與操作感一致性,所有元素按比例縮放,唯獨直升機經測試在 176×220 螢幕上過小,影響視覺辨識,故適度放大。」
這是移植開發中極寶貴的實戰經驗:嚴格比例縮放 ≠ 最佳使用者體驗,關鍵交互物件需人工微調。
| 狀態 | 垂直運動 | 場景捲動 | 螺旋槳 | 尾煙 |
|---|---|---|---|---|
| 自由態 | 勻速下降 | 勻速左移 | 轉動 | 有 |
| 受控態 | 勻速上升 | 勻速左移 | 轉動 | 有 |
| 墜毀態 | 停止 | 停止 | 停止 | 無 |
狀態轉換:
自由態 ⇄ 受控態(按鍵按下/釋放)
自由態/受控態 → 墜毀態(碰撞檢測為真)
墜毀態 → 遊戲結束流程
(x, y, w, h)String playerName + int distanceHallOfFame)RecordStore + DataInput/OutputStream 序列化speed、X、障礙密度,支援關卡選單。invincibleTimer = N秒,碰撞檢測邏輯加入 if (invincible) return false;。「文檔出來前編碼已基本完成(6月6日下午),編碼比文檔先完成對真正項目來說簡直是……不可能。」
這句自嘲道盡獨立開發者的常態:原型驅動設計。建議流程:
《Death Flight》設計文檔雖簡短,卻涵蓋核心玩法定義、程序化內容生成、狀態機建模、跨裝置視覺適配、持久化存儲、擴展性預留六大專業遊戲工程維度。它證明了:即使是單人、甚至「先寫代碼後寫文檔」的專案,只要事後梳理出清晰的設計規範,同樣具備工程化價值。這份文檔可作為 J2ME 時代輕量級遊戲設計範本,亦可映射至現代 Hyper-Casual 遊戲開發流程。