Scratch RPG 遊戲設計教學:帶孩子用程式打造角色扮演冒險遊戲
什麼是 RPG 遊戲?
RPG 就是 Role-Playing Game,角色扮演遊戲。玩家操控一個角色在遊戲世界裡冒險、跟 NPC(非玩家角色)對話、打怪物、撿道具、升等級。從經典的勇者鬥惡龍到寶可夢,這類遊戲之所以吸引人,是因為你會覺得自己真的在那個世界裡。
很多家長可能會想:「RPG 遊戲聽起來很複雜,小孩子做得出來嗎?」老實說,我第一次帶小朋友做 RPG 的時候也沒太大信心。但 Scratch 的積木式程式語言真的降低了非常多門檻,連小學三年級的孩子都能做出像模像樣的小型 RPG。
今天這篇教學會從最基礎的角色移動開始,一步步帶你和孩子建構出一個有對話、有戰鬥、有升級系統的完整 RPG 遊戲。過程中會學到變數、條件判斷、清單、廣播等重要程式概念——而且是在玩樂中自然吸收的。
專案設定:背景與角色準備
打開 Scratch,先來佈置我們的遊戲世界。
背景設定:建議先從一個簡單的場景開始,比如「村莊」。你可以用 Scratch 內建的背景,或者讓孩子自己畫一個。我推薦先用內建的,等遊戲能跑了再慢慢美化,不然光畫背景就花掉半天。
角色精靈:需要準備至少三個角色——
- 主角:玩家操控的勇者,建議選有多個造型的角色,方便做四方向動畫
- NPC 村民:站在村莊裡給任務或對話的角色
- 怪物:戰鬥時出現的敵人
每個角色都需要調整到適當大小。主角大概 50-60 的尺寸比較合適,太大會擋住背景,太小又看不清楚。
角色移動系統:四方向鍵盤控制
RPG 遊戲的第一步就是讓角色能動起來。我們要做的是按方向鍵時,角色往對應方向移動。
在主角的程式區塊中,用「當綠旗被點擊」開始,搭配「重複無限次」迴圈,裡面放四個「如果」判斷:
當綠旗被點擊
重複無限次
如果 按下 上移鍵 那麼
y 改變 (5)
end
如果 按下 下移鍵 那麼
y 改變 (-5)
end
如果 按下 右移鍵 那麼
x 改變 (5)
end
如果 按下 左移鍵 那麼
x 改變 (-5)
end
end
這裡有個小技巧:移動速度設 5 是比較舒服的數值。太快角色會飛,太慢玩起來卡卡的。讓孩子自己調整試試看,培養他們對數值的感覺。
如果想讓角色有面向不同方向的動畫,可以在每個方向的判斷裡加上「造型換成 [方向名稱]」。這需要事先在角色的造型編輯器裡畫好四個方向的圖。
NPC 對話系統:廣播與回應
RPG 沒有對話就不是 RPG。我們來做一個簡單但有效的 NPC 對話系統。
核心概念是用 Scratch 的「廣播」功能。當主角碰到 NPC 並按下空白鍵時,發送一個廣播訊息,NPC 收到後開始說話。
在主角的程式中加入:
如果 碰到 NPC村民 且 按下空白鍵 那麼
廣播訊息 跟村民說話
等待 (0.5) 秒
end
NPC 村民收到廣播後的回應:
當收到訊息 跟村民說話
說出 勇者啊!北方森林出現了怪物! (3) 秒
說出 請你去打敗牠,拯救我們的村莊! (3) 秒
說出 這把劍送給你,祝你好運! (2) 秒
廣播訊息 獲得道具
注意最後那個「獲得道具」的廣播——這就是遊戲事件的連鎖反應。NPC 講完話後觸發道具取得,這個設計模式在整個 RPG 中會反覆出現。如果你對 Scratch 的廣播機制還不太熟悉,可以先看看 Scratch 物理模擬遊戲教學裡的事件處理概念。
數值系統:HP、MP 與經驗值
RPG 的靈魂在於數字的成長感。我們需要建立幾個關鍵的變數:
- HP(生命值):初始值 100,被打會減少,歸零就 Game Over
- MP(魔力值):初始值 50,使用技能會消耗
- EXP(經驗值):打怪獲得,累積到一定數量就升級
- 等級:影響攻擊力和防禦力
- 攻擊力:初始值 15
- 防禦力:初始值 8
- 金幣:打怪掉落,可以買東西
在 Scratch 中建立這些變數,全部選「適用於所有角色」。然後在遊戲開始時初始化:
當綠旗被點擊
變數 HP 設為 (100)
變數 MP 設為 (50)
變數 EXP 設為 (0)
變數 等級 設為 (1)
變數 攻擊力 設為 (15)
變數 防禦力 設為 (8)
變數 金幣 設為 (0)
我建議讓這些變數在畫面上顯示出來,孩子可以即時看到數字變化。那個「數字跳動」的成就感對小朋友來說是非常強大的學習動機。
背包系統:用清單管理道具
Scratch 的「清單」功能非常適合做 RPG 的背包系統。清單就像一個可以存放多筆資料的容器,剛好可以拿來放道具。
建立一個清單叫做「背包」,然後在收到「獲得道具」的廣播時:
當收到訊息 獲得道具
添加 勇者之劍 到 背包
說出 獲得了勇者之劍! (2) 秒
變數 攻擊力 改變 (10)
你還可以做一個簡單的商店系統:NPC 商人賣藥水,用金幣購買後加到背包裡。使用藥水時從清單中刪除並回復 HP。這對孩子來說是很棒的邏輯練習——判斷金幣夠不夠、背包裡有沒有這個道具、使用後數值怎麼變。
回合制戰鬥系統
這是整個 RPG 最精彩的部分!回合制戰鬥的邏輯是:玩家先選動作(攻擊、防禦、治療),執行完換敵人行動,如此交替直到一方 HP 歸零。
攻擊、防禦與治療
當主角碰到怪物時,切換到戰鬥場景。我們可以用背景切換來實現:
如果 碰到 怪物 那麼
背景換成 戰鬥場景
廣播訊息 進入戰鬥
變數 怪物HP 設為 (80)
變數 玩家回合 設為 (1)
end
戰鬥中的選擇用按鍵來操作:按 A 攻擊、按 D 防禦、按 H 治療。
當收到訊息 進入戰鬥
重複直到 怪物HP 小於 1 或 HP 小於 1
如果 玩家回合 = 1 那麼
說出 選擇行動:A攻擊 D防禦 H治療 (1) 秒
如果 按下 a 鍵 那麼
變數 怪物HP 改變 (攻擊力 * -1)
說出 造成傷害! (1) 秒
變數 玩家回合 設為 (0)
end
如果 按下 h 鍵 那麼
變數 HP 改變 (30)
變數 MP 改變 (-15)
說出 回復了 30 HP! (1) 秒
變數 玩家回合 設為 (0)
end
否則
廣播訊息 敵人回合
等待 (1.5) 秒
變數 玩家回合 設為 (1)
end
end
敵人 AI 行為設計
敵人的行動可以用隨機數來決定,讓戰鬥有變化:
當收到訊息 敵人回合
變數 敵人行動 設為 隨機取數 1 到 3
如果 敵人行動 = 1 那麼
說出 怪物發動普通攻擊! (1) 秒
變數 HP 改變 ((12 - 防禦力) * -1)
end
如果 敵人行動 = 2 那麼
說出 怪物使用猛力一擊! (1) 秒
變數 HP 改變 ((20 - 防禦力) * -1)
end
如果 敵人行動 = 3 那麼
說出 怪物在蓄力... (1) 秒
end
讓敵人有三分之一的機率「蓄力」什麼都不做,可以給玩家喘息的機會,也讓戰鬥節奏更有趣。
升級系統與成長曲線
打贏怪物後獲得經驗值和金幣,經驗值累積到門檻就升級:
當收到訊息 戰鬥勝利
變數 EXP 改變 (25)
變數 金幣 改變 (10)
說出 勝利!獲得 25 EXP 和 10 金幣! (2) 秒
如果 EXP 大於 (等級 * 50) 那麼
變數 等級 改變 (1)
變數 攻擊力 改變 (5)
變數 防禦力 改變 (3)
變數 HP 設為 (100)
變數 MP 設為 (50)
說出 升級了! (3) 秒
end
背景換成 村莊
升級時回滿血量和魔力是 RPG 的經典設計,那個全部復原的爽感會讓孩子很期待每一次升級。
延伸挑戰:讓遊戲更豐富
基礎系統做完之後,可以帶孩子試試這些進階功能:
- 多張地圖:用不同背景代表不同場景,走到邊緣就切換。可以做村莊、森林、山洞、城堡。
- 多種怪物:用分身功能產生不同強度的敵人,森林的比較弱,城堡裡的比較強。
- 支線任務:不同 NPC 給不同任務,用變數記錄任務狀態(0=未接、1=進行中、2=完成)。
- 音效:攻擊時播放打擊音效,升級時播放勝利音樂。Scratch 內建的音效庫就很夠用了。
- 存檔點:用雲端變數儲存進度(需要 Scratch 帳號)。
想要更多遊戲設計靈感,可以參考 Scratch 音樂節奏遊戲教學,裡面的計時和節拍判定邏輯也可以融入 RPG 的戰鬥系統中。
學到了哪些程式概念?
做完這個 RPG 專案,孩子其實已經不知不覺學會了很多重要的程式設計概念:
- 變數(Variables):HP、MP、經驗值都是變數,學會了資料的儲存和修改。
- 條件判斷(Conditionals):如果按了什麼鍵就做什麼事、如果 HP 歸零就 Game Over,到處都是 if-else。
- 清單(Lists/Arrays):背包系統就是清單的實際應用,新增、刪除、查詢都練到了。
- 廣播(Event Broadcasting):角色之間的溝通全靠廣播,這其實就是「事件驅動程式設計」的雛型。
- 迴圈(Loops):遊戲主迴圈、戰鬥迴圈都用到了重複執行的概念。
- 隨機數(Randomness):敵人 AI 用隨機數決定行為,學到了程式中的「不確定性」。
- 狀態管理(State):玩家回合 vs 敵人回合、任務進行中 vs 已完成,這些都是狀態的概念。
這些概念在 Python、JavaScript 等「真正的」程式語言中完全一樣,只是語法不同而已。用 Scratch 先建立直覺,以後轉到文字程式語言會順利非常多。
如果孩子做完 Scratch RPG 還意猶未盡,想挑戰更專業的遊戲引擎,可以看看 Roblox Studio 遊戲開發入門,那會是很好的下一步。
最後提醒一下,做 RPG 遊戲最重要的是先求有再求好。先讓最基本的移動和戰鬥能跑,再慢慢加功能。千萬不要一開始就想做出曠世鉅作,那樣只會讓孩子(和你自己)挫折到放棄。從一個小房間、一隻史萊姆開始,享受每一步的成就感,那才是遊戲設計真正的樂趣所在。
繼續閱讀
Roblox Studio 兒童遊戲開發入門:從安裝到第一個 Obby 障礙賽完整教學
全球有超過 7000 萬人每天玩 Roblox,而 Roblox Studio 讓孩子從玩家變成遊戲創作者。本文帶你從安裝 Roblox Studio 開始,認識基本介面,學習搭建 3D 場景,最後完成一個可以讓朋友一起玩的 Obby 障礙賽遊戲。不需要任何程式基礎,跟著步驟做就能完成!
相關文章
你可能也喜歡
探索其他領域的精選好文