2012年6月22日 星期五

期末專案報告書

期末專案報告書

遊戲名稱:
拳擊
遊戲內容:
藉由與視訊的互動,來進行一場比賽,遊戲方式為攻擊敵方電腦,直到某方生命值為零即可判定勝負。
遊戲理念與方法:
會想要用拳擊當作主題是因為看到老師之前放的影片中有一部分是屬於格鬥類型的,但是都是平面戰鬥,所以就想試看看如果用第一人稱的遊戲畫面來呈現會是怎樣的寫法,因此我就採用拳擊的遊戲介面來呈現。

當初設計的構想圖中,敵方是會進行移動與防守進攻的,而我方是要在被敵人擊倒以前將敵方KO,而打到敵人不同的要害部位會有不同的傷害效果,但是打在敵人的手套上是無法造成任何傷害的,相對的敵人若是打在我方的手套上也是徒勞的,攻防戰就是這麼簡單。

專案影片: http://youtu.be/Xa7EOs9DWNk

製作過程的困境:
我一開始打算用FLASH自己做一個簡單的敵人,但是後期因為敵人與我方的攻擊判定等等問題沒處理的很完善,加上技術不純熟,所以只好放棄。再來就是運用上課教材中的程式碼,一開始我就因為為了設計AI想了很久,最後只好使用木頭AI:站著給人家打,再來就是設計我方的攻擊狀態,再來就是如何進行攻擊,當初我有想過往「上」或者是往「前」攻擊,甚至我還想過要不要「斜著」打,最後選擇往前打,因為往上打除了看起來很蠢以外,還很難操作,至於斜著打如果要打到敵人右方好像太麻煩了,因此我就選擇可以直覺操作的正面攻擊。再來就是「如何攻擊」的設計,當初我是打算使用「比例」來判定,就是利用距離跟面積的關係來判定是否有攻擊行為,例如:我在離攝影機約100公分左右手的大小約10平方公分,而現在手的面積在攝影機中已經變成30平方公分,表示我的手有移動過的可能,可是計算比例大小的判定不是說寫得很順利,應該說不知道如何判定面積的部分,後來突然想到還有別的判定方法,就是利用色彩偵測。使用色彩偵測的想法來的非常突然,不過這也是很好的解決方案,首先玩家需要帶著紅色跟藍色的雙色手套,掌心那一面是紅色,而手背則是藍色,紅色是代表防禦,藍色則是代表攻擊,當藍色判定為攻擊的時候如果又打在要害部位時會對敵人造成受傷的傷害,接著只要把敵人的生命值消耗為零即可辦定勝負。另外在測試過程還有一個大麻煩就是:鏡射問題,因為我的遊戲有左右手的概念,也就是說我在舉起「左
手」並且攻擊的時候,「遊戲中的我」也是舉起「左手」在攻擊,所以看起來好像是我在使用右手一樣,至於我上網查了一些資料,蠻多都是OpenCV跟VB的資料,很可惜有些語法無法直接使用。
 (←往前)  (←往上)
(←往斜)


反思與反省:
我這次的專案展示沒有成功,歸咎於自己的太貪心跟狂妄,想到很多設計跟遊戲方式,但卻又沒有能力把它設計至遊戲裡面,而且在製作過程一度想換主題,因為已經製作到一半也捨不得換主題了,不過我也很高興一開始我沒有放棄這個主題,雖然成品沒有出來,但是在製作的過程可以學到許多上課沒有交到的技術,而且大家聚在一起寫程式的那個風氣跟可以找人一同討論的便捷度不是一個人躲在家裡寫程式可以所比擬的,也很高興有參加這次的課程。

沒有留言: