2020年1月21日 星期二

倒帶、XML、芒果乾:一段療癒之旅





總統大選過了一個多禮拜,台灣再次證明了民主自由。對我來說真的是鬆了一口氣,有些事終於可以說了...




大約在去年六月,一群來自各行各業的「憂國志士」(這好像不是什麼好名字,如果你看過銀河英雄傳說就知道我在說什麼XD)聚在一起,想要做一個遊戲來販賣芒果乾提醒大家台灣的民主有多麼得來不易。絕大部份的成員我都從來沒見過,而且除了我也沒有其他人做過遊戲,就這麼衝動地決定要做遊戲,真是有點不自量力orz

我們大約每個月開會一次,剛開始主要是討論遊戲的內容與故事,我在一開始就表明遊戲的玩法可能是類似AVG的靜態圖片文字,比較有可能做得出來。遊戲平台是web最容易傳播,那顯然就是要用Construct 2來做了。自從買了這個開發工具(後來Construct3改採訂閱制就沒有付費),只有在Game Jam中使用過,其實沒有用來做過什麼正式的產品。而且後來主要都是使用Unity,對於Construct 2真的有點生疏了(是說本來也沒有多熟)。

其實從一開始我們就確定整個故事是要講如果親中共政黨當選後的那幾年可能發生什麼事,故事走向並不是要講什麼亡國感,事實上就算他選上也不會立刻發生什麼亡國之類的事;糟糕的事又不是只有亡國,還有許多與我們生活更加切身、更具體的那些事件,而那些事也絕非憑空幻想,而是已經在中國甚至台灣發生過的事件,我們再加以改編。所以說我們芒果乾成癮真是不太公平啊!
遊戲中這表情有微妙的變化

我們決定先設定一個主角,然後由主角的視角去看這些事件。要讓玩家真的有玩的感覺,兩難的抉擇是必要的,我們決定讓主角有個女兒,並且是單親家庭,主角有生活上的壓力、親人朋友遭遇的困難等等。從體育活動被打壓、同志議題、到傳染病問題(等等這根本是現在進行式啊!),盡可能廣泛地找尋題材。反覆再三討論劇情,再搜集查證相關資料,我們花了相當多時間,特別是發起人(不是我)還需要補足缺漏的部份。十二個故事最後還要再串在一起,回想整個過程,這種集體創作的過程還真是難以想像,大概以後也很難再發生了吧。

技術方面對我來說也有極大的挑戰,Construct 2在大量靜態字串的存取與搜尋大概就只有json和XML兩種方案,也許是因為web平台的關係,XML的存取似乎是稍微方便一點點。但是我之前從來沒嘗試過這個功能,XML的格式也需要設計。圖片的讀取當時就想說每一個章節用animation,同一章的圖片用frame來切換,這樣應該是最方便的(但這個卻是最後我遭遇最嚴重的問題,後面再提)。資料存取的功能不論是unity或Construct2都非常複雜,希望未來能有比較方便又有彈性的功能可以使用...

接下來的難題是要有記錄,讓玩家集滿每一個章節後,就可以開啟隱藏關卡。但是只要程式去存取外部檔案或讀取本機紀錄時,就一定不是同步的,所以必須要先全部讀入,然後解析搜尋字串才能使用。查了很久才發現最好的解法是先用一個表格把所有要記錄的資料存起來,然後全部只存一個欄位到記錄檔中,讀取時也只讀這個欄位資料,然後再解析。

遊戲流程的程式相對起來比較簡單,卻也因為我一開始不夠了解XML結構而無法精簡,導致有許多重複的程式,後來修改的時候也常有些地方沒改到,如果再有一點時間真的會想重構一下...

全部功能完成之後,又停滯了幾個禮拜,因為要等待美術的圖片進來,我只能先用簡單的圖片代替,這也種下最後恐怖的種子。那就是當所有圖片進來之後,因為把所有圖片都放在同一個物件裡面,才發現一開始讀取時就佔掉了全部的記憶體,這不只是速度變超慢,甚至在比較低階的手機(例如我的iPhone6)是可能整個網頁無法讀取。這下子慘了,但我發現Construct2是同一layout的所有物件會一起讀進來,也就是說最好的方法是每一章節拆成不同的layout。最後竟然福至心靈,我想到直接複製遊戲layout(但同時用同一個event sheet),然後把每一個章節的圖片只放在一個animation。解法簡單粗暴,對修改的工程上將會是最少的工作,至於維護什麼的就放棄,反正以後也不會再碰了吧。

做完這個遊戲我敢說Construct 2大部份進階的功能我都會了,如果大家有問題可以來問我喔!

我用github.io的免費網頁空間,速度不算太好,不過可以看到一些數據。後來還弄了一個lionfree,速度好像好一點。我也不知道怎麼讓fb的預覽可以抓到圖,幸好一位同伴會網頁的技術,改了一下網頁才看得到圖片。也有同伴找到付費的網頁空間,真的幫助很大。好不容易在大選前五天上線,說真的是有點晚,但似乎也有一些回響,也算是感到欣慰了。

更有趣的是,大選前許多朋友感到焦慮,在網路上筆戰,但我卻心如止水,我覺得至少我真的盡全力了,完全坦然地面對結果。事實上我一直對網路筆戰毫無興趣,我不覺得筆戰能說服對方,溝通的效果是非常差的,唯一有效的是吸引同溫層的注意,而如果知名度較低的人,更是連吸引注意力都做不到,那筆戰可真是更沒用了。更重要的是,我覺得連我這種對政治社會議題有點冷感的人,都願意出來做點什麼了,我相信這選情很穩啦。

倒帶到選舉當時,你還會做同樣的選擇嗎?

對我來說這半年是療癒的一段旅程,對於社會議題、編寫故事、開發技術各方面都有相當多的成長,更療癒了對政治的焦慮。但願我們未來不需要想倒帶啊!

ps.補一個小討論:玩過遊戲的你,覺得主角是男性或女性呢?

沒有留言: