話說,就在今天小弟上AppStore逛逛,看到了一款遊戲,叫做『轉吧!流麵』。正想說這是什麼鬼,點進去看,才知道是碁因遊戲Keystone Game Studio發行的新遊戲。在之前有玩過了他們所開發的Hook 4 Fun之後,其輕鬆又刺激的遊戲方式讓我印象深刻,很期待他們會繼續的發行新遊戲。

過了很久終於又發行新遊戲啦,既然是免費的,就下載來玩玩看囉,反正不好玩再刪除ㄇㄟ~~~~(喂!!!)

先來看看官方宣傳影片吧

http://www.youtube.com/watch?feature=player_embedded&v=XuFPVqz2khA

kgsprogrammer 發表在 痞客邦 留言(1) 人氣()

逢年過節最想做的是什麼?

看電視?

上網?

打麻將?

怎麼都是一些阿宅們的活動咧(雖然我也是阿宅),還是覺得就算是找了一些三五好友也不知道要幹麻呢?難道就沒有其他有趣的事可以做了嗎?

文章標籤

kgsprogrammer 發表在 痞客邦 留言(1) 人氣()

Design Pattern -- Observer

What: 何謂觀察者模式?

--定義了物件之間一對多關係,如此一來當一個物件改變狀態,其他相依者都會收到通知並自動更新。 

 

Why: 為什麼要使用觀察者模式?

kgsprogrammer 發表在 痞客邦 留言(0) 人氣()

What: 何謂策略模式?

 --定義了演算法家族,個別封裝起來,讓它們之間可以互相替換,此模式讓演算法的變動不會影響到使用演算法的程式。


kgsprogrammer 發表在 痞客邦 留言(0) 人氣()

在C++中Template是什麼呢?為什麼要有這個東西?

簡單來說,如果今天我要做兩個數字的總合函式,傳統方式該怎麼寫呢?

