- 2009-10-09 (五) 23:44
- 雜項

這兩個星期在老家的悠長假期快結束了。沒有開發環境下,在想一些開發計劃,當中最重要的是關於 Mil 的開源問題。本文記錄了現時的一些想法,並徵求大家旳意見。
開源的原因
- 開始寫 Mil 時是為學習和交流用的。
- 沒人用的軟件沒有價值;沒做出好遊戲的引擎也沒有價值。
- 遊戲使用的技術一日千里,不常更新的引擎也沒有用。有使用者會鼓勵更新。
- 必須要有使用者的回饋才能進步。
期望的理想結果
- 有個人或公司(包括自己)用它來做遊戲,並取得成功。
- 有更多人參與開發。
- 有人(包括自己)用它來做研究用的平台,研究一些新的遊戲用技術。(例如有人用 Quake 來做 AI、ray-tracing的實驗)
- 出版書籍或文章。
- 提供顧問服務,或取得開發資助。
開源的選擇
- 使用那種License? 參考了朋友給的意見,暫時認為 MIT 比較適合。目標是有人用就好了。
- 使用那種文字語言(document, blog, forum)? 這比較困難,用英文是比較簡單。但是否要考慮用中文呢?可能先英文,再讓有興趣的人譯中文吧。還是有人認為中文更重要呢?
- 在那裡 host? 暫時比較想用 google code (SVN)。但最好是有自己 domain 的website吧? 有其他建議的請告訴我。
開源的準備
首先,完成以下的軟件功能:
- 完善 MilStudio 的基本 World 編輯功能。
- 腳本的基本 callback 函數。
- 把一些之前的 examples (如Platform) 在 MilStudio 裡重新建立一遍,存為 Mud 檔。
- 轉換 Mud 至 Win32 MilPlayer 的格式。
- 使 MilPlayer 能運行 examples。
- 支持人物 skeleton、animation 及 skinning (自 COLLADA 滙入、渲染至 Lua API) 。
- 基本的渲染引擎 (主要是 Material、Lights、Renderer)。先做一個 single light per pass (只是簡單Blinn/Phong) 的 renderer。(其實自己很想試做 Light Pre-Pass (slides) 的)
- 音效功能。API 應該可以很簡單吧。
- Linux 及 OpenGL…… 其實不太想做,因為實際用途太少。主要用途只是用來 proof of concept,可以 Linux + OpenGL 證明 PS3、OSX、iPhone 等也沒大問題。這點再考慮。
- Unit tests (Lua API、MilStudio)
- Code review 及 refactoring (不想之後的 API 改變太大,有改動盡早改)
之後,上傳前要做的事情:
- 檢查所有 thirdparty 的 license,並移除不適合的 (例如我現時把 DXSDK 的 header/library 放在 repository 裡,應該是不可以的吧?但要別人安裝某個版本的 DXSDK 總覺得很麻煩)
- 編寫文檔,主力是 Lua 的 API。目前的想法是在 C++ header 裡寫 API doc,用 doxygen 輸出 XML 格式,再寫一個程式轉換為 Lua 的 API 樣式。(將來還可以用來做 IDE 裡的 auto completion 和 call tips)
- 做win32 binary installer (MilStudio、MilPlayer),給不需要用 source code 的使用者。
- 項目 logo、icon、philosophy、tutorial……
以上的事情大概在今年內應該完成不了,希望在農曆新年前完成。
之後的短期路線圖
只有路線圖,沒有時間表。
- 因應朋友的需要做 PSP 移植,可能會先用 homebrew 的 SDK。
- MilStudio 裡的 Lua debugger。
- Mud 及 MilStudio 加入 version control。
- 用 Entity 的方式來做 GUI,暫不考慮文字輸入。
- 做不完的 graphics 功能 (particle、shadow、post-processing……)
結語
開源也意味著將來長時間要做更新、bug fixes、回答問題等等,需要長期的投入。
歡迎你的任何意見,可回 comment 或 e-mail 給我。
Comments:4
- 黑眼圈 09-10-10 (六) 5:04
-
host用github.com (git)也不错,免费的开源项目帐号只有300M空间和google比起来小了点,不过全部代码的话完全够的。
- mini 09-10-12 (一) 16:20
-
建議支持iphone,現在支持的引擎不多,有的話會更有亮點,
psp開發的人太少了。 - damody 09-11-24 (二) 4:32
-
個人覺得想要別人分享又要私下使用的話,又希望別人的改版發佈要含源碼的話MIT應該夠用了,
如果用GPL的話反而會很多人嚇到不敢用。 - xpoy 10-01-31 (日) 6:04
-
用给开源项目的空间,当然是SourceForge最好罢?
另外,quake那样的引擎的确很强,但quake的引擎也大部分是用给 FPS之类 单位数量少的游戏,LZ的引擎主要是想走往哪个游戏的方向?
iphone所使用的ARM架构和psp的MIPS架构还是差别很大的,即便在包装了很多层的API层次也有极大的区别,按自己的想法吧应该在现在改变向iphone (?)
进行psp游戏开发的主力是 较大的游戏公司,它们应该多半是用索尼的SDK以及购买的引擎罢?短期想给他们以影响的确不现实,当然实际情况怎样自己并不清楚,因为只是几个月前参与过psp游戏的汉化( :P 顺带学习点mips架构的皮毛)。
lua的API是不足的,希望LZ的开源项目中考虑到 类似于可视化开发的组件.小可只是一个大菜,说的东西也只不过是 立即的想法,和实际的情况可能缪差千里,LZ万万要指正…
另外,/:^] 如果可以,TA3D.org……
Trackbacks:0
- Trackback URL for this entry
- http://miloyip.seezone.net/wp-trackback.php?p=139
- Listed below are links to weblogs that reference
- 關於把 Mil 開源,徵求大家意見 from Milo的遊戲開發