国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

淺談即時戰(zhàn)略游戲在 J2ME 上的實現(xiàn)

2019-11-17 06:24:05
字體:
供稿:網(wǎng)友

  《星際》、《魔獸》、《文明》……這些都是PC游戲玩家們耳熟能詳?shù)拿郑梢哉f以這些游戲為代表的戰(zhàn)略游戲是PC游戲的典型代表,戰(zhàn)略游戲的玩家也是眾多PC游戲類型里忠誠度最高的玩家。戰(zhàn)略游戲分為回合制和即時戰(zhàn)略兩類,兩種戰(zhàn)略游戲都有數(shù)量眾多玩家,而后者更因為緊張激烈的游戲性逐漸壓倒了回合制戰(zhàn)略游戲,近幾年來,一直在戰(zhàn)略游戲中占統(tǒng)治地位。
  
  在“J2ME平臺上開發(fā)網(wǎng)絡(luò)即時戰(zhàn)略游戲”,這個話題在現(xiàn)今大多數(shù)J2ME 開發(fā)者聽來無異于天方夜譚。即時戰(zhàn)略游戲名字的“即時”兩個字決定了復(fù)雜的運算和數(shù)據(jù)交互、穩(wěn)定快速的網(wǎng)絡(luò)連接要求、龐大的資源和繪制任務(wù),我們都知道J2ME設(shè)備的資源和性能都極為有限,現(xiàn)有GPRS網(wǎng)絡(luò)業(yè)不盡如人意……這些似乎都成為了在J2ME上開發(fā)網(wǎng)絡(luò)即時戰(zhàn)略游戲不可逾越困難。
  
  困難實實在在的擋在我們面前,但中國三億手機(jī)用戶中蘊藏的龐大的潛在即時戰(zhàn)略玩家促使我們?nèi)タ朔@些困難,只要還有一點可能,我們也要去尋找一條跨過這些障礙的道路。怎么樣才能在手機(jī)上實現(xiàn)網(wǎng)絡(luò)即時戰(zhàn)略游戲呢?
  
  從性能和用戶量考慮,我們選擇諾基亞的60系列作為初期的開發(fā)平臺。我們不考慮采用HTTP協(xié)議,雖然它是J2ME設(shè)備中普遍采用的協(xié)議,但其相對SOCKET的低效性和本身是無連接協(xié)議決定了它不適合即時戰(zhàn)略這種游戲形式。從上表可以看出建立連接的時間要高出連接后的數(shù)據(jù)傳送時間許多,HTTP協(xié)議需要花費許多額外開銷在建立連接上;HTTP平均的數(shù)據(jù)傳送時間也要比SOCKET高許多。我們測試了大部分的60機(jī)型(7650, 3650, 3660, 6600, N-GAGE, N-GAGE QD),所有測試的機(jī)型均支持socket。
  
  從上面可以看出,socket連接數(shù)據(jù)往返一次的平均時間在1~2秒間,這對回合制的戰(zhàn)略游戲或許足夠,但對即時戰(zhàn)略游戲來說還是太長了。有什么辦法能大幅壓縮數(shù)據(jù)傳送的時間呢?我們可以從server和數(shù)據(jù)包協(xié)議考慮。
  
  以上測試的服務(wù)器是用Serverlet寫的,而serverlet是構(gòu)建在Web server上的,那么這個數(shù)據(jù)里包含的服務(wù)器反應(yīng)和處理的時間就不容忽略了,為了獲得更快的響應(yīng)和處理速度,我們必須重新設(shè)計和構(gòu)建游戲的專用Server。傳送的數(shù)據(jù)包大小也是影響速度的一個要害。平時大家開發(fā)J2ME的網(wǎng)絡(luò)應(yīng)用,習(xí)慣于用文本流來傳送數(shù)據(jù),因為大多數(shù)應(yīng)用Server端都是基于Web Server,而且采用文本表示信息非常直觀,也便于Server處理,但對于J2ME平臺和gprs網(wǎng)絡(luò)來說,沒有經(jīng)過壓縮的文本還是浪費了一些。
  
  簡單考慮一下游戲服務(wù)器:一臺主機(jī)應(yīng)該能支撐一百到兩百名玩家同時在線;為了便于配置,Server應(yīng)用應(yīng)該是跨平臺的,而客戶端也是J2ME的,因此Server的開發(fā)環(huán)境java當(dāng)是首選;采用Java 1.4后新增的Java 異步通信功能,性能上也能達(dá)到我們的要求。
  
  因為Server必須我們自己寫,所以沒有必要使用文本編碼協(xié)議,代之以字節(jié)流編碼。簡單估算一下,表示相同的信息,采用文本和字節(jié)編碼方式數(shù)據(jù)大小的比例大于4:1,而且數(shù)據(jù)本來以數(shù)字為主,省去了文本轉(zhuǎn)換的一大筆開銷。更小的數(shù)據(jù)相應(yīng)的也帶來了更快的速度,另外,也為用戶節(jié)省了大筆昂貴的GPRS流量開支。
  
  采取以上的措施后,我們再次測試了數(shù)據(jù)傳送的響應(yīng)時間,平均小于1秒!也許在很多人看來,這個時間還是太長,達(dá)不到實時的要求,但應(yīng)該知道,絕對的實時是不可能實現(xiàn)的,只要在策劃和開發(fā)中采用一些合理的策略,這小于1秒的延遲完全可以很好的掩蓋。
  
  典型的PC即時戰(zhàn)略游戲如《星際》,在局域網(wǎng)對戰(zhàn)時實際上并不需要服務(wù)器的,對戰(zhàn)中的一臺或多臺客戶機(jī)充當(dāng)了服務(wù)器的角色,即使是上戰(zhàn)網(wǎng),戰(zhàn)網(wǎng)服務(wù)器完成的也只是社區(qū)治理的工作。在手機(jī)上實現(xiàn)不能采取這種結(jié)構(gòu):首先,通過GPRS網(wǎng)絡(luò),兩部手機(jī)無法直接連接(不排除藍(lán)牙或紅外的互連,這不在我們的討論范圍內(nèi)),只能通過服務(wù)器中轉(zhuǎn);另外,手機(jī)的運算能力有限,為了游戲能良好的運行,必須把很多的運算轉(zhuǎn)移到資源相對更豐富的Server端,這和一般的CS結(jié)構(gòu)中,盡量讓Client分擔(dān)Server的工作以使得Server能支撐更多的Client的做法背道而馳,也體現(xiàn)了J2ME網(wǎng)絡(luò)應(yīng)用的非凡性吧。
  
  再簡單說一下整個系統(tǒng)的架構(gòu):
  淺談即時戰(zhàn)略游戲在 J2ME 上的實現(xiàn)
  服務(wù)器按功能分為連接服務(wù)器、大廳服務(wù)器、游戲邏輯服務(wù)器、用戶治理服務(wù)器和日志服務(wù)器五種。視用戶的數(shù)量,假如數(shù)量很小,所有的服務(wù)器都可以置于一臺主機(jī)中;隨著用戶量增多,各服務(wù)器可以移動到不同的主機(jī)中,通過調(diào)整各服務(wù)器主機(jī)的數(shù)量達(dá)到均衡負(fù)載。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 霞浦县| 潮州市| 平乡县| 苍溪县| 凉城县| 高邮市| 齐河县| 漯河市| 鹿泉市| 柞水县| 蒙城县| 嘉禾县| 山西省| 虹口区| 平顶山市| 荣昌县| 莱阳市| 余姚市| 西乌珠穆沁旗| 昌平区| 米林县| 泸溪县| 定襄县| 仁寿县| 铜陵市| 乌苏市| 祁门县| 淅川县| 炉霍县| 方正县| 许昌县| 和田县| 衡阳市| 苍溪县| 开江县| 蓬安县| 巩留县| 旌德县| 榕江县| 棋牌| 涟水县|