iT邦幫忙

2025 iThome 鐵人賽

DAY 30
0

今天是我們 30 天旅程的最後一天,在開始感性之前,我們先來看看如何在 Code.Gamelet 上發布與分享你的遊戲。

▸ 發布遊戲

其實我 2023 年的時候也參加過一次鐵人賽,那時的主題是「什麼!在網頁上也可以寫遊戲?」,其中我特別花了兩天來介紹怎麼在 CG 上發布遊戲。

[Day 11] 在 CG 上公開自己的作品
[Day 12] 設定專案封面、將成品發布到 Gamelet.online

詳細的流程,各位可以參考上面兩篇文章來了解,我就不讓同樣的內容佔據文章的篇幅了,這邊就只稍微簡述一下:

  1. 在右側欄的專案資料幫專案取個名字,例如我們這次就是《小女巫・啟程》。
  2. 打開左側檔案總管內的 README.md 檔案,在這裡可以寫一些關於遊戲的介紹、操作說明等。
  3. 在右側欄的資源管理上傳一張封面圖片,接著打開圖片的詳細資料,點擊「設定為封面」來設定專案封面。
  4. 再次執行專案,確認遊戲沒有任何的問題。
  5. 在右側欄的製作成品點擊「製作成品」,選擇成品用途為「應用程式/遊戲」,以及對應版次,並填寫更新日誌。
  6. 根據實際需求可以選擇是否公開原始碼,完成後點擊「上傳成品」。
  7. 最後,最重要也最常被新人忽略的一步,在剛剛的製作成品頁面,展開剛剛製作好的成品,點擊「設定為穩定版本」,這樣我們的成品才會顯示在公開遊戲成品中。

完成以上步驟後,遊戲就成功發布到 Code.Gamelet 上了!接下來,我們要做的就是把這個網址分享給親朋好友,也可以分享給你的損友,如果他被 Boss 撞死,要記得笑他。

歷時 16 天的辛苦結晶——《小女巫・啟程》

遊戲預覽影片

Yes

▸ 後續可優化部分

雖然遊戲已經完成了,但其實還有很多可以優化的地方,像是:

  • 武器/裝備系統:一般的 Rougelike 遊戲都會有武器或裝備系統,讓玩家可以選擇不同的武器或裝備來改變自己的戰鬥方式,這樣可以增加遊戲的多樣性與重玩價值。
  • 更多敵人/關卡:目前遊戲中只有三隻小怪與一隻 Boss,關卡也只有一個,未來可以考慮增加更多不同種類的敵人與關卡,讓遊戲更加豐富有趣。
  • 金幣/商店系統:有了更多的敵人與關卡以後,就可以考慮增加金幣系統,讓玩家可以透過擊敗敵人來獲得金幣,並在遊戲外利用這些金幣來提升初始能力,或是購買一些特殊道具,增加遊戲的深度與策略性。
  • 教學介紹:可以在玩家初次進入遊戲時,簡單的用個示意圖來告訴玩家該如何操作,雖然現在應該大部分的人都會預設 WASD、方向鍵移動,但更多時候我覺得這比較像是一種傳統。
  • 遊戲模式:可以考慮增加不同的遊戲模式,例如無盡模式、挑戰模式等,讓玩家可以選擇不同的玩法來體驗遊戲。

除了上述這些地方以外,還有一些像是遊戲的難度曲線、遊戲平衡、UI 設計等方面也都可以進行優化與調整,讓整個遊戲體驗更加順暢與愉快。

也許未來我可以再花時間來優化這些部分,讓《小女巫・啟程》變得更加完整與有趣。

▸ 回憶殺

一開始,我向大家解釋了為什麼我會選擇 PixiJS 與 Code.Gamelet 作為這次鐵人賽的主題。之後我們創建了專案,開始慢慢帶大家了解 PixiJS 最基本的元件。

有用來讓我們顯示圖像的 Sprite,用於顯示文字的 Text,以及用來繪製圖形的 Graphics,甚至還有用來管理多個顯示物件的 Container,有了這些元件,我們才能建構出各式各樣的遊戲畫面。

講完顯示物件以後,我們就開始進入了與使用者互動的環節,例如 PixiJS 的事件系統、CG 的鍵盤管理器更新循環系統等。另外我們還介紹了 Tween(補間動畫)Spritesheet(圖集動畫)這兩個非常實用的功能,分別用來讓我們的遊戲畫面更有動態感,以及讓我們能夠更有效率地管理遊戲中的各種圖像資源。

在 Day 14 的時候,我們整合了前面所學的內容,實作了一個會動、會響的互動場景——幸運餅乾。不僅有圖像、文字、動畫,還有音效,讓我們的遊戲畫面更加生動有趣。

