跳到主要內容

發表文章

目前顯示的是有「PSP」標籤的文章

Image Decoder and Render Pipe Improvement

作了幾個更新。 1,圖形解碼(Image Decoder) 原本Good使用來解碼圖形的程式庫是 ImageStone ,這是個C++的影像處理程式庫。當初會用它,是因為容易使用。但因為只是用來載入圖形,所以在作 PSP版移植 時,就另外作了一個簡單的image decoder,不過當時只作了 PNG 格式的支援就沒再繼續進行。 現在繼續完成了 BMP 及 JPEG 格式的支援。 BMP:BMP的格式比較簡單些,是自行實作。 PNG :使用 libpng 。 JEPG:使用 libjpeg 。 目前還缺 GIF 的支援,另外取消 TGA 格式支援。 而在Windows平台上,則直接使用系統提供的 GDI+ 來作圖形解碼。將ImageStone替換掉後,code size縮減了約40k。 2,繪圖模組(Render Pipe) 基於前次的 rect packing 的研究結果,利用昨天台風假在家,花了幾個小時將演算法整合進到GoodEngine的繪圖模組裡,過程相當順利。 以範例遊戲 25940m 為例,遊戲全部使用了9張貼圖。以原本的繪圖引擎來說,這9張貼圖會被載入並建立成各自獨主的9張貼圖。如此在繪圖時,貼圖間的切換就會相當頻繁。現在加上texture packing支援後,9張貼圖可以全部合併到1張1024x1024的貼圖內,這樣就能省掉切換的時間提升速度,同時也省掉額外貼圖記憶體的浪費。 3,新增範例 新增了一個簡單的範例solar,建立簡單的太陽系系統示範物件階層架構的使用。 這個範例建立三個貼圖物件用來代表太陽、地球及月球。月球繞行parent object地球轉,地球繞行parent object太陽旋轉,而太陽慢慢自轉。

Good Game Player for PSP

使用DevkitPSP編譯最新的程式 修了幾個小問題 先只port一種圖形格式 現在可以顯示png貼圖 下面是用我爛爛的野火機很克難的錄下來的一小段影片 品質不好請多見諒.. 沒錯 背景那個鬼鬼祟祟的人就是我

25940p for PSP

自從上次更新過 DevkitPSP 之後,PSP版的 25940p 就無法編譯,其實是環境設定問題,不過當時沒有仔細去看是怎麼回事,直接就丟著不管。直到前天又突然想到,把DevkitPSP更新到目前R14後,試編譯一下,結果又可以編譯了,只不過這次是編譯問題,編譯不成功。既然可以編譯,所以花了點時間修正一下,順便作一些修正。 下載

About 25940p

25940p 其實是我自己蠻喜歡的一個小作品,雖然說似乎不怎麼受歡迎的樣子。因為我原來就特別喜歡縱向捲軸射擊遊戲的緣故,才作了相關的研發作了這個作品。話雖說是小品,不過我後來實在退步太多了,自己也很難過關。 線上玩 這個小遊戲花了我大約一個星期的時間製作,主要的時間都花在關卡編輯上。整個遊戲都是用script編輯出來的,所謂的整個,除了彈幕外、敵機什麼時候出來怎麼移動、粒子特效、選單、背景多重星空等等,全都是用script編輯出來的。所以其實說花了一星期製作是假的,我花了更多時間在底層的開發上,為了這個小遊戲我花了幾個月時間,設計開發了專門用來製作射擊遊戲的stge語言和虛擬機器。 本來我作小遊戲花的時間並不多,不過從 鋤草機 開始,我已經開始有那種花很多時間來製作一款可以在很短時間內破關的小遊戲的傾向。比如說鋤草機大概花一個月時間製作,但15分鐘可以過關。25940p也差不多15至20分鐘可以全破,但斷斷續續至少用半年以上時間研發製作。 + + + 為了開發一套專門給射擊遊戲使用的script,我花了很多時間在設計上。完成後,首先是使用C++實作虛擬機器的部份,因為這樣至少可以先進入測試階段。虛擬機器的核心部份以smallworld2的ObjectPool模組為中心管理所有資源,把所有東西都當作粒子作為基本概念,不論是子彈或是敵機等等都用同樣的方式對待。然後所有粒子都能掛上一個可以控制它動作的緒,再加上一些和射擊相關的屬性支援,就可以運作動起來了。 Parser的部份一開始原本是想使用Lex/Yacc來作製作,但後來決定使用 Boost::Spirit ,因為沒碰過可以順便學習新東西,結果還出乎意料外的容易使用,缺點是Complie時間大增。接著再用WTL寫個簡單的工具程式,可以直接在上面編寫script並以視覺化的方式立即檢視執行結果。 最後才是撰寫遊戲程式本身。基本上遊戲本身的主要工作就是畫圖,把所有粒子根據遊戲自己的定義畫出來。子彈粒子就畫成子彈,爆炸碎片粒子就畫成爆炸碎片等等。成像部份使用OpenGL來作,因為也是順便學學OpenGL。 剛好因為成像是用OpenGL的緣故,所以在有支援OpenGL的平台上要作Porting就容易了。這也是為什麼我可以很容易的把25940p移植到PSP和iPhone上。因為除了成像,還有像是IO等和系統比較有...