2011年9月30日 星期五

網路遊戲的程式架構隨想

有的做法是將client server分成兩個app來寫,在純網路遊戲上因為邏輯一律由server處理所以很常見。但是這樣在同時有單機版跟多人版的遊戲上會有維護上的問題,同一個邏輯要寫兩份,所以也有想法是將程式架構直接切成不管單機或多人都是同樣的,只是單機時邏輯部分在本機做,而多人時由server做這樣。

如果要這樣做目前所想到的方法是將input、logic、presentation三者分開不同的layer,logic視單機與否來決定在哪裡運行。presentation要包含播放動畫、線性內插移動、播放音效特效等等。三個layer之間用message或event來傳遞。

有點像MVC設計模式這樣,可能要參考一下。

MVC、MVVM、MVP的介紹:
http://www.dotblogs.com.tw/regionbbs/archive/2011/09/29/compare.to.mvp.mvc.mvvm.aspx

2011年9月29日 星期四

DOOM啟示錄與APPLE

兩個公司都是由兩個極端不同個性的人組成,內向/愛出風頭

都導致了分裂。


但尊重及欣賞對方的專業讓APPLE能再起雄風,而分裂讓ID的遊戲只有技術而不再好玩。

但是在做不出像樣的東西(大刀)跟做不出經典巨作之間,我會選後者。

遊戲業的紀律與製作好遊戲有無關聯?

我認為是有,至少可以確定有產出(John Romero後面都在玩而沒做出關卡)。適當的放鬆管理會產出比較好的品質,而所謂的"適當"就是一個很難拿捏的標準(太嚴會惹毛大家,太鬆就沒有產出)。

不過歷史是由成功者所寫,所以John Romero是否後期都在混也很難說。但是掌握關鍵技術的確還是重點,FPS的關鍵是引擎,APPLE的關鍵是設計。



唯有不斷的要求進步才會成功,不管 這壓力是向自己(John Carmack)或是向別人(Steve Jobs)。

幾個關於iOS的跨平台引擎

Cocos2D
  For 2D,支援Box2D,多半在安裝好後會在IDE中增加一個templete方便直接做好COcos2D專案。

  一開始是Python,後來做了iOS版本(objective c)。cocos2d-x是由中國的開發者所維護的多平台版本(c/c++)。

  tutorial還OK,但是cocos2D-x的API說明跟特殊名稱說明比較難找。可能要看cocos2D-iPhone的說明跟教學比較好。

  原始版本,Python:http://cocos2d.org/
  最著名的iPhone版本:http://www.cocos2d-iphone.org/
  跨平台版本,多加了linux、win32:http://www.cocos2d-x.org/
 

Allegro
     For 3D,可用lua、bullet,不過文件跟教學好像有點不清楚。

 
    支援:
              Unix/Linux
              Windows (MSVC, MinGW)
              MacOS X
              iPhone
    官網: http://alleg.sourceforge.net/readme.html
    中文資訊: https://sites.google.com/site/cycuintrodutiontocomputer/home/allegro-game-development#TOC-Allegro-5-Visual-Studio-2010-
    討論區:http://www.allegro.cc/about


ClanLib
    For 3D,還有包含了不少其它的功能,像網路等
http://clanlib.org/wiki/Main_Page

2011年9月21日 星期三

MLAA

GameDeveloper 2011 06/07有一篇DESTROY ALL JAGGIES裡面在講MLAA