大貓共和國

Meow

Python-Ogre安裝

Python-Ogre的安裝反而比C++環境的安裝簡單的多。

  1. 安裝Python 2.5 Windows installer (假設裝到C:\Python25)
  2. 抓下Python-Ogre 0.80 Windows Release for Python 2.5,解壓至C:\Python25
  3. 進到命令提示字元,輸入
    cd \python25\Python-Ogre-0.8
    ..\python setup.py install
  4. 抓下Media for Python-Ogre,解壓後將C:\Python25\Python-Ogre-0.8\demos\media覆蓋
這樣就安裝完成囉。令外OGRE Wiki推薦安裝Psyco,可以加速python程式的執行。

來執行看看吧

cd \Python25\Python-Ogre-0.8\demos\ogre
\Python25\python.exe Demo_Lighting.py




成功!!




可以在我的電腦->內容->進階->環境變數->系統變數->path
在變數值後面加上;C:\Python25
記得重新開啟command console

就不用執行\Python25\python.exe 直接打python就好了,筆者的電腦因為有兩個版本的python,所以不做此設定。

OGRE Language Binding

縱觀近年來程式語言的發展,我想大家應該都會同意動態、腳本語言可以縮短程式開發的時間。例如:

等等…

OGRE本身是使用C++寫的,但其龐大的社群使得我們可以找到一些其他語言binding的資源:

PyOgre

PyOgre的歷史應該滿悠久的,使用SWIG將OGRE與Python語言做結合,讓我們可以在Python中直接取用OGRE的物件。

PyOgre最新的版本應該是1.2版,但是官網的binary release竟然停留在2005年的1.0.6版,不知道在想什麼 =.= Wiki上面有熱心的網友自己編譯的win32 binary,但連結已失效了。目前取得最新版本的唯一方式就是自己去SVN checkout然後編譯。

PyOgre的優點應該是比較stable(應為已經開發很久了)、官網tutorial(在PyOgre的下半部)一定可以work。除此之外,官網論壇上的人似乎都比較推薦Python-Ogre。

Python-Ogre

Python-Ogre是另外一套Ogre的Python binding,相較於PyOgre使用SWIG,Python-Ogre使用Py++來自動化的做Warpper的動作。當然使用者可以不用理會這些,重點是Python-Ogre雖然發展不到半年的時間,但開發的動作相當迅速,應該可望完全取代掉PyOgre。

Shattered Ruby

Shattered Ruby是一套使用OGRE為底層的Game Framework,他不僅是做Warpper的動作而已,還開發了一些工具來加速遊戲設計的流程。

我想這個開發者一定對於Ruby on Rails的網頁框架十分熟悉,而把Rails這個網頁開發的很多概念拿到遊戲開發上,如:
  • DRY: Don’t repeat yourself
  • CoC: Convention before configuration
  • Generator
  • Domain Specific Language
等等…我覺得是一個相當有潛力的project,可惜使用者族群沒有Python的多。




當然,有其利必有其弊。這些動態語言的開發速度雖然勝過C++,但執行速度是一定比不過C++的,如何平衡當然就看你的應用囉。例如:
  • 格鬥遊戲、3D射擊遊戲:別鬧了,乖乖用C++寫吧。動態語言可以拿來輔助做流程控制用。
  • 益智遊戲、冒險解迷:在運算量不大的前題下,整個遊戲都使用動態語言寫也是有可能的。

OGRE + MinGW + Code::Blocks 安裝

OGRE本身是用C++寫的,所以利用OGRE撰寫程式最直接的方法也就是使用C++。在OGRE官網 提供了幾種開發環境的SDK,當然你要自己在其他環境compile應該也是可以的,但新手的話最好照著他的instruction做吧。

  • VC.net 2005:雖然我滿不想用微軟的IDE,但為了方便我一開始試灌了這個方案。結果我發現還要另外抓四百多MB的windows platform SDK後,一怒之下就放棄了。
  • VC.net 2003:聽說這版不用灌platform SDK,我不太確定,要試的人請自己survey。
  • MinGW+CodeBlock:最後我還是選擇了gcc當我的底層compiler,於是就使用了這個方案。灌起來應該比VC麻煩一些吧。
