Posted by: kevinlin on: 六月 19, 2006
ButterFly的時代過去了
因為歷經太多次修改了,最後改到我不想改,所以要弄個新架構的2D引擎
以可擴充性高為主,分應用層跟引擎核心層
引擎核心有[audio][graphics][input][kernel][packer]等等
因為架構上要有彈性所以,未來只要增加一個C++的渲染核心,就可以移植到手機之類的平台,所以說上層幾乎完全不用修改程式碼就可以移植(需要修改的只是寫一寫跟作業系統相關的函數),而底層可以根據不同的OS實現不同的模組.耦合性很低,很容易擴展和維護
應用層比較值得探討,有[貼圖資源緩衝機制][渲染樹結構][界面][動畫][音樂音效]等等
Posted by: kevinlin on: 六月 6, 2006
現在作遊戲看到的資料都3d,要做2d的話,書上也叫你用3d去做2d(法向量永遠對著自己), 問過幾個人,他們都是2000年以前就做遊戲的人,他們就可以比較懂2D了,雖然用3d做2d沒什麼不好,而我完成的引擎也都這樣做,但畢竟老舊的電腦就會抗議,尤其X31真是無奈,以目前來說暗黑破壞神2、星海爭霸都是很棒的2D表現,所以呢現在都在研究組語MMX指令集,還有一些混色跟顯示的理論好來用軟體實做2D(軟體實做指CPU、硬體實作指顯示卡,玩過CS應該知道可以選擇:P),因為一般來說用CPU會慢一點所以要用MMX來加速一些演算法。
小時候我很早就接觸電腦了,大概在國小五年級,那時我有一台NB,因為大家都不會用,所以呢家裏請來了一個台大的來給我家教(那時我在台北),教電腦,一開始教我打字,然後那時用dos嘛,所以他幫我裝了一些軟體還有遊戲,我是每天玩遊戲玩的很高興,我記得那是大富翁2吧!!還有波斯王子(永遠的第一關),然後鍵盤上的英文字大概都記住後,教我用倚天中文還有文書處理的,最後還有畫畫的軟體,這些都在DOS下,教完後他去學校偷偷盜版了Win3.1給我裝到電腦上:P,Win3.1上面就玩玩接龍,然後不知道要幹嘛,最後不知道教什麼時,他開始教我程式了,我記得是gwbasic(那時還沒有qbaisc),那時程式要自己打行號的,大概這樣教了兩年,我那時很愛做CAI,就像是電腦唱歌啊(我把音樂課本的音譜都輸入了),還有加減乘除測驗,跟現在賣給小朋友的軟體一樣:P,只是我的沒有漂亮的圖案,那時應該去考個丙級軟體設計的技術士,我就成為台灣最小考取的了,哈哈。
國小畢業後,basic也都教完了他開始教我C,但是教了幾次後,我搬家了,然後老師找不到我新家,又加上我那時候有超任,還有NB也有些問題,結果後來都不了了之了,就沒有在上課了,也沒東西可以練習了。所以國中就這樣過去了,一值到國三才又有電腦。
我發現我錯過黃金時期了,如果能一直學下去,我就可以更厲害了,不過到了高中後,我為了參加ACM的競賽程式練習的還不錯:P,不過大學呢,環境不對,逢甲不是一個可以練程式的地方:P,所以很多人都用玩系統來練程式。不過總之呢,我的2D時代要來了,3D暫時先放著,我會追上你的。
Posted by: kevinlin on: 三月 27, 2006
我想實做軟體模式render 因為只提供這三個方法 所以沒辦法
//! loads a Texture
virtual ITexture* getTexture(const c8* filename);
//! loads a Texture
virtual ITexture* getTexture(io::IReadFile* file);
//! creates a Texture
virtual ITexture* addTexture(const core::dimension2d& size, const c8* name, ECOLOR_FORMAT format);
解決方法如下
video::IImage *img = Driver->createImageFromData(video::ECF_A8R8G8B8,core::dimension2d(widh,heigh), (int32*) buffer ,true);
TeturImgArr= driver->addTexture(“TxtrName”, img );
Posted by: kevinlin on: 三月 9, 2006
NovodeX 和 Havok 是兩個久負盛名的商業物理 (Physics) 引擎
每年的GDC都可以聽到他們的新消息 而且一直算是物理引擎的先驅 可見他們一定賺不少錢
以電腦圖學來說 我覺得 在商業上也許快跟學術平行了 只差在平台上的不足 像PC可能就不能做出很多效果 所以我非常想要個xbox360 裡面除了有三顆CPU 還有特製的晶片 可以把很多理論上的東西實現 我覺得電視遊樂器都是電腦圖學的領航員 然後發現其實寫電視遊樂器的遊戲 才能發揮最好的效果 PC遊戲限於大家電腦都不一樣 資源的分配跟一些超級麻煩的東西 都是讓人討厭的
最近看了 號稱三大引擎(LITHTECH、Unreal、Quake)之一的原始碼 才發現有這東西的存在 至於是哪一套 我只能說 全台灣應該不到3間公司有這套引擎 就當作是撿到武功祕笈 :P
charge expensive:
http://www.havok.com/
AOE3 HALO 2 HalfLife 2 NBA Live06 …..等等等
http://www.ageia.com/index.html
unreal公司 sega公司 ….等等等
Free:
http://www.tokamakphysics.com/
http://ode.org/
要錢的跟不要錢的就是有差 技術大概落後1年吧
Posted by: kevinlin on: 二月 15, 2006
ButterFly_v1
是基於directx9.0c的DXUT來作的,內容有許多2d該有的都有而3d是讓DXUT來做,缺點是只能在WinNT系列下跑,且太老舊電腦不能跑,且DXUT太龐大實在懶的修改
ButterFly_v2
實作跨平台(有opengl[簡單版]、directX、software),software模式可讓遊戲在三種平台上跑[MacOS、Windows、Linux],只是還沒有sound系統單純的繪圖引擎(因為openal太麻煩了),還有中文的支援問題,雖然可以顯示及輸入中文,但字很醜,還有因為為了想跨平台失去了一些效能,所以暫且放下不用
目前開發ButterFly_v3中
基於Windows平台,針對Windows平台對引擎最佳化,全部是基於directx9.0c用Directsound、Directinput、DirectShow來實做一些功能,既快速文件又豐富,跟ButterFly_v1不同的是不用DXUT而自己實作較底層的東西,對於2d能更快速的展示及自訂的檔案格式來取代zip加速打包檔案搜尋速度,及自訂的3d格式
暫訂使用這版本來對windows作開發(漂亮的蝴蝶總是從醜陋的毛毛蟲變來的)
最近的回應