作者chenglap (無想流流星拳)
看板GameDesign
標題Re: [程式] Online Game的設計
時間Tue Nov 8 23:02:02 2011
※ 引述《LaPass (LaPass)》之銘言:
: 但是,我希望建立一個泛用的網路連線機制
: 並保留未來向各方面拓展的可能性以及便利性
: 例如說..... 希望把原本的連線部分,小小修改一下就能用到 MMORPG 上
: 或是在未來,當遊戲從網頁拓展到 iPhone & Android 時
: 能經鬆讓iPhone & Android & Web 三方互相連線
: 而不必大改連線機制以及連線的資料格式
: 頂多重寫Client端
: 請問在建立網路連線系統時,有什麼要注意的地方?
我曾經開發過 3G 電話軟體, 我可以給你一些提議,
你首先要定義的是, 你的系統到底是:
1. 完全同步系統 (RTS)
2. 半同步系統 (FPS)
這兩個有很大的分別, 主要就是你是否要用 UDP 作傳輸, 但這裡
又涉及一個重要的問題, 那就是你要做的東西, 想要擴展至 iPhone
及 Android, 而這兩種東西的連線環境可謂十分不穩定和惡劣. 就
像之前我回的那篇文一樣, 很多人嘗試在這種環境做連線, 出來的
連線品質, 固然可連, 但並非「可玩」, 玩的人會遭受很大的挫敗
感, 那不是服務器的問題, 而是手提是一種很差勁的連線環境.
如果你想要做這方面的引擎, 而無法保持連線品質的話, 那麼應該
最終這專案是不能繼續. 因為實作成遊戲時, 沒有辦法擴充至可玩
的品質.
如果你的資本不多, 只有一個人的話, 我是不建議你做這樣的開發
, 因為你還需要同時使用多個不同的電訊商和多部電話 (特別是因
為你打算開發 Android) , 你的測試成本會十分高昂, 不論是人力
成本上 (例如你需要經常坐捷運測試) , 還是資金成本上, 這種研
發比起遊戲研發更傾向是科技研發, 我認為一個人的資金是燒不起
, 即使燒完了, 也很難去到能應用的品質, 因為一個人的時間有限
, 但是市場和技術都不斷變化.
我檢視你的想法的話, 我會覺得成本太高, 這裡涉及有很多不僅是
寫碼的問題, 而是人力的問題.
網頁遊戲的話, 如果你向著未來看的話, 不妨考慮一下 html5.
: 總而言之,我不希望在未來一再重寫連線、帳號登入等部分
: 還有,網頁遊戲的話,目前看到的網頁遊戲大多是使用Flish,讓我很猶豫
: 到底是用JAVA寫網頁遊戲比較好
: 還是再花點時間去學 ActionScript 來寫 Flish比較好?
其實要開發引擎的話, 就算不加入公司, 也最好自己成立公司.
有了公司, 你才容易處理流動的資金, 著作權等問題, 也方便在被告的
時候你有辦法脫身, 畢竟遊戲這種東西, 不小心的話可以突然涉及很多
你想也沒想過的著作權問題. 特別是你開發的引擎, 之後你會用引擎來
開發很多東西的話, 那些東西要包括的美術/音樂/內容你都不可能自己
一個做完, 如果你聘人的話, 他不小心或者故意用了一些著作權物也是
很可能的事.
至於你做引擎, 本身也可能不小心涉及某些專利或者技術, 也一樣可以
惹上官非的, 有限公司就是用來應付官非的武器, 「人」和「法人」兩
種東西的 HP 值可完全不一樣.
如果你沒有準備, 很容易惹麻煩, 如你所知的, 有些人是不事生產, 專
靠法律來吃飯的.
--
基於思源的概念, 而宣傳的的香港 BBS:
telnet://hkday.net
民國無雙更新 v1.21 抗戰篇 - 蘆溝曉月:
http://sites.google.com/site/kowloonia/home
--
推 VVll:詳細給推 11/08 23:05
推 AmosYang: 推 「人」 vs.「法人」 :D 11/08 23:05
推 LaPass:謝謝提醒。不過,我並沒有打算把計畫搞這麼大.... 11/09 00:26
→ chenglap:你說的是「引擎」呀... 11/09 00:28
推 LaPass:大概類似東方的核心那樣吧,東方每一代的架構都差不多,就 11/09 00:32
→ LaPass:只是多了一些特效、效果、人物等等。 11/09 00:32
→ chenglap:主要問題是東方不涉及連線, 而你這個涉及連線. 11/09 00:33
→ LaPass:背後應該是有一套固定的框架在運作。 11/09 00:33
→ chenglap:東方的情況較像民國無雙, 連線把很多事情都變麻煩了. 11/09 00:33
→ LaPass:我現在想做的就是:連線的框架 11/09 00:33
→ LaPass:因為當初在寫聊天軟體時,我發現可能有辦法把連線部分跟遊 11/09 00:34
其實這更多是系統架構的問題.
最基本的是做多層的分離.
1. 主服務器 (遊戲邏輯)
2. 中層服務器 (負責不同平臺的收發)
3. 客戶端核心
4. 客戶端 GUI
所有輸入輸出訊息用文字的方式傳達, 那麼剩下來的就是技術
上連線的層面. 但這裡系統設計需要很小心, 加上元件多, 人
力成本會比你初期設想的巨大.
※ 編輯: chenglap 來自: 222.167.25.38 (11/09 00:37)
→ LaPass:戲部分切的蠻乾淨的.... 也就是說,只要我把連線框架弄好後 11/09 00:35
→ LaPass:,就可以很輕易的寫出多人互動的東西.... 像小遊戲那類的 11/09 00:36
→ LaPass:太複雜的遊戲就算了,簡單一點的應該都能處理。 11/09 00:37
→ chenglap:坦克大戰是動作遊戲, 不好, 卡牌 boardgame 等較好. 11/09 00:38
→ chenglap:我幾年前有寫過一個, 可惜 code 找不到了. 11/09 00:38
推 LaPass:卡牌那個我現在寫的東西就能輕易辦到.... 只不過目前那個就 11/09 00:39
→ chenglap:你要兼及重用性, 系統設計就是重點. 11/09 00:41
→ LaPass:沒辦法做到即時(原因很難解釋,總而言之,寫法的問題),而 11/09 00:41
→ LaPass:且那個不是用UDP 11/09 00:41
→ chenglap:連線本身很麻煩, 特別是涉及手機. 11/09 00:42
→ chenglap:如果不想太麻煩, 我認為最好一開始就放棄手機那邊. 11/09 00:42
→ chenglap:做手機的東西, 是一定要依手機度身訂造. 11/09 00:43
→ chenglap:為 PC 造的東西, 九成在手機都是運作不了的. 11/09 00:43
推 LaPass:就.... 只能[盡量把能共用的部分切開來吧.... 11/09 00:47
→ LaPass:連線框架再怎麼樣也只是遊戲中的一個零件而以啊 11/09 00:48
推 asleisureto:看起來就手機+單機 或PC+連線選一個嚕 11/09 01:07