Sudoku 程式作業

Rain Wu
遊戲開發隨筆
Published in
3 min readMay 8, 2018

--

他原本只是個作業,直到我開始腦洞大開......

開頭就先丟個 Github 連結吧~

這學期有堂程式設計的必修課,其中一個專案作業是要做個數獨遊戲。沒錯!就是每行每列每個3x3框框內數字都不能重複的那個數獨。單單做個數獨出來並不難,但大家都做一樣的有些無聊就是,於是身為遊戲開發者的我,決定來做些好玩的事(owo)~

事情經過是這樣的......

這其實是一個月的作業,早在兩周前就可以動手了,不過我當時有點忙加上要期中考所以我根本忘了這件事。偶然間在上周末想起這件事,不過之後緊接著又要準備暑假的事情,內心甚感恐懼。所以決定來考驗自己敏捷開發的能力,嘗試只用兩天就做完他。

一開始想法還不少,不過多半只把數獨當作遊戲中的一個謎題,這設計我覺得少了些趣味性。所以我決定回到數獨本身竄改遊玩方法,第一時間想到的就是融入動作遊戲的走位。同時帶有解謎及動作元素可能不是好做法,但我覺得頗有趣所以還是動手開發了。

這時我腦中只剩兩個想法:同樣以數獨版面作為地形,一個是有 boss 在追殺,另一個是四周有砲彈射出。最後因為沒時間建 boss 的模型和拉動畫,所以決定用簡單的彈幕砲彈了~完成圖如下:

白色的字為題目,綠色是砲彈要躲,被K到就GG了~

開發過程

依照以往的開發經驗告訴我,如果可以的話我應該先做好規劃再動手

先寫個開發順序:

  1. 數獨地板和小黑球(玩家),畢竟是作業基本功能總是得先做出來~
  2. 彈幕及難度控管,沒難度控管我怕之後 Demo 過不了關就尷尬了
  3. 地形美化,我用的美術素材是 這個

Sudoku 單格地板

每個單個地板都是數獨管理器的子物件,而數獨管理器主要是提供答案檢查和自動解題的功能。

小黑球(玩家)

就是簡單的依照玩家Input對剛體AddForce~

彈幕系統

彈幕系統內大多用 Event 溝通,少數我用 Event 不好處理的才用 Public Method。

結語

很高興最後算是完成了給自己的快速開發考驗,主要歸功於還算完整的事前規劃和還能看的模組化壓低中途修改的成本,以及之前自己所寫一些 Class。

分享到其他社群後也有收到了一些大大的指點,第一次開發這類型遊戲雖然不太上手但仍是吸取了不少經驗,也有了新的想法,也許一陣子後有空再實現出來。

--

--

Rain Wu
遊戲開發隨筆

A software engineer specializing in distributed systems and cloud services, desire to realize various imaginations of future life through technology.