Friday, July 10, 2015

[秘辛]第一款國產XBOX遊戲製作回憶錄 - Part One

之前整理硬碟時發現一些老檔案,是15年前製作的XBOX遊戲<魔武爭鋒(Stake)>的一些相關檔案跟影片,很令人懷念,所以就想說寫一篇文章來紀念一下在那個沒有Unity的年代,我們是如何辛苦的獨立製作出一款3D動作遊戲,並把它移植到XBOX上的。這些東西大概是現在開發遊戲的小朋友們沒經歷過也無法想像的艱苦過程吧 :)

遊戲最後在XBOX上的樣子

話說2000年的時候,我跟大宇資訊合資成立了一家遊戲公司,當時我們打算開發一款3D的連線動作遊戲,可以讓最多八個人在場上戰鬥。遊戲除了死鬥模式還有組隊推塔模式,其實有點像現在的DOTA或LOL,但是沒有小兵只有英雄。當初設定的目標還包含一個遊戲編輯器,可以讓玩家自製地圖,甚至是自訂英雄外型及招式。在2000年時這是個相當大的目標,要知道那時候上的了檯面的的引擎就只有Quake3跟Unreal,而那時引擎授權價格都要上千萬,我們當然沒錢買只能自己研發。以一個六人團隊要同時研發遊戲加上引擎還有編輯器,幾乎是不可能的任務,而如果還只有一位工程師,那根本就是自殺啊 :)

當年做的推塔地圖之一

在2000年的時候,想要做3D遊戲的人沒有足夠的資金就只能自己開發引擎了。不過由於我在前幾份工作中都一直在做建構3D引擎的工作,加上我下班後都有在維護自己的一個圖形引擎,這部分倒不是太大的問題。2000年的時候繪圖加速卡才開開始流行,D3D也不是那麼成熟,許多大作都是用OpenGL來當作繪圖API,尤其那時受John Carmack跟Chris Hecker這些大神影響很深,所以其實我一開始遊戲引擎也是採用OpenGL作為繪圖API。另一個影響則是我決定整個引擎採用C來撰寫而不是C++,因為除了JC跟CH大力鼓吹用C比C++有效率外,另一個因素是我前一個Dreamcast的引擎使用了SEGA的SDK但它卻沒有很完整的支援C++,所以到最後整個遊戲、引擎以及編輯器都是用C寫出來的,現在想起來還是覺得超猛的 XD 更猛的是因為用C所以無法使用MFC,結果整個編輯器是用Windows SDK硬幹出來的.....

特效編輯(包含碰撞範圍設定)

Windows SDK硬幹出來的遊戲編輯器

另一個問題則是角色動作了,在那個年代,bone&skin還是非常神秘而且高技術的東西。遊戲通常都使用segment animation。即使是Quake 3跟Unreal用的也是vertex animation而已。但是對FPS這種動作量很少的遊戲vertex animation不是問題,但像我們這種遊戲角色有許多招式的動作遊戲就是個大問題了。所以那時我決定要自己搞定bone&skin的東西。這不單是要了解bone&skin的運作原理,還必須要瞭解到bone&skin的資料在3ds max這類軟體中是怎麼被運算跟儲存的,也必須要了解這些軟體中animation key的原理跟運作方式,然後還要寫出exporter將必要的資料輸出。結果這部分花了好幾個月才完全搞定。


角色編輯
現在已經是標配的的物理引擎那時也都還沒生出來,自然碰撞部分也都得自己來搞定。而那時的顯卡繪圖能力也還很弱,所以計算PVS是一件很重要的事,那時最流行的是BSP,我也嘗試過使用portal來計算PVS。但是由於我們的遊戲是在開放場景中亂鬥,這兩個方式都不是很合適,因此我最後採用的是OSP八元樹的方式來分割場景。同時OSP也可以做於碰撞偵測的多邊形篩選以加速碰撞偵測。當然所有物件的碰撞偵測以及位移都得自己搞定。

3ds Max 中的Preview Plug-in

結果好像一篇文章寫不完.... 這次先到此為止,下一篇再繼續,keep tuned  :)



Saturday, February 21, 2015

新的一年

因為剛從加拿大回來,所以還在jet lag中,頭好像要爆炸,無法專心工作,所以乾脆來PO新文章。 

今天是農曆初三,回想起正好一年前,去年農曆年的時候Qubit Games的辦公室才準備要開張,那時三個人在公司組IKEA買來的廉價家具(因為底部沒有框架,桌子不靠牆的話超會晃的,我常常打程式打到一半還以為地震了:)),準備年後正式開張。經過了整整一年,我們活下來了,而且還長出了一點點肌肉,人數也從三人變成了六人(但是人力還是嚴重不足啊~~~~),算是站穩了第一步。而原先計畫中的專案也持續開發中,而且內容遠比一年前的規劃豐富許多。這一路來要感謝許多人的幫忙,而我們Qubit Games團隊也會在新的一年繼續努力把遊戲做到最好。

至於未來,希望Qubit Games能夠依計畫穩定的成長,朝向製作更多平台,規模更大,品質更高的遊戲前進。

Qubit Games成長預想圖  XD

Thursday, February 05, 2015

Qubot 第二彈, 紅魔鬼(仮)

模型其實是用自己的編輯器作的,存的是voxel的格式所以超小,而且可以任意拆解,爆破等等,上傳的模型則是另外輸出的公用格式。

[Qubot] Robot # 2 by Qubit Games on Sketchfab

