怪獸流浪兒

【遊戲介紹】

下大雨了,出門遠行的阿尼想找間屋子躲雨,屋主比利不但好心地收留他,還提供了他晚餐
但是,阿尼吃著吃著卻覺得昏昏欲睡,清醒後的阿尼發現自己在一間陌生的房間裡,而房門卻壞了無法出去,不知該如何是好的阿尼,想要找到屋主比利,告訴他房門壞了,但在這之前他得先想辦法離開…



【遊戲連結】



【心得】

參加新一代設計展時,以為解謎遊戲在展場會比較不受歡迎,結果有好多人為了玩到好結局(有8種結局,1好2普5壞),花了好多時間玩,讓我覺得又驚又喜!
原來我們的遊戲被很多人喜歡,可以帶給這麼多人歡樂,這就是給我們最大的肯定了😁



【Github】



【筆記】

解謎遊戲最重要的就是謎題和劇本,主要的功能如下:

  1. 對話系統
    食物也瘋狂的對話基本上差不多,只是這次改成一句一句地呈現,並且加上一些參數來做狀態判定
    如果有需要特別的事情,像是結束、或讓角色講到一半做些特別的表現就可以利用參數的不同進行調整
    a. 參數意義:說話的人, 說第幾句話, 下個要說話的人, 下個人說的話是他的第幾句話, 說話內容

    csv格式mainTalk.csv
    1
    2
    3
    4
    bird,1,yellow,6,唷!
    yellow,6,bird,2,唷!
    bird,2,yellow,7,你在這裡做啥?
    yellow,7,bird,3,噢,我是在各處旅行的途中,因為飛行器壞了,又剛好遇上

    b. 從主程式持續呼叫talk,直到對話結束

    talktalk.cs
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public void nextTalk() {        //依據參數來判斷下一次要做什麼事情  
    if (nextName != "0" && nextParagraph.ToString() != "0")//1.special, 2.normal
    {
    setSpecialTalkBehavior();//說話 or 說話+做事情
    }
    else //1.talk end 2.set talk num
    {
    setTalkBehavior();//儲存data
    GameManager.game.Player.Playerstate = Player.PlayerState.idle;
    GameManager.game.Player.OnItemEndTalked();
    GameManager.game.Setactive(GameManager.game.TalkUI, false);
    }
    }
  2. 物品互動
    可互動的物品通常只有可以對話或被撿起來的功能,若有其他特例再繼承此類別作變化就可以

    InteractiveItemInteractiveItem.cs
    1
    2
    3
    4
    5
    6
    7
    public float interactiveDistance; //進入到一定範圍才能和物品互動
    public event EventHandler OnItemClicked;//物品被點到時的事件
    [SerializeField]
    protected bool canPick;
    [SerializeField]
    protected bool canTalk;
    public event EventHandler OnItemTalked;
  3. 假存檔系統
    寫一個假的Singleton Pattern,將類別宣告成一個靜態物件,其他類別就能隨時存取,達到跨場景存檔的效果

    SaveDataSaveData.cs
    1
    2
    3
    4
    5
    6
    7
    public class SaveData {
    public static SaveData _data = new SaveData();//一開始就會自動執行,並在建構元寫好初始化
    public SaveData()
    {
    //初始化
    }
    }
上一篇:特務跑跑 下一篇:Sumo