Home > 雜項

雜項 Archive

關於把 Mil 開源,徵求大家意見

osi_standard_logo

這兩個星期在老家的悠長假期快結束了。沒有開發環境下,在想一些開發計劃,當中最重要的是關於 Mil 的開源問題。本文記錄了現時的一些想法,並徵求大家旳意見。

開源的原因

  1. 開始寫 Mil 時是為學習和交流用的。
  2. 沒人用的軟件沒有價值;沒做出好遊戲的引擎也沒有價值。
  3. 遊戲使用的技術一日千里,不常更新的引擎也沒有用。有使用者會鼓勵更新。
  4. 必須要有使用者的回饋才能進步。

期望的理想結果

  1. 有個人或公司(包括自己)用它來做遊戲,並取得成功。
  2. 有更多人參與開發。
  3. 有人(包括自己)用它來做研究用的平台,研究一些新的遊戲用技術。(例如有人用 Quake 來做 AI、ray-tracing的實驗)
  4. 出版書籍或文章。
  5. 提供顧問服務,或取得開發資助。

開源的選擇

  1. 使用那種License? 參考了朋友給的意見,暫時認為 MIT 比較適合。目標是有人用就好了。
  2. 使用那種文字語言(document, blog, forum)? 這比較困難,用英文是比較簡單。但是否要考慮用中文呢?可能先英文,再讓有興趣的人譯中文吧。還是有人認為中文更重要呢?
  3. 在那裡 host? 暫時比較想用 google code (SVN)。但最好是有自己 domain 的website吧? 有其他建議的請告訴我。

開源的準備

首先,完成以下的軟件功能:

  1. 完善 MilStudio 的基本 World 編輯功能。
  2. 腳本的基本 callback 函數。
  3. 把一些之前的 examples (如Platform) 在 MilStudio 裡重新建立一遍,存為 Mud 檔。
  4. 轉換 Mud 至 Win32 MilPlayer 的格式。
  5. 使 MilPlayer 能運行 examples。
  6. 支持人物 skeleton、animation 及 skinning (自 COLLADA 滙入、渲染至 Lua API) 。
  7. 基本的渲染引擎 (主要是 Material、Lights、Renderer)。先做一個 single light per pass (只是簡單Blinn/Phong) 的 renderer。(其實自己很想試做 Light Pre-Pass (slides) 的)
  8. 音效功能。API 應該可以很簡單吧。
  9. Linux 及 OpenGL…… 其實不太想做,因為實際用途太少。主要用途只是用來 proof of concept,可以 Linux + OpenGL 證明 PS3、OSX、iPhone 等也沒大問題。這點再考慮。
  10. Unit tests (Lua API、MilStudio)
  11. Code review 及 refactoring (不想之後的 API 改變太大,有改動盡早改)

之後,上傳前要做的事情:

  1. 檢查所有 thirdparty 的 license,並移除不適合的 (例如我現時把 DXSDK 的 header/library 放在 repository 裡,應該是不可以的吧?但要別人安裝某個版本的 DXSDK 總覺得很麻煩)
  2. 編寫文檔,主力是 Lua 的 API。目前的想法是在 C++ header 裡寫 API doc,用 doxygen 輸出 XML 格式,再寫一個程式轉換為 Lua 的 API 樣式。(將來還可以用來做 IDE 裡的 auto completion 和 call tips)
  3. 做win32 binary installer (MilStudio、MilPlayer),給不需要用 source code 的使用者。
  4. 項目 logo、icon、philosophy、tutorial……

以上的事情大概在今年內應該完成不了,希望在農曆新年前完成。

之後的短期路線圖

只有路線圖,沒有時間表。

  1. 因應朋友的需要做 PSP 移植,可能會先用 homebrew 的 SDK
  2. MilStudio 裡的 Lua debugger。
  3. Mud 及 MilStudio 加入 version control。
  4. 用 Entity 的方式來做 GUI,暫不考慮文字輸入。
  5. 做不完的 graphics 功能 (particle、shadow、post-processing……)

結語

開源也意味著將來長時間要做更新、bug fixes、回答問題等等,需要長期的投入。

歡迎你的任何意見,可回 comment 或 e-mail 給我。

新面貌

終於更換了之前的預設 wordpress template。新的 template 維持簡潔風格,字體應該比之前的較容易閱讀。希望大家喜歡。

另外,從上星期日開始做 Linux porting。在 Vmware 上安裝 Ubuntu 來測試。發覺自己完全忘記了 makefile,中途還想放棄去改用 scons。最後還是繼續 GNU make,終於今晚搞定用 makefile 執行 SWIG,不過有點兒 hard code 成份。明天開始做 OpenGL + Cg。

PS. 荷蘭來的舊朋友在我家住了兩天,因他的來到,我們才找附近的好餐廳,吃了兩晚豐富的晚餐。昨晚玩 Wii Sports 和 Wii Fit 玩到一點鐘。
PPS. 問同事借了 PSP 玩 《無限回廊》。這是創意之作,而且我本身又喜愛 M.C. Escher (荷蘭畫家!)。

《Milo的遊戲開發》搬到新居

感謝seezone提供空間,讓這 Blog 能夠搬到這麼好的環境來。

昨晚花了幾小時尋找代碼格式化 的 plug-in,最後撰擇了 WP-Syntax 及修改以往的 post。現在是不是可以看得更舒服呢?

回應時也可以這樣加入

<pre lang="語言">
代碼
</pre>

“語言”可以是 C++, C#, Lua, Javascript 等等。

P.S. 之前希望搬站的一個原因是,blogspot 在內地是看不到的……

目標

最近認為絕大部遊戲內容是應該用Script來寫的,而.Net來做工具似乎是個很好的選擇。我把最近想做到的都列出來吧。

短期目標:

  1. 學習Script在遊戲的應用。
  2. 選擇一個Script Language及Binding方法 (大概是Lua和Swig)。
  3. 先寫個3D Vector的Binding吧。
  4. 用Script做Unit Test。
  5. 做Native和Script的Performance Test。
  6. 再試做它的 .Net Binding (用Swig 的PInvoke或 C++/CLI)。

中期目標:

  1. 做個簡單的Graphics API Wrapper。最近剛做過某Console的簡單wrapper,感覺視野有闊了一點。始終底層都是那些硬件,Graphics API的差異變得較不重要。
  2. 做個簡單的GUI系統。不知做了多少次,十幾年前(?!)做的都沒有screenshots了,不然對比一下它們可能會很有趣。
  3. 用.Net做GUI Editor,Script做Event Handling。

長期目標:

  1. 開發簡單的Game Engine和工具,先針對遊戲內容的製作。
  2. 開發一個遊戲。不一定要完整的,但要有Core gameplay。

這些目標絕對會隨時改變,尤其是得到你們的指導(疏擺…… ^_^)。

新的開始

一個人來到了上海工作,一切都是新的體驗。

回顧過去幾年,因為長期做同一個項目的關係,會把一些概念或選擇定形。在技術上也因為工作岡位的改變而慢慢生疏。現在看多了別人做的東西,有了新的刺激,少不免回想起少年時代做遊戲的日子。工作性質也給了我一個機會從頭做起,學習各樣事情。

這幾個星期我反覆地想,希望在餘暇能享受學習和開發遊戲。所以,今天設了這個Blog把這些記錄下來,希望也可以成為和各好友交流的地方。

Home > 雜項

Search
Feeds
Meta

Return to page top