Tuesday, February 03, 2015

Check out Qubot in 3D!

最近發現一個3D模型分享網站做得很不錯,就把Qubot模型丟上去試試。在網站是還可以微調燈光,材質等許多參數,而且應該是用WebGL作的,在手機上也跑得很順。

[Qubot] Robot # 1 by Qubit Games on Sketchfab

Sunday, January 18, 2015

進度管理工具

今天聊一下我們在進度管理工具上的一些經驗。其實之前一個人開發引擎時,也想過使用Scrum的工具來管理開發進度,不過因為只有一個人,最後也就不了了之。Space Qube開發時基本上也只用了不同顏色的便利貼來管理。直到開始Qubot的開發後,因為團隊變成四人,才開始認真找尋一套工具來做進度管理。

基本上由於我們很窮:(,所以都是找尋在一定人數以內可以免費使用的工具。好在我們團隊人很少,所以倒是有許多符合條件的工具可以選擇。我個人比較喜歡視覺化的工具,所以傾向使用那些能把每個backlog/task做成 card view的工具。本來覺得Trello用起來不錯,但是實際套用在Scrum上卻不是很好用,所以最後選擇了Target Process。Target Process事實上做得很不錯,在所有試用過的工具中沒有一套能跟他有得比的,同時又提供五人以下的團隊免費使用(但是後來他們加上1,000個entities的限制 :( ),無奈我們很快就突破他的免費使用限制,而USD 25/person的月費實在不是我們負擔的起的,於是我們只好繼續尋找其他的可行方案了。

之後朝著在負擔範圍內的付費工具尋找,用了許多服務,都沒有滿意的,直到找到了Scrumwize,這套工具雖然沒有Target Process那麼好,但比起其他我所找到的工具卻是好上許多,在各種方面都如速度,視覺化設計,附加檔案,組員管理等等都算符合我的要求,USD 9/person的價格也勉強可以接受。不過因為它只有30天試用期,讓我有點猶豫,這時有很多人向我推薦Asana協作平台,加上它的創辦人又是Facebook的前創辦人,所以我就決定嘗試看看。

一開始我並不覺得Asana符合我的需求,因為它主要針對的是多人協作平台,並非 Scrum,所以很多Scrum需要的東西他都沒有,像是burn down chart跟sprint/backlog管理。一開始的感覺跟Trello很類似,覺得要拿來用在Scrum可能有點困難。不過實際用了以後,發現他在團隊協作的部分做得很不錯,介面設計非常簡潔實用,對於task的comment的功能我也非常喜歡,加上支援很多雲端檔案功能,讓附加檔案變得很容易。所以最後我們決定使用Asana來管理我們的Qubot專案,雖然他並沒有backlog/sprint這些功能,但是我們用section的功能來解決這一個問題。同時我們也把它用在會議紀錄以及bug list上面,用到目前為止我還算相當滿意 :)


Saturday, January 10, 2015

變形效果測試

這個元旦假期花了一點時間測試一個遊戲中要用到的變形效果,經過一些調整後,效果還不錯。


另外搜尋影片時無意中搜尋到2013年時我們在TGADC的分享,那次應該算是我回台後第一次公開分享吧,所以放在這裡紀念一下 :)

我好像還是留長頭髮比較合適.......

Friday, January 02, 2015

給所有還在努力前進的Indie Game Developer

結果2014只貼了兩篇文章,本來是想在2014年底前貼出這篇的,結果因為在寫一個想做很久但一直沒時間做的遊戲效果所以拖到今天才貼 :P

轉眼間回台灣成為獨立遊戲開發者已經過了兩年多,這中間起起伏伏,心情也跟著不斷波動,幸運的是直到今天我還在這條路上努力前進,同時身邊還多了更多的夥伴一同前進。雖然前進的速度時快時慢,但我堅信只要每天持續前進一些,就能朝夢想更近一些。

2014年時Angela Aki的這個MV帶給我許多的感動,在2015年的一開始,希望分享這個MV給所有還在努力前進的獨立遊戲開發者,只要相信自己的信念,堅持前進,就沒有人能夠打敗你。


追求夢想的路從來都不會是容易的,大家都是在不斷的痛苦掙扎中慢慢前進。Danny Choo的這篇我在日本的創業之路詳細地記載了他的創業過程,很值得獨立遊戲看發者做為參考。我們在2013年推出Space Qube遊戲之後其實也面臨了一段找不到方向的痛苦時期,記得那時每天起床時都很痛苦因為不知道今天能做些甚麼,所幸之後能夠及時找到方向,但是緊接而來的卻是趕工地獄 :) 

2014年的TGS則是另一個轉捩點,在TGS之前,我們只能相信自己的直覺去做我們覺得最好的遊戲。2014 TGS是我們第一次將遊戲的雛型公開,也是我們花了最多預算參加的一個遊戲展,所以我們也很擔心如果展出的結果不如預期的話該怎麼辦。TGS前的兩個月每個周末都是在辦公室中度過的,不過意外的是這次TGS前一天我居然能有五小時的睡眠 ^^。TGS之後,我們的新遊戲Qubot得到了許多關注,也在TGS期間得到最佳新秀獎的提名,至此我們才確定了我們是走在正確的方向上。


Qubot的配樂還是由前洛克人配樂松前真奈美所創作的,這也是之前完全沒預料到的發展。總而言之,接下來應該還有很長的路要走,不過我是絕對不會認輸的 :)