int SumInt(int iA, int iB)
{
    return (iA + iB);

SnakeEater 發表在 痞客邦 留言(0) 人氣()

1995年時,由一家專門製造顯示卡與GPU的公司(3dfx)推出了第一個具有3D加速的繪圖晶片卡-Voodoo,如圖一,就此電腦繪圖產生了重大的改變。Voodoo雖然有繪圖上的一些限制,但它允許程式設計者從一個新的角度-硬體上去解決繪圖的問題,而不像從前只能從軟體上去著手改善。由於這張繪圖晶片卡的產生,也實現了即時的3D繪圖,讓遊戲更加的寫實逼真。 

 voodoo.JPG

 圖一 3Dfx Voodoo 顯示卡

雖然繪圖卡在之後不斷的提升其效能與特性,但是程式設計師還是受限於其固定的管線流程。由Pixar Animation Studio所研發的RenderMan,是一套著色語言(shading language)工具,透過簡單與強大的程式語言功能,賦予美術與程式設計師可以充份的掌握繪圖結果。RenderMan可以創造出高品質、更寫實的圖片,其也使用在現今許多的電影特效後製上,如玩具總動員與蟲蟲危機!唯一需要注意的是RenderMan的複雜性與它並不支援即時的繪圖,但相對的它對電影CG的美術而言,給予了全面性的掌握與操控性。

隨著處理器(processor)的發展,伴隨而來的是處理效率的大量提升,自然而然的將RenderMan的概念導引延伸到客戶階層的繪圖硬體上。DirectX 8.0的釋出介紹了頂點著色(vertex shader)與像素著色(pixel shader) 1.01.1的版本,這是美術與程式人員的第一步可以彈性的產出絕色與真實的圖片。往後的幾年,繪圖卡硬體和3D應用程式介面(APIs)在功能與效能上有巨大的躍進,DirectX 9.0的釋出以及最新的顯示卡硬體,如NVIDIA GeForce FX系列或ATI Radeon 9800系列的顯示卡技術,可以處理頂點著色與像素著色2.02.X版本。

SnakeEater 發表在 痞客邦 留言(0) 人氣()

還記得以前在學校,算時間複雜度是我最痛苦的經驗之一,我永遠搞不懂,為什麼不把程式碼就打進電腦裡讓它跑,它跑得動,那就好了,沒有問題;不過現在身為一個遊戲程式設計師,還是console game的程式設計師,這股任性就沒辦法再這樣揮灑了...

那,一個演算法基礎的分析,大概會是怎樣呢?

我們可以想像成這樣:如果我宣告了一個變數,那就要給它一段記憶體空間,然後對它進行了一連串的運算,這些運算需要一段時間,所以一個演算法,我們可以把它分析為兩個部份:時間複雜度空間複雜度,時間複雜度代表的是這個演算法執行時間的長短,同常會計算最簡單的加法運算的次數,空間複雜度是它所需要的儲存大小;所以一個演算法的分析,也可以看成是對一個函式的效能評估,也是作遊戲的人一直要跟硬體爭取的東西。

我們通常會使用Big-O這個工具來表示一個函式的效能,接下來講得會針對時間複雜度的部份。下面是三個簡單的範例 。

基本演算法分析1.JPG

SnakeEater 發表在 痞客邦 留言(1) 人氣()

這篇文章主要是在介紹戰神3的製作原理與技術

第一個提到的是數據的變化

在PS2時代的戰神主人翁 - Kratos

他的模型大約是5000面左右,貼圖共3張

但到了三代,也就是本作

seeulin 發表在 痞客邦 留言(0) 人氣()

實在懶得打字…,反正結論就是我用3.,就這樣XD

 

1. x越大, 則迴圈執行次數越多, 效能隨x變動

int IntLog2(unsigned int x)
{

allthen 發表在 痞客邦 留言(2) 人氣()

mzl_pezdtutz_320x480-75.jpg mzl_lsxqryvc_320x480-75.jpg

在2010/02/23這一天,Apple App Store上發行了一款遊戲Sliding War
相信只要是5、6年級生的同學對小時候玩的一種遊戲不會陌生
這遊戲就是大家在紙上各畫幾隻飛機,然後開始用筆隨機一個方向移動過去
在紙上繪畫出這架飛機行走的軌跡,在這個軌跡內碰到對方的飛機

SnakeEater 發表在 痞客邦 留言(1) 人氣()

L:為什麼塌洗會來啊?

A:塌洗?誰是塌洗?

L:就是那個XXX啊(為尊重當事人隱私,加上馬賽克處理)

A:喔,原來那念做塌洗啊?我以為是催洗

L:啊?為何你會得到那麼奇怪的念法?

seeulin 發表在 痞客邦 留言(0) 人氣()

Radial Blur是一種動態模糊技術,通常用在賽車遊戲與FPS等。在賽車遊戲中能夠給於速度感,就像時感賽車中使用氮氣噴射一樣

ridge-racer-2-20060921112912820.jpg
FPS中通常是在玩家被打中時或是快死亡的畫面表現。

接下來將說明如何做出這樣的效果

首先,當然我們必須先把遊戲物件整個Render一次到Texture(Render Buffer)上,然後再將這張Texture來做後至處理。

SnakeEater 發表在 痞客邦 留言(0) 人氣()

  • 這篇文章限定好友觀看。
    若您是好友,登入後即可閱讀。

normal為什麼必須要乘上world matrix的inverse和transpose之後的矩陣,而不是直接乘上world matrix。其實我以前也搞不懂,為什麼有些Shader上是將World Matrix定義為invtransposeWorldMatrix(大致上是這樣定義)而有些卻是直接定義為WorldMatrix(大致上是這樣定義)。在看了Real-Time Rendering之後了解到真正的用意是什麼,將說明如下

NormalTransform2.jpg 

這張圖的左邊是一個三角形物體,在這個斜邊上的Normal垂直於斜邊。但是在經過non-uniform scale之後就會像右圖一樣因為縮放的關係像上延伸,因此斜邊上的Normal已經沒有跟斜編成垂直的。怎麼樣,很可怕是吧,如果這時候利用這個normal來做各種計算,所得到的結果都將是錯誤的。

那要怎麼避免呢,首先我們來了解一下什麼是non-uniform scale。照字面上的意思就是非相等的縮放,也就是在3D空間中(或是2D),每個軸向的縮放值是不一樣的。相對的uniform scale就是個軸向縮放值相等。所以我們知道,只有在non-uniform的狀況下會有這樣的情形發生,所以通常在很多引擎的設計上,會捨棄non-uniform scale,來統一shader的normal計算方式,或是針對各種不同狀況來決定是要執行的shader。

了解了是什麼造成這樣的局面但是卻還是不了解為何要將World Matrix做invese與transpose。接下來就為大家來個數學證明。

SnakeEater 發表在 痞客邦 留言(1) 人氣()

玩過波斯王子系列的人都知道

豐富流暢的動作冒險一直是它賣點

對我來說,一個能經過20年歷史仍歷久不衰的老字號遊戲

不斷的創新進步應該是它最主要的一個原因

 

seeulin 發表在 痞客邦 留言(2) 人氣()

1 2345