然後,在 Day 15 的時候,我大膽的立下一根旗子,決定不再單純的介紹這些零碎的技術,而是直接做遊戲!也就是在這天,《小女巫・啟程》開始萌芽了。

我們一步步的搭建整個遊戲的場景,先把視差捲軸背景搭建起來,然後把小女巫放上去,接著讓她會自動發射魔法彈。突然,我們意識到一個很重要的問題,因此我們創建了 Game 類別,告別了混亂的 start()

有了乾淨的遊戲架構以後,我們開始實作敵人生成系統,讓我們只需要簡單編輯 JSON,就能夠輕鬆地設計關卡。有了敵人之後,我們開始實作碰撞系統,讓小女巫的魔法彈能夠打中敵人,敵人也能夠攻擊小女巫,同時為小女巫添加了無敵幀與血條顯示。

接著,作為一款 Rougelike 遊戲,當然少不了升級系統,讓小女巫能夠隨著擊敗敵人獲得經驗值,並且提升自己的能力。除了升級系統,我們還實作了道具系統,讓小女巫能夠撿起掉落的道具,提升自己的生存能力。並且在這一天,還實作了角色受傷閃白的效果,讓遊戲畫面更加生動。

在大部分的核心玩法都完成後,我們迎來了整個系列的最高潮——Boss 戰。我們設計了一個強大的 Boss,並且為它設計了一個基於條件、冷卻、權重的技能系統,讓 Boss 能夠根據戰況做出不同的攻擊行為,增加遊戲的挑戰性。

從倒數第四天開始,我們開始將整個遊戲進行收尾,添加了計時器、結算畫面,並且實作了一個簡單的音訊管理器,讓遊戲的音效與音樂能夠更好地融入整個遊戲流程中。也實作了場景管理器,讓玩家能夠從主頁面進入遊戲,並且在遊戲結束後返回主頁面。

最後,在 Day 29,我們進行了一些最後的優化與調整,確保遊戲的難度曲線與遊戲平衡,並且添加了鍵盤與滑鼠的雙重操作支援。

而今天,我們終於來到了旅程的終點,將整個專案製作成一個成品,並且發布到 Code.Gamelet 上,讓更多人能夠體驗我們的遊戲。

▸ 後話

其實我原本是沒有參賽的打算的,但隨著最後開賽的時間越來越近,我一邊看著鐵人賽的介紹網站,一邊想著我如果不參賽的話,下一次就是明年了!

於是我就立刻想了一個主題,毅然決然的報名參賽了,總之就是一個不管怎麼樣,先報名再說的心態,剩下的就交給未來的我去完成了。

接著在開賽之前,我大概備好了 7 ~ 8 天的文章存稿,結果開賽後我幾乎頹廢了,平日回家就累成一條狗,只想躺在床上,只靠週末去咖啡廳有動力的時候才會寫。

我大概把存稿寫到 Day 14 後,我就開始停滯了,作為一個階段的結束,我一直在思考接下來的方向,但始終沒有什麼想法。

我認為單純的介紹知識點,對我來說實在是有點無趣。也許是迫於壓力,一直到 Day 14 當天,我意識到了這個問題,因而由生了一個想法:「為什麼我不要把剩下的 16 天拿來做遊戲呢?」,就變成了現在這個樣子。

總之,我很慶幸我把原本 3 ~ 5 天的遊戲開發,拉長成了 16 天,讓我有足夠的時間來思考遊戲的設計與實作,而且增加了我寫文章的動力。

並且我也嘗試了一些我以前沒什麼接觸過的功能,像是 Rougelike 的升級選擇系統,還有能夠讓整個畫面暫停的功能,當然最重要的就是那隻 Boss 了。這些都是我以前沒什麼接觸過的東西,是我這次邊做邊想的,因此可能不是什麼很完美的設計,但我覺得這樣的嘗試是很有趣的。

最後也是順便為了推廣 Code.Gamelet 這個平台,希望有更多對遊戲開發有興趣的人可以來看看。兩年前參賽的時候我還只是個大學生,如今我已經出社會工作了,要說是 CG 讓我找到工作的一點也不為過,因為 CG,我開始接觸程式設計、遊戲設計,而因為這項技能,我找到了我夢想的工作。

如果你也對遊戲開發有興趣,即使你沒有什麼程式基礎,甚至是完全沒有程式基礎都沒關係,昨天我提到我為了這個平台而建立的 DC 群,裡面有很多對遊戲開發有興趣的玩家與開發者,而且大部分也都是學生或是剛出社會的年輕人,大家可以互相交流、分享與學習,歡迎各位來玩!

Discord - 嘎姆討論區


上一篇
Day 29:挑戰的藝術 - 難度曲線、遊戲平衡與最終優化
系列文
用 PixiJS 寫遊戲!告別繁瑣設定,在 Code.Gamelet 打造你的第一個遊戲30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言