淺談即時戰略遊戲J2ME中應用

來源:互聯網
上載者:User
戰略 --------------------------------------------------------------------------------
《星際》、《魔獸》、《文明》……這些都是PC遊戲玩家們耳熟能詳的名字,可以說以這些遊戲為代表的戰略遊戲是PC遊戲的典型代表,戰略遊戲的玩家也是眾多PC遊戲類型裡忠誠度最高的玩家。戰略遊戲分為回合制和即時戰略兩類,兩種戰略遊戲都有數量眾多玩家,而後者更因為緊張激烈的遊戲性逐漸壓倒了回合制戰略遊戲,近幾年來,一直在戰略遊戲中占統治地位。


在“J2ME平台上開發網路即時戰略遊戲”,這個話題在現今大多數J2ME 開發人員聽來無異於天方夜譚。即時戰略遊戲名字的“即時”兩個字決定了複雜的運算和資料互動、穩定快速的網路連接要求、龐大的資源和繪製任務,我們都知道J2ME裝置的資源和效能都極為有限,現有GPRS網路業不盡如人意……這些似乎都成為了在J2ME上開發網路即時戰略遊戲不可逾越困難。

困難實實在在的擋在我們面前,但中國三億手機使用者中蘊藏的龐大的潛在即時戰略玩家促使我們去克服這些困難,只要還有一點可能,我們也要去尋找一條跨過這些障礙的道路。怎麼樣才能在手機上實現網路即時戰略遊戲呢?

從效能和使用者量考慮,我們選擇諾基亞的60系列作為初期的開發平台。
我們不考慮採用HTTP協議,雖然它是J2ME裝置中普遍採用的協議,但其相對SOCKET的低效性和本身是無連線協定決定了它不適合即時戰略這種遊戲形式。從上表可以看出建立串連的時間要高出串連後的資料傳送時間許多,HTTP協議需要花費許多額外開銷在建立串連上;HTTP平均的資料傳送時間也要比SOCKET高許多。我們測試了大部分的60機型(7650, 3650, 3660, 6600, N-GAGE, N-GAGE QD),所有測試的機型均支援socket。

從上表可以看出,socket串連資料往返一次的平均時間在1 ~ 2秒間,這對回合制的戰略遊戲或許足夠,但對即時戰略遊戲來說還是太長了。有什麼辦法能大幅壓縮資料傳送的時間呢?

我們可以從server和資料包協議考慮。

以上測試的伺服器是用Serverlet寫的,而serverlet是構建在Web server上的,那麼這個資料裡包含的伺服器反應和處理的時間就不容忽略了,為了獲得更快的響應和處理速度,我們必須重新設計和構建遊戲的專用Server。傳送的資料包大小也是影響速度的一個關鍵。平時大家開發J2ME的網路應用,習慣於用文字資料流來傳送資料,因為大多數應用Server端都是基於Web Server,而且採用文本表示資訊非常直觀,也便於Server處理,但對於J2ME平台和gprs網路來說,沒有經過壓縮的文本還是浪費了一些。

簡單考慮一下遊戲伺服器:一台主機應該能支撐一百到兩百名玩家同時線上;為了便於配置,Server應用應該是跨平台的,而用戶端也是J2ME的,因此Server的開發環境java當是首選;採用Java 1.4後新增的Java 非同步通訊功能,效能上也能達到我們的要求。

因為Server必須我們自己寫,所以沒有必要使用文本編碼協議,代之以位元組流編碼。簡單估算一下,表示相同的資訊,採用文本和位元組編碼方式資料大小的比例大於4:1,而且資料本來以數字為主,省去了文本轉換的一大筆開銷。更小的資料相應的也帶來了更快的速度,另外,也為使用者節省了大筆昂貴的GPRS流量開支。

採取以上的措施後,我們再次測試了資料傳送的回應時間,平均小於1秒!也許在很多人看來,這個時間還是太長,達不到即時的要求,但應該知道,絕對的即時是不可能實現的,只要在策劃和開發中採用一些合理的策略,這小於1秒的延遲完全可以很好的掩蓋。

典型的PC即時戰略遊戲如《星際》,在區域網路對戰時實際上並不需要伺服器的,對戰中的一台或多台客戶機充當了伺服器的角色,即使是上戰網,戰網伺服器完成的也只是社區管理的工作。在手機上實現不能採取這種結構:首先,通過GPRS網路,兩部手機無法直接連接(不排除藍芽或紅外的互連,這不在我們的討論範圍內),只能通過伺服器中轉;另外,手機的運算能力有限,為了遊戲能良好的運行,必須把很多的運算轉移到資源相對更豐富的Server端,這和一般的CS結構中,盡量讓Client分擔Server的工作以使得Server能支撐更多的Client的做法背道而馳,也體現了J2ME網路應用的特殊性吧:)

再簡單說一下整個系統的架構:


伺服器按功能分為串連伺服器、大廳伺服器、遊戲邏輯伺服器、使用者管理伺服器和Log Service器五種。視使用者的數量,如果數量很小,所有的伺服器都可以置於一台主機中;隨著使用者量增多,各伺服器可以移動到不同的主機中,通過調整各伺服器主機的數量達到均衡負載。



相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。