這裡以商業遊戲作品為主,大概會有好一段時間不會有新東西。
On-going, Windows, 2D platformer game, Unity.
A three-person full-time project with one part-time sound designer.
Made by Psychoflow Studio & Mureena Oy.
Steam頁面《Bionic Bay: 換影循跡》
Facebook 粉專 @BionicBayTW
Twitter @BionicBay
從 2019 年底全職做到現在,算是第一款商業遊戲產品。這種痛苦還要持續多久
負責的部分有:
大部分是輔助遊戲開發而寫的工具。
Open-source(MIT), Unity, editor tool.
AnimatorTransitionCopier is a simple tool for copying and pasting animation transitions in the Animator editor.
一個用於複製 Unity Animator 中的 transitions 的小工具。
當初的開發紀錄: Unity Copy Paste Animator Transitions
Open-source(MIT), Unity, editor tool.
EasingAnimationCurve is a simple and fast solution of converting Easing functions to UnityEngine.AnimationCurve.
把常見的 Easing Functions 以最少的控制點轉換成 Unity 常用的 AnimationCurve
型別的小工具和 Presets。
當初的開發紀錄: Unity AnimationCurve with Easing Functions
Open-source(MIT), Chrome Extension, front-end webpage.
Steam Marketing Tool is an Chrome Extensions for analyzing marketing data on Steam and Steamworks.
擴充 Steam 商店頁面和 Steam 後台頁面的功能。
當初是開了 Bionic Bay 的 Steam 商店頁面後發現要追蹤願望清單的地區分布實在太狗屎了所以做了這個擴充來輔助自己使用。而商店擴充單純是不滿足於 Argumented Steam 所提供的擴充連結才自己也寫了一套功能來方便開啟常用網站。
Open-source(MIT), Batch script, Windows only.
Simple batch scripts for making high quality compressed gifs from videos on Windows.
一個能夠快速地把影片檔轉換成高品質高壓縮率的 GIF 圖片的小工具。
會寫這個也是為了行銷用途,還有就是寫文章的時候用的 GIF 也大多是透過這個工具直接製作。
Front-end web, Whisper AI, Google Colab.
GDC-transcript is a pet project of PeDev and DK Liao in an attempt to transcribe publicly available videos in Game Developers Conference’s YouTube channel.
由 DK 發起,一個希望把全 GDC 影片逐字稿、字幕以 Whisper AI 爬下來藉以輔助觀看、翻閱的計畫。
我單純協助一些網頁前端、Whisper、Colab 的部分功能撰寫。
Unity Asset, Shader, Vfx, Bulit-in RP only.
Just a visual effect we implemented for our game Bionic Bay.
專門用於 2D 遊戲的螢幕空間水面反射效果。
當初閒著試試把 Bionic Bay 專案有寫的一些小功能拔出來賣。
只支援 Bultin-RP 是因為 SRP 沒有 GrabPass ,要改成 SRP 的話原本即放即用的便利性(完全不需要指定反射圖層,只要在水面圖層之前渲染的東西都一律反射)會大幅降低,結果 Reivew 都在討 URP,無奈。
業餘時間、學生時期參與的專案。基本上 2019 以前的作品都是學生時期的黑歷史,斟酌欣賞。
GMTK Game Jam 2019 selected game, Windows, Unity.
Made by PeDev, Murlokk, Arthur.
PROJECT1ON is a puzzle platformer, where you can use “only one” slice of a 3D space as your platforms.
一款可以改變角色所屬的二維平面在三維世界中的旋轉角度進而改變地形的解謎遊戲。
第一次跟認識的人窩在 LAB 玩 Game Jam 的成果,當時一做完就覺得我們是天才。
沒過幾天查到 Perspective 後就一陣顫抖,一切變得索然無味。
GMTK Game Jam 2023, Personal project, Windows, WebGL, Unity.
在回合制戰鬥中,不直接控制角色,而是控制亂數順序的策略遊戲。
第一次獨自參加 Game Jam 的成果,當時一做完就覺得我是天才。
沒過幾分鐘發現我根本沒投稿後就一陣顫抖,一切變得索然無味。
心路歷程寫在這篇:我參加了 GMTK Game Jam 2023
A school project, 2d puzzle platformer, Windows, Unity.
Made by PeDev, Peggy (Character, Monster, Environment Artist), Gwan (English Translation)
改天應該會把遊戲放上 itch.io,當時有用一些版權音樂沒拔。
先放實機遊玩影片墊一下:
一款透過「與物體交換位置」為核心玩法的解謎遊戲(不過其實很吃動作要素)。
大三遊戲企劃課的作業,Bionic Bay 的前身之一。
做完之後有參加一個好幾所公立大學合辦的地下遊戲比賽(完全沒有對外宣傳,只有自己學校知道的怪比賽),意外地得到很不錯的成績,才進而讓我有迷之自信想把遊戲做下去,結果就這樣陷入遊戲開發的泥沼中。
不過方向差很多,當初這款是更著重 Swap 應用的遊戲,但也因此更吃玩家吧,需要真的習慣一些非典型操作(像是跳躍 + 交換保留慣性)才有辦法好好體驗遊戲。
更早以前還有個方塊美術版本的,一開始是用 GameMaker Studio 2 做的。
1 week project, a 2-person split-screen online coop horror game, Windows, Unity
Made by Kevin (Designer, Programmer), PeDev (Graphics programmer, Character gameplay programmer)
由 Kevin 發起,花了一個禮拜一同製作的實驗性雙人合作恐怖遊戲,不過以結論來說當初想實驗的東西沒做出來,目前專案無限擱置中。
也是第一次嘗試:
Academic cooperation project, Unity tool, Procedural generation.
A node-based procedural level genreator inspired from Joris Dormans’s Machinations research.
Team: Ze-Hao, PeDev, Harrison, Bagus, Ally
基於節點與自定義迭代規則來程序化生成房型組成。
大學時期的一個產學合作兼碩士學長的論文專案,我當時負責撰寫從 Node Graph 生成實際關卡的部分(基於預定好的 Node 對應房間的規則找尋無碰撞的可行解)。
GMTK Game Jam 2020, “Out of Control”, Unfinished game, Unity.
Made by PeDev, murlokk, Arthur, Kevin.
Rhythm + Roguelike + Craft + Move to control all weapons.
第二次和朋友(還是沒有半個美術人員)參加 GMTK Game Jam ,主題是 Out of Control,本來想做成「每場戰鬥都能夠添加一個元件至機體上」 + 「每次按下上下左右的方向鍵都會發送傳遞信號給相連的元件(一個拍點傳遞一格)」的 Roguelike 節奏打飛機遊戲。透過「移動即行動」的概念期盼可以製作出後期極為混亂的場面:
不過最後我們沒做完,功能是寫出來了沒錯但敵人 AI 和關卡配置都設計的跟屎一樣所以也沒投稿。
Faust Game Jam 2022, 4-player Coop game, Windows, WebGL, Unity.
Made by PeDev, Kumama, Cliff Lee, Momo, Allen.
四人合作讓肥宅玩鯉魚躍龍門的遊戲。
第一次參加線下的 Game Jam 跟完全不認識的人組隊,主題是「怪奇運動」。
稍微有趣的是 這大概是我做遊戲以來最完整的陣容,有企劃、雙程式、美術、音樂,雖然 5 個人裡面有 2 個沒遊戲開發經驗,而我沒線下 Game Jam 合作經驗,所以結果還是做得比較保守。
然後參加實體 Game Jam 才真正了解原來 Game Jam 根本不用做的這麼累(?
我感覺我們做得超級健康的,大家都選擇自己已經會的東西來實作,在會場吃好吃飽、回家睡好睡飽,社交意義比做遊戲本身的意義還要大。
我也稍微有點不滿意這件事,一直以來都覺得 Game Jam 是個好機會可以拿來嘗試自己不曾試過的東西。
這個專案中我主要負責的是一些 2D 物理的東東:繩索物理、人物 Ragdoll 、蜘蛛移動等等,以及最後發表前花了一點時間做了個 outline 綻放的特效這樣。
Academic cooperation project, iOS, Unity.
Recogize the encoded card via the camera of iPad mini 2015.
產學合作案。
Unity 的卡牌辨識系統,目的是提供一個 Vuforia 以外的方案。
我在團隊中負責 Unity 端的所有開發項目,以及辨識方案的提供者,也配合業主需求撰寫 Adobe illustrator 的擴充腳本以方便卡片設計。
Academic cooperation project, Android, Unity.
Embed a web browser in 3D scene on Android for VR devices.
產學合作案。
目的是提供一個可以在 Android 平台上使用的 3D Web Browser ,用於 VR 裝置使用。
<input>
元素會呼叫一個相對應的 callback,可讓 Unity 端接收並執行對應操作,例如呼叫虛擬鍵盤。)這個專案是我一人負責,內容稍微複雜了點,我一共寫了:
AndroidWebViewLib
專案(GeckoView 這是個數百 GB 的開放原始碼專案)AndroidWebViewLib.aar
是一個提供 Android WebView 元件的 LibNativeRenderLib.so
是一個將 WebView 的 OpenGL texture 轉給 Unity C# 端使用(用以顯示於 RenderTexture 上)的橋梁。AndroidWebViewLib
的 API 以便使用者可以直接在 Unity C# 上操作,以及提供一些使用範例。與 Asset Store 上現成的 3D WebView for Android and iOS (Web Browser) 相比,我是以 Firefox 的 GeckoView 進行實作,而非 Chrome 的 WebView。
當時研究 Chrome WebView 有一些缺陷無法解決,例如:無法偵測接收點擊 <input>
元素的事件,部分 HTML5 支援度不足。而且上面 Asset 的作者不會提供 Android 端的原始碼,所以無法做深入應用。
隔了一兩年之後發現這個 Asset 作者賣翻了,早知道我也把美術包得好看一點然後上架:(
Academic cooperation project, CUDA programming, C++
Using CUDA programming to accelerate the simulation of slot games.
產學合作案,用 CUDA 加速計算指定 Slot game 的機率模擬並統計各項分布。
我負責一部分的 CUDA Programming。
An assignment to make a “Maze” for a Unity class on college, Windows, Unity.
First-person horror.
Unity 遊戲製作課的作業,題目是《迷宮》,大約兩個禮拜的課餘時間專案。
作業只是把迷宮生出來很無聊,就順勢做成恐怖遊戲了,直接使用 Spooky’s Jump Scare Mansion 的設計邏輯 –
「拿一個很蠢的東西做 Jump Scare 」。
那時候我同溫層還蠻愛看各種惡搞聖結石的影片(現在他已經完全淡出 youtube 了),就順勢拿這題材來做。
遊戲主旨大致上就是逃離 BANG 怪追殺,可以透過 訂閱 按鈕來保護自己免於追殺,也能透過他老婆的聲音來引導怪物的移動路徑,最後逃出這裡。
事隔這麼多年才公開,希望影片別吃版權砲。
遊戲完整流程影片
An assignment to make a “Battle City” for a Unity class on college, Windows, Unity.
The “Battle City” game called “Tank Battle” in Chinese. So the theme is more about the tank itself.
Third-person action (not shooting).
Unity 遊戲製作課的作業,題目是《坦克大戰》,大約兩個禮拜的課餘時間專案。
因為那時候不喜歡坦克、射擊、戰爭類型遊戲,所以就亂搞成第三人稱動作,基本上就是個想到什麼就做什麼莫名其妙專案。目標是想做出很帥氣的第三人稱動作遊戲,不過我當時的美術力和技術力都不足,現在看蠻慘不忍睹的。
花最多時間都在搞骨架動畫、坦克的模型拼裝。
An assignment to make a “NS-SHAFT” for a Unity class on college, 4-person local-multiplayer, Windows, Unity.
NS-SHAFT + Tetris Battle.
Unity 遊戲製作課的作業,題目是《小朋友下樓梯》,大約兩個禮拜的課餘時間專案。
核心概念就是把《小朋友下樓梯》和《俄羅斯方塊》融合的 2v2 本地多人對戰遊戲。
實際遊玩的負擔蠻大的,當初設計不良導致按鍵太多,光要習慣就得好一段時間。
多打少不見得有優勢,彼此之間會有物理碰撞、波動拳會打到自己人、有 bug 導致磚塊預覽只會有一人顯示,所以可能單人方還比較有優勢(但是傳送門開的時候多人優勢很大)。