如果你已經決定了使用MinGW+CodeBlock方案的話,請先詳閱這篇文章並跟著一步一步做。(注意:在Code::Block 1.0 stable release後,安裝的步驟應該會變簡單很多,請隨時注意該wiki文章的內容有沒有更新)

MinGW

MinGW是什麼?有試著在windows下用gcc的人應該都知道,MinGW和cygwin是目前兩個將gcc port到windows下的方案。所以我們的編譯器就靠他了。

注意,不要下載官方的MinGW,因為OGRE對於libstdc++做了一些修正,請下載OGRE提供的MinGW ToolBox

Code::Blocks

這是一套聽說要追過Dev-C++的Open Source IDE (我最近很少在寫C,所以不太清楚)

注意:不要使用Code::Blocks 1.0 RC2及以前的版本,會當機。
Code::Blocks的官方論壇幾乎每天會放出新的nightly build。OGRE官網是建議抓最新的nightly build,不過抓之前可以看看該thread有沒有重大的bug :)

除了抓Wiki那兩個檔案外,記得抓mingwm10.7z,才有和mingw溝通的DLL

OGRE SDK

沒啥好說的,one-click installer

Direct9 SDK

最好裝一下,如果你跟我一樣不爽裝(XD)的話….

先 把sample build & run看看,如果跳出找不到D3DX9??.dll (??可能是某兩個數字),去google 搜尋這個檔案的名稱就可以抓到了,把他丟進windows\system32之中。 (記得掃毒,但google明列前矛的網站應該還OK)

這樣做的話,在debug build中可能會需要D3DX9
??d.dll (多了一個d字,debug版本的dll)而當掉。如果你還是不想用DX的話…

在C:\OgreSDK\bin\debug (或你的安裝資料夾下) ,找到plugins.cfg中
Plugin=RenderSystem_Direct3D9
將這行最前面加個井號註解掉,不要使用D3D,完全用OpenGL就好了。

來玩OGRE吧

Wiki最下面的那些setting可以先不要看,如果你抓的是2007.2.13之後的Code::Block nightly build,他裡面就有附OGRE的template project了。



正常的話可以直接build



萬歲!!成功 XD

(下一章應該寫OGRE + Python)

What’s OGRE?

OGRE是目前最大的open source 3d rendering engine之一,這四個字其實是Open soure GRaphic Engine的縮寫。

這套引擎的歷史已經很悠久了,相信很多人沒玩過也聽過。那我只在這裡做簡單的介紹:

  • 他是一個繪圖引擎(rendering, 對岸好像稱為絢染)
  • 他不是一個遊戲引擎,這個函式庫專注在3D繪圖上,少了音效、輸入、網路(optional)等部份。(事實上OGRE有很粗糙的輸入處理功能,但正式製作遊戲時不建議使用)
為什麼要用OGRE?他與DirectX, OpenGL有什麼不同?
  • DirectX及OpenGL都是較底層的繪圖函式庫,直接與硬體做溝通。
  • DirectX是微軟的產品,只能在Windows系列上面跑。OpenGL是工業標準,能夠跨平台在Windows, Linux, Mac OSX上執行。
  • OGRE提供了比較高階的C++物件導向封裝,學習起來比較簡單。他可以選擇呼叫底層的DirectX和OpenGL,達到跨平台的目的,在windows下也可使用表現可能較好的DX。
介紹OGRE的一些link

學習OGRE最快的方法應該就是照著OGRE Tutorial跑一遍,千萬不要一開始就去看API Documentation,保證你看的頭昏腦脹。由於目前OGRE的繁中資源還滿少的,接下來我應該會把我的筆記簡單的整理出來,其實我自己也是最近在跑tutorial而已,對整個開發流程還只是一知半解,如有謬誤也請大家幫忙更正。

P.S. ogre這個字本身是食人魔的意思,開發人員明顯都是愛玩遊戲的人,固意把名稱縮成這四個字 XD