在 2006 年,自己確實是有很多收獲,在 2007 年來之前,在這裡做個簡單回顧吧。
在今年四月,我發報了自己製作的遊戲「Final Spike」片段,得到了一些正面的評價,亦從中認識了多位在業界中的新朋友,可以說是個很好的經驗。而我亦在努力,希望有一天能夠真正完成這個遊戲,說到底這是我第二個「可以玩」的遊戲,不想輕易將她丟下來。很多朋友都說,如果「Final Spike」能夠連線雙打或對戰,將會是個不錯的遊戲,所以在未來的2007年,應該會嘗試加個 Network 功能進 Ngan-GINE'3D 中,希望可以吧。同時,我亦慢慢地將圖像引擎 OGRE,來代替自己的 Ngan-GINE'3D 引擎的圖像部分,期間的進度雖然慢了一點,但是在功能方面已經達成 90% 了,相信只要運用她來試作遊戲,便能夠完善功能的了。
今年亦有一個頗為意外的得著,這個不是甚麼實際的東西,而是一種理論比較的認知,從兩種理論上,我自己得出了一個答案,當然這個是個人理念上的得著,但是卻令我從中學習了一些重要的新知識。
得著很多之餘,其實亦有不少事情,是要提醒自己的,例如一個很重要的:說話沒分吋。有時候自己在說話方面,確是不懂分輕重,總是會在不為意下說話太直接或是用詞太重,希望朋友們都能夠原諒我,在 2007 年 ( 及往後 ) 希望自己不會再開罪別人吧。
Saturday, December 30, 2006
Friday, December 29, 2006
開發工具的願望
如果要做一個 Indie Game Developer,確實對工具的選用很挑剔,因為 IGD 可以用的錢不多,不會動不動便用 3DStudio MAX 或 MAYA 這類怪獸軟件,因為價錢太貴了。但是有時候一些廉價的軟件,卻不能滿足遊戲製作的要求,例如我常用的 MilkShape3D,沒有 Multi-Texture 之類方便的功能。
這幾天因為台灣的地震天災,令 Internet 都癱瘓了,但我很努力地留意著 Blender3D 的網頁,為什麼呢?是因為下一個版本的 Blender3D,有個新的功能,就是支援 Multi-Texture Layer 了。這個可說是 IGD 的一項喜訊,IGD 就是需要功能強大且又廉價的工具,Blender3D 原本是個很好的選擇 ( 何況她是免費的 ),這下子看來,會吸引到不少人轉用 Blender3D 也不定,最起碼我是被吸引的一個啊。
但是,這幾天以來,我仍不能夠到訪 Blender3D.org 呢。
[*] 應該係 Multiple UV/Vertex Colors
這幾天因為台灣的地震天災,令 Internet 都癱瘓了,但我很努力地留意著 Blender3D 的網頁,為什麼呢?是因為下一個版本的 Blender3D,有個新的功能,就是支援 Multi-Texture Layer 了。這個可說是 IGD 的一項喜訊,IGD 就是需要功能強大且又廉價的工具,Blender3D 原本是個很好的選擇 ( 何況她是免費的 ),這下子看來,會吸引到不少人轉用 Blender3D 也不定,最起碼我是被吸引的一個啊。
但是,這幾天以來,我仍不能夠到訪 Blender3D.org 呢。
[*] 應該係 Multiple UV/Vertex Colors
Wednesday, December 20, 2006
我的 Casual 遊戲市場觀
Casaul 遊戲,在我最初接觸的時候,是因為香港人工作太忙,而且工時長,人們唯一可以得到娛樂的時候,就是在乘車過程中,在 Palm / Pocket PC 上玩些小遊戲。
這一年以來,我都想以 Shareware / Casual 遊戲形式,推出自己製作的電腦遊戲。因為這個原因,看多了這個市場的新聞,在短短的幾個月來,感覺到這個市場有著微妙的變化。先說說亞洲區的 Casual 遊戲文化,亞洲區看來是因為受到日本的遊戲文化影響 ( 包括我自己 ),很多 Casual 遊戲都是以動作類為主要題材,例如我早前說過的韓國遊戲展,當中有很多 Casual 遊戲都是動作類,甚至是射擊類遊戲也有。但是亞洲區的 Casual 遊戲發展,就只是屬於初期起步階段,畢竟以往都是以電視遊戲機主導市場 ( 看到 Sony 在 PS3 上也推出 E-Distribute 服務,便知道 Casual 遊戲越是被人重視 )。
而 Casual 遊戲在美國,是屬於一個發展成熟的階段,回想美國其實在十多、二十多年前,已經開始了 Shareware 遊戲市場,相信當中經典例子可以說是「DOOM」了。慢慢演變到現在的 Casual 遊戲市場,變化上亦有很大的差別,現在的 Casual 遊戲市場上,主要都是一些所謂「Match-3」的遊戲,這類遊戲變化很單調,但卻大受歡迎,因為有很多中年人士都很喜歡玩。在這一年來,我也看到不少「非 Match-3」的遊戲出現在美國市場,而且成績也不錯,看來市場亦在慢慢滲入其他類型遊戲。
我自己在想製作甚麼類型遊戲時,都以一些動作類遊戲為主,除了自己喜歡玩動作遊戲外,被日本遊戲文化薰陶亦是主要原因。在我的年齡層,很多人的成長中,都是玩電視遊戲機的,那麼在電腦上製作一些,以往只會在電視遊戲機中玩到的遊戲,市場又是否有潛力呢?
這一年以來,我都想以 Shareware / Casual 遊戲形式,推出自己製作的電腦遊戲。因為這個原因,看多了這個市場的新聞,在短短的幾個月來,感覺到這個市場有著微妙的變化。先說說亞洲區的 Casual 遊戲文化,亞洲區看來是因為受到日本的遊戲文化影響 ( 包括我自己 ),很多 Casual 遊戲都是以動作類為主要題材,例如我早前說過的韓國遊戲展,當中有很多 Casual 遊戲都是動作類,甚至是射擊類遊戲也有。但是亞洲區的 Casual 遊戲發展,就只是屬於初期起步階段,畢竟以往都是以電視遊戲機主導市場 ( 看到 Sony 在 PS3 上也推出 E-Distribute 服務,便知道 Casual 遊戲越是被人重視 )。
而 Casual 遊戲在美國,是屬於一個發展成熟的階段,回想美國其實在十多、二十多年前,已經開始了 Shareware 遊戲市場,相信當中經典例子可以說是「DOOM」了。慢慢演變到現在的 Casual 遊戲市場,變化上亦有很大的差別,現在的 Casual 遊戲市場上,主要都是一些所謂「Match-3」的遊戲,這類遊戲變化很單調,但卻大受歡迎,因為有很多中年人士都很喜歡玩。在這一年來,我也看到不少「非 Match-3」的遊戲出現在美國市場,而且成績也不錯,看來市場亦在慢慢滲入其他類型遊戲。
我自己在想製作甚麼類型遊戲時,都以一些動作類遊戲為主,除了自己喜歡玩動作遊戲外,被日本遊戲文化薰陶亦是主要原因。在我的年齡層,很多人的成長中,都是玩電視遊戲機的,那麼在電腦上製作一些,以往只會在電視遊戲機中玩到的遊戲,市場又是否有潛力呢?
Wednesday, December 13, 2006
有時間便要想想
近來忙得不得了,跟本就沒有空閒去做自己的事,當然包括寫Blog了。
有趣的是,這個聖誕節突然被迫放假兩個星期,這下子太突然,還未知做甚麼好。但一想到放完假後,又會是一輪衝鋒陷陣的忙碌,就不其然感到有點惶恐。在寫程式方面,完全沒有時間去理會,今晚看著自己的程式,也有點不知所措。近來都有點小事令我模不著頭腦,家中的電腦有大量不知名的硬件毛病,寬頻速度不穩定,今年聖誕節沒有禮物想送給自己......等等;確實剛才所說的都不是甚麼大問題,只是感覺不良好,其實這樣很不對,始終自覺自己是幸運的一群。
除了「Final Spike」遊戲外,近來很想做一個Shooting遊戲,如果大家有玩過SEGA的「Panzer Dragoon」系列或「Planet Harriers」的話,就會明白我想做的遊戲是怎樣的了,但是這仍然是在構思中。
有趣的是,這個聖誕節突然被迫放假兩個星期,這下子太突然,還未知做甚麼好。但一想到放完假後,又會是一輪衝鋒陷陣的忙碌,就不其然感到有點惶恐。在寫程式方面,完全沒有時間去理會,今晚看著自己的程式,也有點不知所措。近來都有點小事令我模不著頭腦,家中的電腦有大量不知名的硬件毛病,寬頻速度不穩定,今年聖誕節沒有禮物想送給自己......等等;確實剛才所說的都不是甚麼大問題,只是感覺不良好,其實這樣很不對,始終自覺自己是幸運的一群。
除了「Final Spike」遊戲外,近來很想做一個Shooting遊戲,如果大家有玩過SEGA的「Panzer Dragoon」系列或「Planet Harriers」的話,就會明白我想做的遊戲是怎樣的了,但是這仍然是在構思中。
Thursday, November 23, 2006
捉鹿不脫角
有時候,我會有個奇怪的「製作遊戲的原動力」,例如因為朋友的一句:「為什麼電腦上就是沒有 Spikeout 類的遊戲」,我便有製作 Final Spike 的念頭。
我閒時會用些時間看一些遊戲製作的網頁,而且在當中會找到些有趣的遊戲,前幾天我看到了這個遊戲,Rocket Boards,她看起來有點像 Mario Kart 賽車,那我便下載來試試,下載一開始我被她嚇一嚇,因為她的 Demo 版本只是 2.44MB,很 TINY 呢...。很快地便下載完成,當然是 Install 來看看,如下載一樣,很快便 Install 完畢。執行遊戲來看看,進入遊戲後,發現畫面很簡單,沒有很多的花巧東西,Start、Option、Quit...等都是基本有的選項。開始遊戲看看,因為只是 Demo 版本,只有一個賽事可以選擇,就來試試比賽吧。
有點想像不到,畫面很簡單,操作方面比畫面更簡單,加速、左右及 Turbo 鍵,就是這麼了。但有趣的是,我真的覺得「也算不錯啊」,先不要談論這遊戲的畫面質數,其實她的簡單卻令我覺得來得有點簡潔明快,但同時覺得可惜的是遊戲性卻過份簡單,給人「捉到鹿不懂脫角」的感覺。
這遊戲賣 US$19.95,我看完那個價錢後,和一個朋友戲言,不如我也快速地做個這類遊戲出來吧,可能也賺到點快錢啊。
我閒時會用些時間看一些遊戲製作的網頁,而且在當中會找到些有趣的遊戲,前幾天我看到了這個遊戲,Rocket Boards,她看起來有點像 Mario Kart 賽車,那我便下載來試試,下載一開始我被她嚇一嚇,因為她的 Demo 版本只是 2.44MB,很 TINY 呢...。很快地便下載完成,當然是 Install 來看看,如下載一樣,很快便 Install 完畢。執行遊戲來看看,進入遊戲後,發現畫面很簡單,沒有很多的花巧東西,Start、Option、Quit...等都是基本有的選項。開始遊戲看看,因為只是 Demo 版本,只有一個賽事可以選擇,就來試試比賽吧。
有點想像不到,畫面很簡單,操作方面比畫面更簡單,加速、左右及 Turbo 鍵,就是這麼了。但有趣的是,我真的覺得「也算不錯啊」,先不要談論這遊戲的畫面質數,其實她的簡單卻令我覺得來得有點簡潔明快,但同時覺得可惜的是遊戲性卻過份簡單,給人「捉到鹿不懂脫角」的感覺。
這遊戲賣 US$19.95,我看完那個價錢後,和一個朋友戲言,不如我也快速地做個這類遊戲出來吧,可能也賺到點快錢啊。
Saturday, November 18, 2006
閒談
有一段時間沒有到訪過一些網頁, 今天上網到處逛逛。
這段「Principles of Virtual Sensation」內容很不錯,究竟甚麼是 Gameplay 的感覺,這篇文章也是個不錯的引導。
國內亦有 Coding 高手,可以看看這篇文章「A 2D Render Base Using Policy Based Design」,雖然我不太懂當中的 C++ 用法,但我看不懂的就是利害的吧。
在不久前,看過一本書,名為「Masters of DOOM ( 中譯:DOOM 啟世錄 )」,很有啟發性的,如果有朋友想做遊戲,不訪看看這本書,如果你是業內人士,而未看過的話,也建議你看看。
最近看到 PS3 遊戲機的發售情況,確是覺得有點奇怪,那些購買的人在做甚麼呢?在這之前幾天,看到 XBox360 的 Gears of War 這個遊戲,確是覺得有點迷茫,那些人是怎樣做到的?
在上星期做了個簡單的測試,給大家看看。
這段「Principles of Virtual Sensation」內容很不錯,究竟甚麼是 Gameplay 的感覺,這篇文章也是個不錯的引導。
國內亦有 Coding 高手,可以看看這篇文章「A 2D Render Base Using Policy Based Design」,雖然我不太懂當中的 C++ 用法,但我看不懂的就是利害的吧。
在不久前,看過一本書,名為「Masters of DOOM ( 中譯:DOOM 啟世錄 )」,很有啟發性的,如果有朋友想做遊戲,不訪看看這本書,如果你是業內人士,而未看過的話,也建議你看看。
最近看到 PS3 遊戲機的發售情況,確是覺得有點奇怪,那些購買的人在做甚麼呢?在這之前幾天,看到 XBox360 的 Gears of War 這個遊戲,確是覺得有點迷茫,那些人是怎樣做到的?
在上星期做了個簡單的測試,給大家看看。
Sunday, November 12, 2006
重新定義「 Casual Game 」?
近幾天都沒有看過遊戲新聞,今天用了點時間看看這幾天所錯過的。
這幾天同時是韓國遊戲展「G ★ 2006」開 Show,看到很多有關這個遊戲展的新聞,有趣得很,看過之後令我覺得有點迷惑,因為韓國遊戲已經將「 Casual Game 」一詞,和歐美遊戲的「 Casual Game 」一詞脫勾。在一貫歐美的「 Casual Game 」一詞,泛指一些 Bejeweled 類的遊戲,但是韓國遊戲已是完全不同的演譯.例如:KoongPa (Casual Action)、Cross Fire (Casual FPS)、ATrix (Casual Action) ... etc。 ( 以上連結全是日文網頁 )
「 Casual Game 」這個詞,在感覺上好像已被重新定義了。
這幾天同時是韓國遊戲展「G ★ 2006」開 Show,看到很多有關這個遊戲展的新聞,有趣得很,看過之後令我覺得有點迷惑,因為韓國遊戲已經將「 Casual Game 」一詞,和歐美遊戲的「 Casual Game 」一詞脫勾。在一貫歐美的「 Casual Game 」一詞,泛指一些 Bejeweled 類的遊戲,但是韓國遊戲已是完全不同的演譯.例如:KoongPa (Casual Action)、Cross Fire (Casual FPS)、ATrix (Casual Action) ... etc。 ( 以上連結全是日文網頁 )
「 Casual Game 」這個詞,在感覺上好像已被重新定義了。
Sunday, November 05, 2006
為何是OGRE?
上星期,有個朋友問我:「既然你用自己的 Ngan-GINE'3D 能做出遊戲來,為什麼還要用那個OGRE呢?」;我當時並沒有細想這個問題,很快地答:「因為好玩。」
其實朋友的這個問題很不錯,「為什麼要用 OGRE 呢?」;其實我的 Ngan-GINE'3D 中,有很多功能都是沒有的,例如:Stencil Shadow Volumn、Scene Management、Animation Blending... 等等。雖然這些功能看似很基本,但是在 Ngan-GINE'3D 中是沒有的,這是我選擇OGRE的原因之一。
另一個原因是,OGRE 是可以隨時加入 Shader 機能,雖然我現在不懂 Shader,但「居安思危」嘛。
最後一個原因就是,因為 OGRE 是 Open Source 的,我確是想過 Multi-Platform,例如 Mac OSX。雖然這個原因不是很重要,但總是覺得「感覺良好」。
其實朋友的這個問題很不錯,「為什麼要用 OGRE 呢?」;其實我的 Ngan-GINE'3D 中,有很多功能都是沒有的,例如:Stencil Shadow Volumn、Scene Management、Animation Blending... 等等。雖然這些功能看似很基本,但是在 Ngan-GINE'3D 中是沒有的,這是我選擇OGRE的原因之一。
另一個原因是,OGRE 是可以隨時加入 Shader 機能,雖然我現在不懂 Shader,但「居安思危」嘛。
最後一個原因就是,因為 OGRE 是 Open Source 的,我確是想過 Multi-Platform,例如 Mac OSX。雖然這個原因不是很重要,但總是覺得「感覺良好」。
Thursday, October 26, 2006
Tuesday, October 24, 2006
玩遊戲
由始至終,我還是喜歡玩遊戲的。
近日有數個遊戲推出,當中想玩的有「JoJo奇妙冒險 (PS2)」、「Splinter Cell : Double Agent (Multi)」及其他一些小型一點的遊戲。一如以往,我還是喜愛玩動作遊戲的。
如果要製作遊戲,我覺得先要條件就是要玩遊戲,不管你是喜歡玩甚麼類型的遊戲,也不要只玩同一隻遊戲,在同一種類遊戲中,亦有很多不同的遊戲,就例如我上面說的,動作遊戲也有很多不同的選擇。玩遊戲的時候,可以在當中感受到遊戲是好玩還是不好玩,好玩的原因是甚麼?不好玩的原因又是甚麼?
但是究竟一個遊戲製作人,應不應該多玩遊戲呢?這個問題真的很有趣。
近日有數個遊戲推出,當中想玩的有「JoJo奇妙冒險 (PS2)」、「Splinter Cell : Double Agent (Multi)」及其他一些小型一點的遊戲。一如以往,我還是喜愛玩動作遊戲的。
如果要製作遊戲,我覺得先要條件就是要玩遊戲,不管你是喜歡玩甚麼類型的遊戲,也不要只玩同一隻遊戲,在同一種類遊戲中,亦有很多不同的遊戲,就例如我上面說的,動作遊戲也有很多不同的選擇。玩遊戲的時候,可以在當中感受到遊戲是好玩還是不好玩,好玩的原因是甚麼?不好玩的原因又是甚麼?
但是究竟一個遊戲製作人,應不應該多玩遊戲呢?這個問題真的很有趣。
OG-NG'3D Oct'2006
在過去幾晚時間的努力下,我終於解決了在遊戲畫面上,顯示 Mini-Map 的方法了。今晚終於可以在這裡說,在過去努力將 Ngan-GINE'3D 中,圖像部分改為用 OGRE3D 代替的工作,可以說是大致完成了,實在是可喜可賀。
之前一直將 Final Spike 的開發工作停止,都是因為想做好這個「OG-NG'3D」,才繼續開發。自今晚之後,我便可以開始將已有的程式,轉到 OG-NG'3D 上,相信這個將是用最多時間的了,因為 Final Spike 的 Gameplay 大致已完成,雖然還可能會加強,但整體而言完成度已很高,欠的只是其餘的 3D Model 製作 ( 及一些額外的互動 Gameplay )。
希望能夠盡快有些新的 Screen Shot 給大家看吧。
之前一直將 Final Spike 的開發工作停止,都是因為想做好這個「OG-NG'3D」,才繼續開發。自今晚之後,我便可以開始將已有的程式,轉到 OG-NG'3D 上,相信這個將是用最多時間的了,因為 Final Spike 的 Gameplay 大致已完成,雖然還可能會加強,但整體而言完成度已很高,欠的只是其餘的 3D Model 製作 ( 及一些額外的互動 Gameplay )。
希望能夠盡快有些新的 Screen Shot 給大家看吧。
Sunday, October 15, 2006
Monday, October 09, 2006
HIMMG vol.04
上一回說道,一些我對 Collision Detection 的處理,希望大家明白吧。那麼這次說甚麼好呢?不如......就說說我是如何製作 Level Map Model,以配合「 Ngan-GINE'3D 」來製作遊戲吧。
大家也知道,我是用 MilkShape3D 這個工具來製作 3D Model 的了,在我製作的3D遊戲「 Final Spike 」中,90% 的 3D Model 都是用這個工具製作的,另外的 10% 是用了一個叫做 LithUnwrap3D,來 Unwrap 及調較 Texture UV,其實這個 MilkShape3D 可以做到甚麼的呢?很簡單的說,就是只可以用來做 Low-polygon model,加上 Skeleton Animation 及 Plugin SDK 功能罷了。所以,這軟件和一般的 3D Model 軟件比較 ( 例如:3DSMax、MAYA ... 等 ),可以說是完全比下去。
就使用 MilkShape3D 來製作遊戲,我做了數個實驗,究竟如何才能在有限的知識,和資源下,做到一些快速的 3D 遊戲呢?首先我要想的,是如果規劃一個場景的繪畫方法。因為我不懂 BSP Tree 或 QuadTree 之類的演算法,我便想到,有沒有可能以「人手方法」劃分整個場景呢?可能我的想法真的很天真地開始,人手方法,就是先繪畫好場景,整理好場景會有甚麼物件,盡量在「妥協」的方法來製作場景。最後我試出了一個方法,就是自己分好場景中的小區份,每個小區份用一場大 Size 的 Texture 來儲好要用的所有 Texture ( 如左圖,實際 size 為 512x512 ),這樣我便可以大大減少因為要換 Texture,而做成的速度延遲問題。
最後也說一說,我的 Level Map 是使用 Lightmap 的,但其實我沒有甚麼好方法去做的,因為我的方法就是......自己畫 ( 不要笑啊... )。
大家也知道,我是用 MilkShape3D 這個工具來製作 3D Model 的了,在我製作的3D遊戲「 Final Spike 」中,90% 的 3D Model 都是用這個工具製作的,另外的 10% 是用了一個叫做 LithUnwrap3D,來 Unwrap 及調較 Texture UV,其實這個 MilkShape3D 可以做到甚麼的呢?很簡單的說,就是只可以用來做 Low-polygon model,加上 Skeleton Animation 及 Plugin SDK 功能罷了。所以,這軟件和一般的 3D Model 軟件比較 ( 例如:3DSMax、MAYA ... 等 ),可以說是完全比下去。
就使用 MilkShape3D 來製作遊戲,我做了數個實驗,究竟如何才能在有限的知識,和資源下,做到一些快速的 3D 遊戲呢?首先我要想的,是如果規劃一個場景的繪畫方法。因為我不懂 BSP Tree 或 QuadTree 之類的演算法,我便想到,有沒有可能以「人手方法」劃分整個場景呢?可能我的想法真的很天真地開始,人手方法,就是先繪畫好場景,整理好場景會有甚麼物件,盡量在「妥協」的方法來製作場景。最後我試出了一個方法,就是自己分好場景中的小區份,每個小區份用一場大 Size 的 Texture 來儲好要用的所有 Texture ( 如左圖,實際 size 為 512x512 ),這樣我便可以大大減少因為要換 Texture,而做成的速度延遲問題。
以上的方法,大家可以看看下圖例子:
最後也說一說,我的 Level Map 是使用 Lightmap 的,但其實我沒有甚麼好方法去做的,因為我的方法就是......自己畫 ( 不要笑啊... )。
Saturday, October 07, 2006
遊戲的製作成本
在幾個月前,我曾經說過有興趣以「Indie Game Developer」形式,來發展自己的遊戲製作,所以這幾個月來的空閒時間,都會上網看看一些關於這方面的資料,最多去的網站莫過於 GameProducer.net 了。在這個網站中,都會看到近大半年來的一些小公司,或 IGD 的小型遊戲銷售報告,從而得知業內的情況。
在整體而言,單看網頁上的銷售數字報告,確實令人有點不安,因為當中的數字顯示,成功的個案雖然不少,但往往都只能做到收支平衡,從中得到純利的例子比較少。雖說做到收支平衡也是很不錯的了,但這個亦是值得深思的情況,究竟以 Shareware / Casual game 形式做遊戲,能不能賺取金錢呢?
昨天看到一篇報導,說次世代遊戲「Gears Of War」,其製作成本為1000萬美金,亦即是7790萬港元,假設每隻遊戲賣$400港元 ( 頗為貴... ),足足要賣出20萬隻才能收回成本,這個的確是很危險的數字呢。
曾經和一個朋友討論過這個題目,相信遊戲出現兩極化的情況將會越來越明顯,一是超漂亮但成本超高 ( 但未知遊戲是否好玩 ) ,另外是 小型遊戲且成本低 ( 多為Shareware / Casual game )。但是有一點我比較關注的,就是究竟 Shareware / Casual game 市場中,有多少人是接受 3D 動作遊戲呢?究竟有沒有人像我一樣,是喜愛玩動作遊戲呢?好像有點不明朗呢......
在整體而言,單看網頁上的銷售數字報告,確實令人有點不安,因為當中的數字顯示,成功的個案雖然不少,但往往都只能做到收支平衡,從中得到純利的例子比較少。雖說做到收支平衡也是很不錯的了,但這個亦是值得深思的情況,究竟以 Shareware / Casual game 形式做遊戲,能不能賺取金錢呢?
昨天看到一篇報導,說次世代遊戲「Gears Of War」,其製作成本為1000萬美金,亦即是7790萬港元,假設每隻遊戲賣$400港元 ( 頗為貴... ),足足要賣出20萬隻才能收回成本,這個的確是很危險的數字呢。
曾經和一個朋友討論過這個題目,相信遊戲出現兩極化的情況將會越來越明顯,一是超漂亮但成本超高 ( 但未知遊戲是否好玩 ) ,另外是 小型遊戲且成本低 ( 多為Shareware / Casual game )。但是有一點我比較關注的,就是究竟 Shareware / Casual game 市場中,有多少人是接受 3D 動作遊戲呢?究竟有沒有人像我一樣,是喜愛玩動作遊戲呢?好像有點不明朗呢......
Saturday, September 30, 2006
錯、錯、錯!
實在是一個打擊。
今天閒來想想,不如試試 Load 入一個較多 Polygon 數量的 Stage Map,來比較一下 Ngan-GINE'3D,及現正製作中的「OGRE3D + Ngan-GINE'3D」之間的速度。在舊有的 Ngan-GINE'3D 運行時,發生了未見過的問題,就是 Texture 方面,會出現錯配的情況。這個發現令我很驚訝,因為我從來未試過這情況。最有趣的是,這個問題延伸至「OGRE3D + Ngan-GINE'3D」中,所以這個週末的國慶假期,應該會是 Debug 的假期了。
今天閒來想想,不如試試 Load 入一個較多 Polygon 數量的 Stage Map,來比較一下 Ngan-GINE'3D,及現正製作中的「OGRE3D + Ngan-GINE'3D」之間的速度。在舊有的 Ngan-GINE'3D 運行時,發生了未見過的問題,就是 Texture 方面,會出現錯配的情況。這個發現令我很驚訝,因為我從來未試過這情況。最有趣的是,這個問題延伸至「OGRE3D + Ngan-GINE'3D」中,所以這個週末的國慶假期,應該會是 Debug 的假期了。
Sunday, September 24, 2006
TGS 2006
這個周末,最為人所注意的事情,莫過於東京遊戲展覽TGS2006了。今年當然是PS3的世界了,因為在TGS2006之前,Nintendo已經自己辦了個「Wii」的Preview Show,所以在TGS2006中不會特別多Wii的消息了。在今次的TGS中,大家的眼光都會注視在「Metal Gear Solid 4」及「Devil May Cry 4」( 正所謂無獨有偶,都係「4」)。
「Metal Gear Solid 4」確實是沒有特別驚喜了,因為玩法上大家已經很「習慣」了,單看Trailer中,Snake的動作及一些細節,都和一貫的MGS差不多,當然是多了點新操控,但就是缺乏驚喜,可以那些驚喜是圖像吧......。
「Devil May Cry 4」反而是有點驚喜,驚喜的不是有新主角,不是那套舊操控,驚喜是,遊戲的「Visual Effects」就是漂亮得不得了,令我想起,日本遊戲界內有個職位,叫做「Effect Artist」。
今年的TGS2006就是這麼多了嗎?答案是:「是呀!」
「Metal Gear Solid 4」確實是沒有特別驚喜了,因為玩法上大家已經很「習慣」了,單看Trailer中,Snake的動作及一些細節,都和一貫的MGS差不多,當然是多了點新操控,但就是缺乏驚喜,可以那些驚喜是圖像吧......。
「Devil May Cry 4」反而是有點驚喜,驚喜的不是有新主角,不是那套舊操控,驚喜是,遊戲的「Visual Effects」就是漂亮得不得了,令我想起,日本遊戲界內有個職位,叫做「Effect Artist」。
今年的TGS2006就是這麼多了嗎?答案是:「是呀!」
Tuesday, September 19, 2006
功能完全轉換 (?)
大約一個月前,我在自己的Ngan-GINE'3D內,加入了一個簡單的功能,是有關Skeleton Animation的,就是可以隨時換入另一組Animation(當然首要條件是同一Skeleton)。在轉到OGRE3D時,我勢必要將這功能在新的Engine內達成,因為的確是很實用。
在前兩晚,經過了一個多小時的OGRE3D Doc的閱讀及實驗,成功地將上面所說的功能加進了。就這樣,有關Skeleton Animation的功能轉換上,可以說是完全達成了,實在是可喜可賀。另外今晚亦加進了Portal及Sector的檢查,完善多一點有關Level Map的功能。看來所要的功能都差不多齊全了,是時候用這個新的OG-Ng3D來試作「Final Spike」了。
在前兩晚,經過了一個多小時的OGRE3D Doc的閱讀及實驗,成功地將上面所說的功能加進了。就這樣,有關Skeleton Animation的功能轉換上,可以說是完全達成了,實在是可喜可賀。另外今晚亦加進了Portal及Sector的檢查,完善多一點有關Level Map的功能。看來所要的功能都差不多齊全了,是時候用這個新的OG-Ng3D來試作「Final Spike」了。
Sunday, September 17, 2006
Monday, September 04, 2006
Control Fine-tuned
遊戲中的 Control 確實是很重要的,在我的「 Final Spike 」中,一直有個操控上的小問題,就是在普通連續攻擊的按鍵 Timing,有點不太順暢,但如果能夠習慣那個 Timing 的話,不是個大問題。但總是會令一些新嘗試這遊戲的人,一種不如意的感覺,所以昨天用了點時間,在這方面看看有沒有解決方法。
在一個多小時的試驗下,試了很多次後,終於達到了 Timing 順暢的效果了,在每一個連續攻擊時的按鍵,已變得比較順暢,再沒有「 要習慣那個 Timing 」的問題了,操控上差不多達到完美境界了。
在一個多小時的試驗下,試了很多次後,終於達到了 Timing 順暢的效果了,在每一個連續攻擊時的按鍵,已變得比較順暢,再沒有「 要習慣那個 Timing 」的問題了,操控上差不多達到完美境界了。
Thursday, August 31, 2006
簡單原是美
昨天,和一個朋友討論 OGRE3D,我說道 OGRE3D 令我很困惑,看多了,試多了 OGRE3D,發現她的複雜程度超符想像,而且同時再發現我自己的 Ngan-GINE'3D,在設計方面真的很簡單。
如果要將 Ngan-GINE'3D,和其他類似 OGRE3D 的 Graphic Engine 比較,我會以一個比喻來形容:若 OGRE3D 是個 3D Engine,那 Ngan-GINE'3D 是個 2D 型態的 3D Engine。我在說甚麼呢?我真的沒有說錯啊,因為 Ngan-GINE'3D 的設計,看上去真的好像個 2D Engine,讓我簡單地作一說明。在一般的 3D Engine,都會用上 Scene Management,每一樣物件,無論是場景,3D 人物.....等等,都要套入一些叫 Scene Node 的節點上,這樣整個 3D 場景可以有規律地處理好。
而 Ngan-GINE'3D 是沒有 Scene Management 的,亦即是沒有 Scene Node 等的節點,而且沒有設定那種物件要先畫,那種後畫,情形和一般的 2D Engine 相似。在我用它來做遊戲時,場景上的東西都是由我分配先後次序,例如先畫 Skybox,然後是 Level Map,靜態物件,3D 人物,Billboard 效果,最後是 2D Sprite / GUI,處理上真的和 2D Engine 沒太大分別,所以我會用「 2D 型態的 3D Engine」來形容 Ngan-GINE'3D。
Ngan-GINE'3D 這樣的設計,在 G-Force 2 MX 等級 3D Card 中能夠實現,要多謝科技的進步,令不可能變成可能,簡單原是美。
如果要將 Ngan-GINE'3D,和其他類似 OGRE3D 的 Graphic Engine 比較,我會以一個比喻來形容:若 OGRE3D 是個 3D Engine,那 Ngan-GINE'3D 是個 2D 型態的 3D Engine。我在說甚麼呢?我真的沒有說錯啊,因為 Ngan-GINE'3D 的設計,看上去真的好像個 2D Engine,讓我簡單地作一說明。在一般的 3D Engine,都會用上 Scene Management,每一樣物件,無論是場景,3D 人物.....等等,都要套入一些叫 Scene Node 的節點上,這樣整個 3D 場景可以有規律地處理好。
而 Ngan-GINE'3D 是沒有 Scene Management 的,亦即是沒有 Scene Node 等的節點,而且沒有設定那種物件要先畫,那種後畫,情形和一般的 2D Engine 相似。在我用它來做遊戲時,場景上的東西都是由我分配先後次序,例如先畫 Skybox,然後是 Level Map,靜態物件,3D 人物,Billboard 效果,最後是 2D Sprite / GUI,處理上真的和 2D Engine 沒太大分別,所以我會用「 2D 型態的 3D Engine」來形容 Ngan-GINE'3D。
Ngan-GINE'3D 這樣的設計,在 G-Force 2 MX 等級 3D Card 中能夠實現,要多謝科技的進步,令不可能變成可能,簡單原是美。
Thursday, August 24, 2006
2D ? 沒問題 !!
哈... 終於用OGRE3D成功地做出了2D Sprite系統了,有UV Animation,也算不錯的了。這個2D Sprite確是用了我不少時間來做,最初的時候,用Overlay時有個大問題,只要我啟動任何一個2D Sprite,整個系統的其他Overlay也會消失,就連TextAreaOverlay也不能顯示出來,令我完全摸不著頭腦,後來試了多次也不能正確的顯示它們。
在近期的一個多星期工作都頗為忙碌,沒有太多時間去改做自己的Ngan-GINE'3D,就這樣我就用空餘的時間,上OGRE3D的網頁多看幾遍有關Overlay的資料。到了前晚,強迫自己坐下來再做一次,真的很奇怪,這樣重新做一次,以往的問題全都消失了,顯示出來的2D圖像都很正確,更沒有遮蔽著其他如TextAreaOverlay等2D圖像,奇怪得很。
有時候Programming就是這樣子,當有問題不能夠解決的時候,走開一會兒再回來試試,反而問題會簡單順利地解決好。
在近期的一個多星期工作都頗為忙碌,沒有太多時間去改做自己的Ngan-GINE'3D,就這樣我就用空餘的時間,上OGRE3D的網頁多看幾遍有關Overlay的資料。到了前晚,強迫自己坐下來再做一次,真的很奇怪,這樣重新做一次,以往的問題全都消失了,顯示出來的2D圖像都很正確,更沒有遮蔽著其他如TextAreaOverlay等2D圖像,奇怪得很。
有時候Programming就是這樣子,當有問題不能夠解決的時候,走開一會兒再回來試試,反而問題會簡單順利地解決好。
Saturday, August 19, 2006
HIMMG vol.03
在開發Ngan-GINE'3D當中,除了Skinned Mesh及Skeleton Animation外,相信最難纏的,就是如何做Object 與 Level Map之間的Collision Detection了,其實到現在我還未做好的,只是用了3rd party的Physics Engine來代替了。
我在做Level Map的Collision Detection時,想著其他遊戲是如何做的時候,我發現一個有趣的分歧,就是有些日本遊戲和其他國家遊戲的地圖Collision有點不同。看上去日本遊戲的地圖Collision資料都不是和原Level Map資料相同,我相信他們是用另一組超低Polygon資料,作為Collision Detection,減少運算量。就是這樣,我就決定用另一組超低Polygon資料做為Object與Level Map之間的Collision了,始終在我的Ngan-GINE'3D內,沒有任何類似BSP Tree的Scene Management,所以用超低Polygon資料減少運算量是最好的選擇。
這樣做解決了一般使用問題,並且以這方法參加了遊戲製作比賽,但後來想到,若果我的Level Map不只是一個Section,而是有更多不同的Section連接一起,那麼應該如何處理?後來就想到了,可以使用Portal系統了。我的Portal系統非常地簡單,當中只是有偵測Camera或Object在那個Sector,和Camera看到那個Sector的Portal,並沒有加進Camera在那一個Portal再計算Frustum Cull功能。關於我的Portal系統是如何運作,我曾經寫過一篇文章說明的呢。
到了近期,用上了Newton Game Dynamics後,已沒有再特別研究Object與Level Map Collision了,反而是用了時間研究,物理和遊戲之間如何達到和諧,融入Gameplay當中,這個才是將物理加入遊戲後真正的方向,就好像Half-Life 2就是個好例子。
我在做Level Map的Collision Detection時,想著其他遊戲是如何做的時候,我發現一個有趣的分歧,就是有些日本遊戲和其他國家遊戲的地圖Collision有點不同。看上去日本遊戲的地圖Collision資料都不是和原Level Map資料相同,我相信他們是用另一組超低Polygon資料,作為Collision Detection,減少運算量。就是這樣,我就決定用另一組超低Polygon資料做為Object與Level Map之間的Collision了,始終在我的Ngan-GINE'3D內,沒有任何類似BSP Tree的Scene Management,所以用超低Polygon資料減少運算量是最好的選擇。
這樣做解決了一般使用問題,並且以這方法參加了遊戲製作比賽,但後來想到,若果我的Level Map不只是一個Section,而是有更多不同的Section連接一起,那麼應該如何處理?後來就想到了,可以使用Portal系統了。我的Portal系統非常地簡單,當中只是有偵測Camera或Object在那個Sector,和Camera看到那個Sector的Portal,並沒有加進Camera在那一個Portal再計算Frustum Cull功能。關於我的Portal系統是如何運作,我曾經寫過一篇文章說明的呢。
到了近期,用上了Newton Game Dynamics後,已沒有再特別研究Object與Level Map Collision了,反而是用了時間研究,物理和遊戲之間如何達到和諧,融入Gameplay當中,這個才是將物理加入遊戲後真正的方向,就好像Half-Life 2就是個好例子。
Friday, August 18, 2006
老闆不可愛
老闆可愛嗎?相信在支薪水的那天,我才會覺得老闆是可愛的,所以,老闆是不可愛的。老闆除了不可愛,記憶力也不太好,讓我舉個例子。
數年前的一個早上,老闆要我做一個工作,老闆問我會怎樣做,我說「不如試試辦法A,可能有不錯的效果」,老闆聽後想了一會,回答說「還是用辦法B吧,比較穩紮穩打好了」。沒問題,我是打工仔,老闆說怎麼辦就怎麼辦。到了同一天的下午,老闆經過我的座位時,看看我的工作,老闆很驚訝地問我「你不是說用辦法A的嗎?為什麼你在用辦法B工作」,我登時感到很愕然,回答說「老闆你叫我用辦法B的,比較穩紮穩打啊」,老闆說「不、不、不,是用辦法A呀」。我無言以對,唯一可以做的,就是用辦法A重頭做一遍。
數年後的兩天前,上面的事情再次發生在我身上,只是老闆不是同一人罷了。
( 我所說的是我的老闆,不是其他人的老闆,朋友切勿誤會 )
數年前的一個早上,老闆要我做一個工作,老闆問我會怎樣做,我說「不如試試辦法A,可能有不錯的效果」,老闆聽後想了一會,回答說「還是用辦法B吧,比較穩紮穩打好了」。沒問題,我是打工仔,老闆說怎麼辦就怎麼辦。到了同一天的下午,老闆經過我的座位時,看看我的工作,老闆很驚訝地問我「你不是說用辦法A的嗎?為什麼你在用辦法B工作」,我登時感到很愕然,回答說「老闆你叫我用辦法B的,比較穩紮穩打啊」,老闆說「不、不、不,是用辦法A呀」。我無言以對,唯一可以做的,就是用辦法A重頭做一遍。
數年後的兩天前,上面的事情再次發生在我身上,只是老闆不是同一人罷了。
( 我所說的是我的老闆,不是其他人的老闆,朋友切勿誤會 )
Friday, August 11, 2006
十字路口 ~ !!
這幾晚都在研究,在 OGRE3D 中那些功能可以做到 2D Sprite,用 Overlay 嗎?不可,因為會有蓋過其他 Overlay 的問題。用 Rectangle2D?不能,因為沒有功能可以移動或旋轉。用 Billboard 呢?有大問題,不知如何設置 Camera 及 Viewport 才可以令 3D 位置轉為 2D Screen 位置。就是一大堆這類的擾人問題,如夜裡的蚊子一樣,在你耳邊不聽地飛,令你精神受到困擾。
真的很沮喪,在研究 OGRE3D 上每每都遇上難題,而且還要找不著答案。回想自己的 Ngan-GINE'3D,在製作時確實是以簡單易用為主,當然是以我對遊戲製作的認識作標準,雖然沒有甚麼利害的功能,但在速度上還算可以。這樣子下,我是繼續研究 OGRE3D,還是將時間投資在改進 / 加強 Ngan-GINE'3D 呢?是個十字路口的決擇啊。
真的很沮喪,在研究 OGRE3D 上每每都遇上難題,而且還要找不著答案。回想自己的 Ngan-GINE'3D,在製作時確實是以簡單易用為主,當然是以我對遊戲製作的認識作標準,雖然沒有甚麼利害的功能,但在速度上還算可以。這樣子下,我是繼續研究 OGRE3D,還是將時間投資在改進 / 加強 Ngan-GINE'3D 呢?是個十字路口的決擇啊。
Saturday, August 05, 2006
OGRE3D % Ngan-GINE'3D = ?
上一回說過,寫了個 OGRE3D 的 Manual Loader,但不知道是否真的起作用,後來我發現是可以強制用它來讀入資料的,隨即便試試,事實就和我預計的一樣,是不能正常運作的。所以前天晚上用了兩個小時,來測試這個 Loader,這個情況就令我想到,寫程式懂得 Debug 是非常重要的,最後當然是成功了。
終於搞清楚 OGRE3D 的 Billboard 及 Billboard Set 的分別了,試了一會後,成功做到了Texture UV Animation 了,因為在我的 Ngan-GINE'3D 內,也是用相同的方法做 Billboard 的,可以說是成功地代替了原 Ngan-GINE'3D 的 Billboard 整體功能了。
現在用 OGRE3D 的功能,來取代 Ngan-GINE'3D,大約如下:
- Skin Mesh
- Skeleton Animation Control
- Level Map with Portal-System
- Billboard with Animation
其他的功能,例如 2D Sprite 功能(用作 GUI,相信和 Billboard 差不多)還要再作研究。而Skybox/SkyDome 在 OGRE3D 內已有,不用特別研究。另外 DirectInput、WAV 及 OGG 播放等等,用回 Ngan-GINE'3D 也可以,所以沒有問題。相信只要做好 2D Sprite 功能後,就可以代替舊 Ngan-GINE'3D 了,新的名字還未想到,現時都只是叫作「OG-Ng3D」罷了。
終於搞清楚 OGRE3D 的 Billboard 及 Billboard Set 的分別了,試了一會後,成功做到了Texture UV Animation 了,因為在我的 Ngan-GINE'3D 內,也是用相同的方法做 Billboard 的,可以說是成功地代替了原 Ngan-GINE'3D 的 Billboard 整體功能了。
現在用 OGRE3D 的功能,來取代 Ngan-GINE'3D,大約如下:
- Skin Mesh
- Skeleton Animation Control
- Level Map with Portal-System
- Billboard with Animation
其他的功能,例如 2D Sprite 功能(用作 GUI,相信和 Billboard 差不多)還要再作研究。而Skybox/SkyDome 在 OGRE3D 內已有,不用特別研究。另外 DirectInput、WAV 及 OGG 播放等等,用回 Ngan-GINE'3D 也可以,所以沒有問題。相信只要做好 2D Sprite 功能後,就可以代替舊 Ngan-GINE'3D 了,新的名字還未想到,現時都只是叫作「OG-Ng3D」罷了。
Saturday, July 29, 2006
OGRE3D的麻煩
看著這個題目,大家也可能想到一二吧,對了,大家還記得上回我講及有關 OGRE3D,和 Ngan-GINE'3D 中的地圖資料互換,初時還以為解決了,但後來我發現,在 OGRE3D 的 Log 中,有一堆 Warning 投訴手動 Load 入資料,沒有 Manual Loader。我才知道,要自己 Load 入資料,是要自己做個 Loader,以便當 OGRE3D 丟失資料時,可以作為 Reload 用。在努力了數個晚上後,今晚終於搞好了這個 Loader,但最有趣的是,我不太清楚這個 Loader 是否起作用......
做好上面的 Manual Loader 後,就準備做第二樣了,我選擇做 Billboard,但看來又是另一個麻煩了,因為我再次搞不清楚 OGRE3D 中,Billboard 及 BillboardSet 的分別。OGRE3D 雖然強大,但處處都是令人卻步的難關,究竟有沒有一個 3D Render Engine,是比較簡單易明的呢?
做好上面的 Manual Loader 後,就準備做第二樣了,我選擇做 Billboard,但看來又是另一個麻煩了,因為我再次搞不清楚 OGRE3D 中,Billboard 及 BillboardSet 的分別。OGRE3D 雖然強大,但處處都是令人卻步的難關,究竟有沒有一個 3D Render Engine,是比較簡單易明的呢?
Tuesday, July 25, 2006
遊戲的未來
今天在偶然下,再看到這篇舊文章:
The Future of Game Design
當中筆者所說到的要點,每每都一針見血,在第一頁的尾段,就有一句很精彩的,是 Naughty Dog 總裁 Jason Ruben 說的:the amount of polygons you have on screen doesn't matter anymore, it's what's you do with them. ( 在畫面上多邊形數量已不再重要,重要的是你用它們來做甚麼 )
再看上面的一句說話,仍然是獲益良多。我玩遊戲的時候,一般都不會著意畫面的質數,只要不是過份醜陋,遊戲本身好玩就可以。但還看過去幾年玩過的遊戲,有很多都沒有玩完,有些甚至玩過一、兩個 Stage 就放棄了。究竟是為什麼呢?有些平平無奇,有些難度太高,有些過於簡單而重複。回想近年來,Nintendo 仍然是堅持以創意先行,真的是值得敬佩的遊戲商。
The Future of Game Design
當中筆者所說到的要點,每每都一針見血,在第一頁的尾段,就有一句很精彩的,是 Naughty Dog 總裁 Jason Ruben 說的:the amount of polygons you have on screen doesn't matter anymore, it's what's you do with them. ( 在畫面上多邊形數量已不再重要,重要的是你用它們來做甚麼 )
再看上面的一句說話,仍然是獲益良多。我玩遊戲的時候,一般都不會著意畫面的質數,只要不是過份醜陋,遊戲本身好玩就可以。但還看過去幾年玩過的遊戲,有很多都沒有玩完,有些甚至玩過一、兩個 Stage 就放棄了。究竟是為什麼呢?有些平平無奇,有些難度太高,有些過於簡單而重複。回想近年來,Nintendo 仍然是堅持以創意先行,真的是值得敬佩的遊戲商。
Saturday, July 22, 2006
OGRE3D 和 地圖資料 #2
經過數日的努力(?),成功將 Ngan-GINE'3D 用的地圖資料,以手動建立 Mesh 形式在 OGRE3D 內顯示,而且還可以有 Multi-Texturing ( 用於 Lightmap 效果 )。在這次實作中,明白了OGRE3D 的手動建立 Mesh 的流程,這個其實是屬於基本技巧,不懂這個便不能善用一個圖像系統了。
另外在這次實作中,將原本不是以 Singleton 形式設計的 Ngan-GINE'3D,轉為以 Singleton 形式套好(其實不是真正的 Singleton,只是形式上設計相同),但有趣的事情發生了,我做的一個測試程式中,速度增加了 15% 之多,究竟是不是 Singleton 設計的一種好處呢?
另外在這次實作中,將原本不是以 Singleton 形式設計的 Ngan-GINE'3D,轉為以 Singleton 形式套好(其實不是真正的 Singleton,只是形式上設計相同),但有趣的事情發生了,我做的一個測試程式中,速度增加了 15% 之多,究竟是不是 Singleton 設計的一種好處呢?
Sunday, July 16, 2006
OGRE3D 和 地圖資料
在近期,研究將 OGRE3D 加入 Ngan-GINE'3D 內的時候,碰到一個問題,就是原本 Ngan-GINE'3D 內的 3D 地圖資料,不知應該怎樣在 OGRE3D 內存取及運用,因為在 Ngan-GINE'3D 內的地圖資料,是以 Sector 來分開儲存,而我希望在 OGRE3D 內建立差不多的架構,所以就想了很久要怎樣才做到。但近日有點頭緒了,就是用 OGRE3D 內的 StaticGeometry 架構來實現。但是這個概念還要進一步實驗,因為始終是一個概念,要寫一點程式來實際調試一下才可。
在研究這個 OGRE3D 的時候,學會了如何 Debug DLL 的技巧,因為我不是用 Visual C++ 來編寫遊戲的,但是要用 OGRE3D 的話便要用 VC++,所以我要將 OGRE3D 封裝成一個 DLL,再給我常用的 PellesC 來使用,這樣一來便需要學會如何 Debug DLL 了。之前我一直都沒有做過 DLL,在這次經驗中我發現,其實 Debug DLL 也很有趣的呢,而且有個意想不到的,就是 Visual C++ 2005 Express 版本的功能真的很齊全呢。
在研究這個 OGRE3D 的時候,學會了如何 Debug DLL 的技巧,因為我不是用 Visual C++ 來編寫遊戲的,但是要用 OGRE3D 的話便要用 VC++,所以我要將 OGRE3D 封裝成一個 DLL,再給我常用的 PellesC 來使用,這樣一來便需要學會如何 Debug DLL 了。之前我一直都沒有做過 DLL,在這次經驗中我發現,其實 Debug DLL 也很有趣的呢,而且有個意想不到的,就是 Visual C++ 2005 Express 版本的功能真的很齊全呢。
Thursday, July 13, 2006
Shooting Game
我常常說我很喜歡玩 Action Game,其實我亦很喜歡玩 Shooting Game 的,當年曾經常常玩IREM 的 games,當中有「Image Fight」及「R-Type」系列。後來就很喜愛Treasure的遊戲,當中不小名作,如「GunStar Hero」、「Radian Silvergun」及「班鳩」。除了這類正統的橫/豎Scroll 的Shooting game 外,我亦很喜歡 SEGA 的「Panzer Dragoon」系列。
我曾經做過一個ArcBall Rotation Camera 的實驗,是用了個非算術的方法做出來。前幾天看著這個 ArcBall 控制時,忽發奇想,我以「Spikeout」作為參考做了個「Final Spike」,其實也可以以「Panzer Dragoon」作為參考,做個類似的遊戲也不錯啊(PC 也極小這類遊戲)!自從幾年前看過XBox版的「Panzer Dragoon Orta」之後,確實非常難忘,當中的遊戲性非常高,而整個遊戲的演出亦非常精彩,完成度超級好,參考價值很高。
我曾經做過一個ArcBall Rotation Camera 的實驗,是用了個非算術的方法做出來。前幾天看著這個 ArcBall 控制時,忽發奇想,我以「Spikeout」作為參考做了個「Final Spike」,其實也可以以「Panzer Dragoon」作為參考,做個類似的遊戲也不錯啊(PC 也極小這類遊戲)!自從幾年前看過XBox版的「Panzer Dragoon Orta」之後,確實非常難忘,當中的遊戲性非常高,而整個遊戲的演出亦非常精彩,完成度超級好,參考價值很高。
Wednesday, July 12, 2006
Indie Game要甚麼?
大家可能會記得,我曾經說過想做個Indie Game Developer,亦看過有關資料。其實環顧各地的Indie Game Developer,大都是做些小型遊戲,而且最多的可以說是Puzzle Game(3-Match),例如類似 Bejeweled 的遊戲。剛才在 GameProducer 裡看到一篇短文,它的題目很吸引:
3 Reasons to Avoid Developing 3-Match Games
我並不是要踩這類遊戲,而是認同上文中所說的三個理由,Indie類遊戲確是要求創意。
另外 10 Easy Ways to Save Money 和 Learn to Steal 亦很受用。
3 Reasons to Avoid Developing 3-Match Games
我並不是要踩這類遊戲,而是認同上文中所說的三個理由,Indie類遊戲確是要求創意。
另外 10 Easy Ways to Save Money 和 Learn to Steal 亦很受用。
Saturday, July 08, 2006
HIMMG vol.02
上一回我說過,要說說在製作那個「Final Spike」實驗版本的過程中,所學到的東西。那時候的「Ngan-GINE'3D」還未成熟,有很多功能都沒有,而當時的我對3D遊戲製作亦不太熟悉,就想:不如先做個遊戲吧,那便會知道要加甚麼功能進Ngan-GINE'3D;就這樣,我便開始去想要做個怎麼樣的3D遊戲了。
在開始製作遊戲時,我不知從何入手,那我就想:不如和做2D遊戲時一樣,在控制主角上開始著手吧;就這樣,我便開始在控制角色上開始。在Ngan-GINE'3D中,我已經有Skeleton Animation了,心想那就易辦了,只要按甚麼鍵,播放Animation之餘,再移動角色便可。雖然方向是正確的,但問題出現了,Skeleton Animation的控制一塌糊塗,用MS3D export出來的Animation,是一連串的包含所有Animation,我卻沒法隨意控制播放那一段。大問題出現了,應該要怎樣解決呢?我再詳細地看看,發現一個情況,原本MS3D資料內有30格Animation,當中有15格是屬於Keyframe的,而export出來的資料卻只有15格,不是原來30格。那麼我便明白了,export出來的只有Keyframe,Keyframe之間的格數是不會被export出來的,那就好辦。我將原來的MS3D的Animation,刪去沒有Keyframe的格數,只保留Keyframe格數,那麼Animation總數和Keyframe總數一樣,只有15格。就這樣我便成功地,以Animation的Frame數值來隨意播放任何一段的Animation了。
播放Animation解決了,那便繼續嘗試做遊戲。有一天和朋友逛街,在看一些新的Console遊戲,那個朋友說:為何電腦沒有這類動作遊戲?那時候我便想:沒錯,電腦上確是沒有Console中的動作類遊戲出現,那我便決定要做個動作遊戲出來了。及後我發現另一個問題,就是:我要如何做出角色擊出左拳,敵人被左拳擊中呢?因為自己之前都做過些低水平2D遊戲,知道應該以圓對圓的碰撞測試(Sphere to Sphere collision)來調試,但首要任務,是要得知「左拳的位置」。這個就是難度,我不懂如果計算出來,我只知道可以用Skeleton中,Joint 的Position位置計算,但究竟要怎樣才得到那個位置呢?這個問題困擾了一個多星期,最後在網上搜出相關文章,再對程式調試良久,才成功得到Joint 的World position,成功做出擊出及被擊中的效果。
就這樣,Ngan-GINE'3D中的Skeleton Animation,便有了任意播放某一段Animation,及取得某個Joint 的World position功能。下一回,說說另一個話題吧,說說3D地圖及移動Object 的碰撞問題。
在開始製作遊戲時,我不知從何入手,那我就想:不如和做2D遊戲時一樣,在控制主角上開始著手吧;就這樣,我便開始在控制角色上開始。在Ngan-GINE'3D中,我已經有Skeleton Animation了,心想那就易辦了,只要按甚麼鍵,播放Animation之餘,再移動角色便可。雖然方向是正確的,但問題出現了,Skeleton Animation的控制一塌糊塗,用MS3D export出來的Animation,是一連串的包含所有Animation,我卻沒法隨意控制播放那一段。大問題出現了,應該要怎樣解決呢?我再詳細地看看,發現一個情況,原本MS3D資料內有30格Animation,當中有15格是屬於Keyframe的,而export出來的資料卻只有15格,不是原來30格。那麼我便明白了,export出來的只有Keyframe,Keyframe之間的格數是不會被export出來的,那就好辦。我將原來的MS3D的Animation,刪去沒有Keyframe的格數,只保留Keyframe格數,那麼Animation總數和Keyframe總數一樣,只有15格。就這樣我便成功地,以Animation的Frame數值來隨意播放任何一段的Animation了。
播放Animation解決了,那便繼續嘗試做遊戲。有一天和朋友逛街,在看一些新的Console遊戲,那個朋友說:為何電腦沒有這類動作遊戲?那時候我便想:沒錯,電腦上確是沒有Console中的動作類遊戲出現,那我便決定要做個動作遊戲出來了。及後我發現另一個問題,就是:我要如何做出角色擊出左拳,敵人被左拳擊中呢?因為自己之前都做過些低水平2D遊戲,知道應該以圓對圓的碰撞測試(Sphere to Sphere collision)來調試,但首要任務,是要得知「左拳的位置」。這個就是難度,我不懂如果計算出來,我只知道可以用Skeleton中,Joint 的Position位置計算,但究竟要怎樣才得到那個位置呢?這個問題困擾了一個多星期,最後在網上搜出相關文章,再對程式調試良久,才成功得到Joint 的World position,成功做出擊出及被擊中的效果。
就這樣,Ngan-GINE'3D中的Skeleton Animation,便有了任意播放某一段Animation,及取得某個Joint 的World position功能。下一回,說說另一個話題吧,說說3D地圖及移動Object 的碰撞問題。
Wednesday, July 05, 2006
Metal Slug (3D)
不知道大家有沒有玩過,新的Metal Slug?我有,但我想說的是,有時候,名氣確實是可以蓋過很多問題。其實新的Metal Slug並不好玩,不好玩的並不是遊戲本身,而且那個不知做甚麼的鏡頭系統,我感覺就好像被它玩一樣,令我超級頭痛。
先說說遊戲本身,開發商極力想將經典2D的Metal Slug,毫不改動玩法下,轉為3D,我覺得開發商是做得不錯的了。很多操控上,已經很努力去做,感覺上已經不錯,但是很可惜,遊戲最後卻被惱人的鏡頭系統破壞了。遊戲中的鏡頭系統,Player行左時,鏡頭同時向右Plan,令人感覺移動速度過快(我好頭暈)。另外鏡頭經常被牆壁阻礙,碰到牆壁後鏡頭會向上移動,嘗試換角度,但這樣做的話,有時候令玩家不能看到目標或敵人(鏡頭向上移,但注視點仍是主角,最後令畫面看到的只是地面...),不能作戰。在3D場景中,到處都有不少的雜物,及一些地圖細節部份,又是另一個令人懊惱的問題,如果有件雜物高過主角,而又剛剛在鏡頭及主角中間,那件雜物經然不會變成半透明,玩家就不能夠看到主角了。
好像只有彈,沒有讚的...... 我也不想的,只是想洩洩氣,一隻簡單的遊戲,就是被一個毫不起眼,但是很重要的鏡頭部份弄垮,有點惋惜。(順帶一提,遊戲場景的"簡陋"程度也不錯......)
先說說遊戲本身,開發商極力想將經典2D的Metal Slug,毫不改動玩法下,轉為3D,我覺得開發商是做得不錯的了。很多操控上,已經很努力去做,感覺上已經不錯,但是很可惜,遊戲最後卻被惱人的鏡頭系統破壞了。遊戲中的鏡頭系統,Player行左時,鏡頭同時向右Plan,令人感覺移動速度過快(我好頭暈)。另外鏡頭經常被牆壁阻礙,碰到牆壁後鏡頭會向上移動,嘗試換角度,但這樣做的話,有時候令玩家不能看到目標或敵人(鏡頭向上移,但注視點仍是主角,最後令畫面看到的只是地面...),不能作戰。在3D場景中,到處都有不少的雜物,及一些地圖細節部份,又是另一個令人懊惱的問題,如果有件雜物高過主角,而又剛剛在鏡頭及主角中間,那件雜物經然不會變成半透明,玩家就不能夠看到主角了。
好像只有彈,沒有讚的...... 我也不想的,只是想洩洩氣,一隻簡單的遊戲,就是被一個毫不起眼,但是很重要的鏡頭部份弄垮,有點惋惜。(順帶一提,遊戲場景的"簡陋"程度也不錯......)
Saturday, July 01, 2006
HIMMG vol.01
究竟這是甚麼題目?「HIMMG」?讓我來慢慢解釋吧。兩個月前,我將我自己製作經年的電腦遊戲,「Final Spike」的一段Teaser Trailer發報,得到了不少正 面的回應,亦有網友希望我說說我在製作遊戲時的難題,或一些製作上的技巧,在我想了一陣子後,我決定寫出一個Blog系列,來說說我製作電腦遊戲的一些事 ,我訂出了這個系列的題目,就叫做「How I Make My Game」。
今次是第一篇,我會先說說,我的Game Engine「Ngan-GINE'3D」。在Ngan-GINE'3D的初期,我已經決定要做一個,以製作動作遊戲為本的Game Engine。首先要 做的,使要學習用Direct3D,因為那時候我接觸了3D圖像編程沒多久,要學習如何做一個Engine,那就要選個API/SDK吧。在了解Direct3D是如何畫出多邊形後, 便開始嘗試做個最基層的系統,我稱之為「Frame」。在Ngan-GINE'3D中,是沒有任何所謂Scene Management,而最基層的,就是這個Frame了。
Frame系統中的成員,都是最基本的,例如Position、Rotation、Local Matrix... 等等。而Function方面,會包含了Translate、Rotate、Update、 Transform... 等等。當然,Frame也會有建立及移除 Function了,在建立的時候,會放進一個作為分類的資料,以便認知這個Frame是用來做甚麼的(在Ngan-GINE'3D中,暫時只有角色及Camera類別)。在Frame系統完全後,便開始做3D Model的繪畫了,那時候對3D圖像認識淺,就找來Quake的MD2檔案來玩玩,到了明白當中的運作後,就開始找個3D Modeler來用了。在不記得 甚麼情況下,得知了MilkShape3D的存在,更有內建Skeleton Animation,而且還可以自己做Export Plugin等,便開始研究MS3D了。
用了很多時間來研究MS3D,始終自己的數學水平比較弱,用了數個月才學好了MS3D及Export出自己的檔案類型。同時我亦將MS3D中的Skeleton Animation,分拆 出來加到了Frame系統中,作為Frame內的成員之一。在學習MS3D期間,同時亦學會了靜態的3D Model繪畫,但其與動態3D Model有之後再用了數個月的時間,加進了繪製靜態3D Model。其後再用了數個月時間,想加進地圖資料和Frame系統的Collision Detection,但怎樣做也不理想,後來才知道最大原因是,因為Ngan-GINE'3D中沒有Scene Management,導致不能分割區域做出準確的Collision response,所以後來就放棄研究了,但始終一直不能找到好方法代替。在往後,更加入了Skybox、Billboard、2D Sprite... 等等。
在此期間,碰巧香港中文大學舉辦了一個遊戲創作比賽,我就用了這個Ngan-GINE'3D,做了個實驗版本的「Final Spike」參賽,可能是剛巧碰到SARS的爆發,參賽作品比較少,感覺有點僥倖地取得公開組別的銅獎。在下一次,我會說說在製作那個實驗版本的「Final Spike」時,所學到的東西如何改進Ngan-GINE'3D的功能。
今次是第一篇,我會先說說,我的Game Engine「Ngan-GINE'3D」。在Ngan-GINE'3D的初期,我已經決定要做一個,以製作動作遊戲為本的Game Engine。首先要 做的,使要學習用Direct3D,因為那時候我接觸了3D圖像編程沒多久,要學習如何做一個Engine,那就要選個API/SDK吧。在了解Direct3D是如何畫出多邊形後, 便開始嘗試做個最基層的系統,我稱之為「Frame」。在Ngan-GINE'3D中,是沒有任何所謂Scene Management,而最基層的,就是這個Frame了。
Frame系統中的成員,都是最基本的,例如Position、Rotation、Local Matrix... 等等。而Function方面,會包含了Translate、Rotate、Update、 Transform... 等等。當然,Frame也會有建立及移除 Function了,在建立的時候,會放進一個作為分類的資料,以便認知這個Frame是用來做甚麼的(在Ngan-GINE'3D中,暫時只有角色及Camera類別)。在Frame系統完全後,便開始做3D Model的繪畫了,那時候對3D圖像認識淺,就找來Quake的MD2檔案來玩玩,到了明白當中的運作後,就開始找個3D Modeler來用了。在不記得 甚麼情況下,得知了MilkShape3D的存在,更有內建Skeleton Animation,而且還可以自己做Export Plugin等,便開始研究MS3D了。
用了很多時間來研究MS3D,始終自己的數學水平比較弱,用了數個月才學好了MS3D及Export出自己的檔案類型。同時我亦將MS3D中的Skeleton Animation,分拆 出來加到了Frame系統中,作為Frame內的成員之一。在學習MS3D期間,同時亦學會了靜態的3D Model繪畫,但其與動態3D Model有之後再用了數個月的時間,加進了繪製靜態3D Model。其後再用了數個月時間,想加進地圖資料和Frame系統的Collision Detection,但怎樣做也不理想,後來才知道最大原因是,因為Ngan-GINE'3D中沒有Scene Management,導致不能分割區域做出準確的Collision response,所以後來就放棄研究了,但始終一直不能找到好方法代替。在往後,更加入了Skybox、Billboard、2D Sprite... 等等。
在此期間,碰巧香港中文大學舉辦了一個遊戲創作比賽,我就用了這個Ngan-GINE'3D,做了個實驗版本的「Final Spike」參賽,可能是剛巧碰到SARS的爆發,參賽作品比較少,感覺有點僥倖地取得公開組別的銅獎。在下一次,我會說說在製作那個實驗版本的「Final Spike」時,所學到的東西如何改進Ngan-GINE'3D的功能。
Sunday, June 25, 2006
新認知,新知識
在我的遊戲引擎「Ngan-GINE'3D」中,所有的3D模型格式,都是使用MilkShape3D這個Low-polygon工具製作的,有朋友問我,為什麼用這個MilkShape3D,而不用3DS Max之類的工具。其實我的遊戲引擎,著重於簡單的遊戲開發,類似現在頗為流行的Casual game,或Indie game運作模式,目標平台的硬件要求亦不會很高,例如:Pentium III 800、DirectX7 3D顯示卡等等。而且在製作成本上要比較低,使用低價格的軟件是比較適合的,而且在許可的情況下,用免費軟件作為主要工具會更好。
我之前說過,和幾位新認識的遊戲業界朋友傾談後,對遊戲業界的認識多了。說實話,我亦希望能以製作遊戲來賺取金錢,從而在遊戲製作中生活,所以才會對Indie game development的模式萌生興趣。但對業界接觸多了,看到當中從業員的生產力,令我有點汗顏,而且業界在製作遊戲的方法上,和自己的方法有著巨大的差別。在這些新的認知和知識下,令我想到,自己在製作遊戲上的「特殊技巧」,確實不太可能在正常的遊戲業界中使用。但我卻覺得,如果是應用在Indie game製作上,可能會是更加有利,但這個是需要時間來證實。
MilkShape3D剛剛發報了新版本,有多個新功能,更方便使用。
我之前說過,和幾位新認識的遊戲業界朋友傾談後,對遊戲業界的認識多了。說實話,我亦希望能以製作遊戲來賺取金錢,從而在遊戲製作中生活,所以才會對Indie game development的模式萌生興趣。但對業界接觸多了,看到當中從業員的生產力,令我有點汗顏,而且業界在製作遊戲的方法上,和自己的方法有著巨大的差別。在這些新的認知和知識下,令我想到,自己在製作遊戲上的「特殊技巧」,確實不太可能在正常的遊戲業界中使用。但我卻覺得,如果是應用在Indie game製作上,可能會是更加有利,但這個是需要時間來證實。
MilkShape3D剛剛發報了新版本,有多個新功能,更方便使用。
Sunday, June 18, 2006
玩具的週末
人生中最貴的玩具
我除了玩電腦及電視遊戲外,很少會買玩具玩的,最多都只會買一些扭蛋公仔,已經很滿足了。但今天卻買了有生以來最貴的玩具,「完全變形 無限地帶23 Garland」。
還記得小時候,我和朋友們都很喜歡這套動畫,那個時候的動畫題材,就是甚麼也是「變形機械人」的時代。在那時出現的「無限地帶23」就最為令我喜歡的,因為我總是覺得,電單車變形機械人的Idea真的很利害。年青的我還想過,自己做一隻完全變形的Garland出來,我還真的有做過兩件「原型」出來的,後來當然是不了了之,那兩件東西還保存著呢。
朋友的金句:「小時候總是買不到想買的玩具,長大後有能力賺錢,但還是買不到想買的玩具(因為它們太貴了)!」。玩具是小朋友的夢想,也是很多成年人的夢想。這次的花錢,應該是用了我五年的玩具購買能力,在往後的五年,應該沒有買玩具的欲念了。
有一天,突然想起了以前在Yahoo的Blog,好奇地到那裡看看,發現了件事,就是還有很多網友會到那裡,每天的到訪人數都是數以十計,看來很多人對我過往的Blog還很有興趣呢,但是我還是希望大家來這裡看新的Blog呢。
還記得小時候,我和朋友們都很喜歡這套動畫,那個時候的動畫題材,就是甚麼也是「變形機械人」的時代。在那時出現的「無限地帶23」就最為令我喜歡的,因為我總是覺得,電單車變形機械人的Idea真的很利害。年青的我還想過,自己做一隻完全變形的Garland出來,我還真的有做過兩件「原型」出來的,後來當然是不了了之,那兩件東西還保存著呢。
朋友的金句:「小時候總是買不到想買的玩具,長大後有能力賺錢,但還是買不到想買的玩具(因為它們太貴了)!」。玩具是小朋友的夢想,也是很多成年人的夢想。這次的花錢,應該是用了我五年的玩具購買能力,在往後的五年,應該沒有買玩具的欲念了。
有一天,突然想起了以前在Yahoo的Blog,好奇地到那裡看看,發現了件事,就是還有很多網友會到那裡,每天的到訪人數都是數以十計,看來很多人對我過往的Blog還很有興趣呢,但是我還是希望大家來這裡看新的Blog呢。
Monday, June 12, 2006
我不是個專業Programmer !
有些朋友,都不太清楚我在Programming方面的能力,究竟是甚麼程度,其中一個理由是他們不太懂coding,而另一個理由,就是他們都看到我獨自做了個「Final Spike」,而這個遊戲會令很多人,都認為我的Programming能力很高,但我想說,事實並不是這樣的。
有機會看過一些真正的專業Programmer,可以很快地用C++,設計一個Class出來,很快便可以做出些實在的功能。比較自己的Programming技術,只懂傳統的 C,用很多時間才可以做出些功能,確實是遜色不少。我能夠做出一個動作格鬥遊戲,有時候我亦會想想,究竟是為什麼呢?最有可能的只有一個原因,就是因為我很「香港仔」。我讀書時不是個成績彪炳的學生,所以成績平平,因為這個原因,每每我在想要怎樣做出遊戲中的某種功能,都不會由「學術」的角度出發,會找另類的方法,或者用非學術的方法(即是蠢的方法),不求快而準,只求有及做到。
但我頗為喜歡這樣去做遊戲,因為這樣,培養了自己很容易地找到程式解決方法,而且不容易被框框錮著,而變得老鼠拉龜。有時間做遊戲確實是需要點臨時架床點子,否則就會很容易陷入死胡同。但當然的是,如果又有學識,又懂架床方法,就是最強了。
上星期認識了幾個新朋友,從而對本地遊戲業界多了點認識,增進了知識呢。
有機會看過一些真正的專業Programmer,可以很快地用C++,設計一個Class出來,很快便可以做出些實在的功能。比較自己的Programming技術,只懂傳統的 C,用很多時間才可以做出些功能,確實是遜色不少。我能夠做出一個動作格鬥遊戲,有時候我亦會想想,究竟是為什麼呢?最有可能的只有一個原因,就是因為我很「香港仔」。我讀書時不是個成績彪炳的學生,所以成績平平,因為這個原因,每每我在想要怎樣做出遊戲中的某種功能,都不會由「學術」的角度出發,會找另類的方法,或者用非學術的方法(即是蠢的方法),不求快而準,只求有及做到。
但我頗為喜歡這樣去做遊戲,因為這樣,培養了自己很容易地找到程式解決方法,而且不容易被框框錮著,而變得老鼠拉龜。有時間做遊戲確實是需要點臨時架床點子,否則就會很容易陷入死胡同。但當然的是,如果又有學識,又懂架床方法,就是最強了。
上星期認識了幾個新朋友,從而對本地遊戲業界多了點認識,增進了知識呢。
Wednesday, May 31, 2006
簡單的Scene Management ?
今天是端午節,今年的端午好像有點不同,可能是天氣比較清涼,溫度只是23~25度。往年都是頗為熱的,看到扒龍舟的人們都會下水解熱,今年可能會少了這種情景了。
以前我曾經說過,一些日文的遊戲製作網頁,有一個有趣的程式技巧,叫做「Task System」(以Array型式儲存資料)。但回想一會,那個Task System如果是用Linked-list表達的話,其實是可以改做成為一個Scene Management程式。為何會這樣想呢?因為這種Task System,是以Priority為基礎,每一個Task除了會有Function Pointer作update外,還會有個priority值,這個priority值是記著一個數值,由 0 至 9 ( High ~ Low ),程式在每個Task的update時,會依據priority值,決定是否先update。
但我卻想,這個priority值,其實可以設定成為Scene management的level值,即是0至9不是High ~ Low,而是 Top ~ Bottom。每個Task都按level值update,level-0的先update(如此類推),當中每個Task在做update時,level值是底的,要和自己高一層的previous link做運算。就這樣,一個簡單的Scene Manager便出來了,這個設計只有一個好處,就是用 C 也可以簡單編寫到。
以前我曾經說過,一些日文的遊戲製作網頁,有一個有趣的程式技巧,叫做「Task System」(以Array型式儲存資料)。但回想一會,那個Task System如果是用Linked-list表達的話,其實是可以改做成為一個Scene Management程式。為何會這樣想呢?因為這種Task System,是以Priority為基礎,每一個Task除了會有Function Pointer作update外,還會有個priority值,這個priority值是記著一個數值,由 0 至 9 ( High ~ Low ),程式在每個Task的update時,會依據priority值,決定是否先update。
但我卻想,這個priority值,其實可以設定成為Scene management的level值,即是0至9不是High ~ Low,而是 Top ~ Bottom。每個Task都按level值update,level-0的先update(如此類推),當中每個Task在做update時,level值是底的,要和自己高一層的previous link做運算。就這樣,一個簡單的Scene Manager便出來了,這個設計只有一個好處,就是用 C 也可以簡單編寫到。
Friday, May 26, 2006
新招式:掃堂腿!
今天在「Final Spike」中,加入了一新招式,就是「掃堂腿」。這招式主如是從下方踢起敵人,目的是快速地踢倒敵人後,讓自己有機會逃避被敵人圍毆。加了這招後,再做了些微調,發現遊戲又有點新樂趣了。做遊戲就是這樣有趣的了,加進了新點子後,總是有點新樂趣。
順帶一提,Newton Game Dynamics出了新的v1.53,修正了些bugs,令遊戲更加穩定。
順帶一提,Newton Game Dynamics出了新的v1.53,修正了些bugs,令遊戲更加穩定。
Saturday, May 20, 2006
一套Game Engine的賣點
上星期探訪一位朋友,就是這位朋友帶領我從2D,走進3D的遊戲製作的。期間和他談到了一個話題,一個在本地原創的遊戲製作套件 ( Game Engine )「Lucid Platform」,為什麼還沒有聽過任何遊戲用這個Game Engine製作呢?我和他說,我在Lucid Platform發報會上,看到有一個Online Game正是用這個套件製作,他又問我,都有一段時間了,但就是沒任何消息,很奇怪。
聽罷想一想,確是覺得有點奇怪,完全沒有這Online Game或Lucid Platform的消息了,他後來說,其實Lucid Platform,或者其他香港本地製作的Game Engine,到最後總是會出現這樣的情況。我聽後問他,究竟是甚麼導致這個問題呢?他說了個論點,就是:這類Game Engine,一定要有個完整的遊戲同時推出才會成功。
舉個例子,例如Unreal Engine,就是有個Unreal系列的完整遊戲,作為這個Game Engine的賣點,人們一看到Unreal系列遊戲,就明白Unreal Engine可以做出怎樣的遊戲。另外亦有數個例子,例如:Crytech Cry Engine ( Far Cry )、Valve Source Engine ( Half-Life 2 ) ...... 等等,都有個完整的遊戲同時推出,令該個Game Engine為人熟悉。但反觀香港本土的Game Engine,都有一個很大的問題,就是只有Technical Demo,而沒有遊戲作為主要賣點,人們都不了解,究竟一個Game Engine可以做些甚麼遊戲?如果有一個完整的遊戲,能夠顯示一個Game Engine的威力,情況也許會完全不同呢。
聽罷想一想,確是覺得有點奇怪,完全沒有這Online Game或Lucid Platform的消息了,他後來說,其實Lucid Platform,或者其他香港本地製作的Game Engine,到最後總是會出現這樣的情況。我聽後問他,究竟是甚麼導致這個問題呢?他說了個論點,就是:這類Game Engine,一定要有個完整的遊戲同時推出才會成功。
舉個例子,例如Unreal Engine,就是有個Unreal系列的完整遊戲,作為這個Game Engine的賣點,人們一看到Unreal系列遊戲,就明白Unreal Engine可以做出怎樣的遊戲。另外亦有數個例子,例如:Crytech Cry Engine ( Far Cry )、Valve Source Engine ( Half-Life 2 ) ...... 等等,都有個完整的遊戲同時推出,令該個Game Engine為人熟悉。但反觀香港本土的Game Engine,都有一個很大的問題,就是只有Technical Demo,而沒有遊戲作為主要賣點,人們都不了解,究竟一個Game Engine可以做些甚麼遊戲?如果有一個完整的遊戲,能夠顯示一個Game Engine的威力,情況也許會完全不同呢。
Monday, May 15, 2006
Animation 有太多 Keyframe ?
還記得我之前說過,朋友建議我的遊戲角色加入摔角手嗎?那時候我覺得,因為我現有的敵人Animation,已經超過了200個Keyframe,如果要再加入額外的animation,在管理上可能有點問題。但我今天想了一想,想到了一個較為容易管理這樣多keyframe的animation方法,就是將keyframe分開管理。暫時概念上,是將「行動」及「被擊中」分開skeleton作儲存及處理,要加入一個轉換skeleton的工作,幸好的是我之前使用的skeleton方案,對這個轉換skeleton的工作甚為有利,只需要少量的程式轉變。
如果需要加入更多的keyframes,更可以分開為「行動」、「攻擊」及「被擊中」等,總之就是將所有keyframes都拆開來管理。
如果需要加入更多的keyframes,更可以分開為「行動」、「攻擊」及「被擊中」等,總之就是將所有keyframes都拆開來管理。
Sunday, May 14, 2006
Friday, May 12, 2006
E3 06的觀賞
這幾天,最多人討論的,應該都是今年的E3遊戲展了。我想大家都有看過相關報導吧,我也想說說看了報導,及動畫片段後的感想。
先說說PS3,看了很多遊戲實行時的畫面,沒話可說,「靚」就是一切。看幾個遊戲,GT HD、MGS4、Naughty-Dog新遊戲......等等,精美的畫面,出色的演出。但是有一個問題,我只看到科技的進步,卻看不到甚麼突破。
Nintendo Wii (讀音 "V") 就不一樣了,充滿驚喜。在E3前,她的名字叫做「Revolution」,只知道是用一個類似 remote的東西作操控,在Concept video 中,是可以舞動那支 remote來玩遊戲,朋友們看到都很喜愛,及好奇Nintendo如何做得到。今次E3就揭曉了她的遊戲是怎樣的,個人的感覺是,非常的出色,Nintendo開創了電視遊戲機的新一頁,我對Nintendo Wii非常的期待。看第一段有關的片段時,看到官本茂和另外三個人玩一隻簡單的Tennis,而其中一人更是從觀眾中抽出來的,看到他們玩,真的很佩服Nintendo,一個第一次玩Wii的觀眾,很快便掌握到那支 remote的操作,更與官本茂合作打贏了對手,令我相信這支 remote是不難掌握的。
XBox360就不用說了,她始終是最早出現的次世代遊戲機,大家都只是看有那些美麗的遊戲會推出,已經見慣不怪了。
Wii 確實比 PS3更吸引,PS3只會吸引死硬派Gamers及Sony死忠Fans,但 Wii卻吸引老中青幼,可以說是全方位。當然這個只是我的論點罷了,因為我還是喜歡玩遊戲,多於看遊戲。
先說說PS3,看了很多遊戲實行時的畫面,沒話可說,「靚」就是一切。看幾個遊戲,GT HD、MGS4、Naughty-Dog新遊戲......等等,精美的畫面,出色的演出。但是有一個問題,我只看到科技的進步,卻看不到甚麼突破。
Nintendo Wii (讀音 "V") 就不一樣了,充滿驚喜。在E3前,她的名字叫做「Revolution」,只知道是用一個類似 remote的東西作操控,在Concept video 中,是可以舞動那支 remote來玩遊戲,朋友們看到都很喜愛,及好奇Nintendo如何做得到。今次E3就揭曉了她的遊戲是怎樣的,個人的感覺是,非常的出色,Nintendo開創了電視遊戲機的新一頁,我對Nintendo Wii非常的期待。看第一段有關的片段時,看到官本茂和另外三個人玩一隻簡單的Tennis,而其中一人更是從觀眾中抽出來的,看到他們玩,真的很佩服Nintendo,一個第一次玩Wii的觀眾,很快便掌握到那支 remote的操作,更與官本茂合作打贏了對手,令我相信這支 remote是不難掌握的。
XBox360就不用說了,她始終是最早出現的次世代遊戲機,大家都只是看有那些美麗的遊戲會推出,已經見慣不怪了。
Wii 確實比 PS3更吸引,PS3只會吸引死硬派Gamers及Sony死忠Fans,但 Wii卻吸引老中青幼,可以說是全方位。當然這個只是我的論點罷了,因為我還是喜歡玩遊戲,多於看遊戲。
Thursday, May 04, 2006
2D遊戲還有市場嗎 ?
在PC上,2D遊戲還有市場嗎?大家先看看這個:
http://www.4gamer.net/news.php?url=/specials/arad_special/arad_special.shtml
是Online RPG,還是純Action?哈,大家還真的要佩服日本的遊戲開發商,在這年頭,大家都在看著滿街的3D遊戲,但就是要做個Online 2D Action RPG出來。令我想起,曾與朋友討論的:為什麼到處都是3D遊戲?我當時的想法和朋友一樣,是玩家已經不再接受2D了。但其實我們都可能錯了,因為我們的眼界都沒有好好地打開。
甚至有些2D遊戲,更是好評如潮,人們都會大叫「有創意!」,例如這個:
http://www.jp.playstation.com/scej/title/locoroco/
究竟是玩家們再不接受2D遊戲,還是因為遊戲製作公司互相競爭,玩家只是當中的犧牲品?這樣說好像誇張了點,但身邊的朋友有時會和我說:「哎呀... 這個3D遊戲在我的電腦上玩很慢啊!」,感覺也是有點無奈。
http://www.4gamer.net/news.php?url=/specials/arad_special/arad_special.shtml
是Online RPG,還是純Action?哈,大家還真的要佩服日本的遊戲開發商,在這年頭,大家都在看著滿街的3D遊戲,但就是要做個Online 2D Action RPG出來。令我想起,曾與朋友討論的:為什麼到處都是3D遊戲?我當時的想法和朋友一樣,是玩家已經不再接受2D了。但其實我們都可能錯了,因為我們的眼界都沒有好好地打開。
甚至有些2D遊戲,更是好評如潮,人們都會大叫「有創意!」,例如這個:
http://www.jp.playstation.com/scej/title/locoroco/
究竟是玩家們再不接受2D遊戲,還是因為遊戲製作公司互相競爭,玩家只是當中的犧牲品?這樣說好像誇張了點,但身邊的朋友有時會和我說:「哎呀... 這個3D遊戲在我的電腦上玩很慢啊!」,感覺也是有點無奈。
Tuesday, May 02, 2006
女性Wrestler
昨天,朋友史兄說看完上一回的blog後,有個建議,就是女角不要中國功夫,而改為「摔角手Wrestler」。他的建議很好,但我隨即便想,摔角手很多捉及摔的招式,那麼我便要將敵人的基本被擊中反應,再重新加入一大堆?有點害怕,但這個建議確實不錯,想了幾分鐘,便和史兄說:「不如你來幫我想想如何解決吧,如果想到,我便可以快一點完成。」
他雖然答應了,但他在工作上是個大忙人,忙得差點連回家的時間也沒有,看來一樣是要一段時間後的事呢。 f(^_^')
他雖然答應了,但他在工作上是個大忙人,忙得差點連回家的時間也沒有,看來一樣是要一段時間後的事呢。 f(^_^')
Sunday, April 30, 2006
女主角Model
Tuesday, April 25, 2006
大家的好意見
上個週末,我發佈了自己製作的遊戲「Final Spike」的Teaser Trailer,初時亦有點忐忑,因為自己不太清楚會有怎樣的反應。在過去幾天,雖然只收到了十多個意見,但差不多全部都是正面的,確實令我對自己的作品的信心加強了不少。
和網友討論我的遊戲時,他們都很有興趣想我多說一點,製作這個遊戲時,一些難題及製作的流程。雖然我曾經修讀過遊戲製作課程 (短期的),但要我說製作的流程可說是有點難度。後來想一想,其實這個提議也不錯,透過編寫遊戲製作的流程及遇到的難題,應該可以增進自己的知識呢,讓我再想想吧。
和網友討論我的遊戲時,他們都很有興趣想我多說一點,製作這個遊戲時,一些難題及製作的流程。雖然我曾經修讀過遊戲製作課程 (短期的),但要我說製作的流程可說是有點難度。後來想一想,其實這個提議也不錯,透過編寫遊戲製作的流程及遇到的難題,應該可以增進自己的知識呢,讓我再想想吧。
Sunday, April 23, 2006
新的Blog家
本來我也不太想搬Blog,但之前的舊Blog比較麻煩,設備比較簡陋,功能上實在太少,唯有搬Blog了。到了新Blog,也發一發我的遊戲,「Final Spike」的Teaser Trailer吧。另外我也加了些連結,其中大家可以找到我的舊網頁和舊blog。
Subscribe to:
Posts (Atom)