基于ARM和WinSock的多人對戰(zhàn)游戲平臺設計
摘要:具有多機互聯對戰(zhàn)功能的開放式便攜游戲機具有廣闊的應用價值和深遠的發(fā)展空間。以SAMSUNG公司基于ARM920T的處理器S3C2410為核心,嵌入WinCE 5.0操作系統,在VS2008開發(fā)環(huán)境下創(chuàng)建智能設備MFC工程,并將在Win32環(huán)境下開發(fā)的單人/雙人五子棋游戲進行代碼移植,最終在ARM開發(fā)板上成功運行游戲。游戲開發(fā)基于Windows Sockets網絡鳊程,能夠實現ARM板與PC、ARM板與ARM板之間的游戲對戰(zhàn),可利用以太網接口互聯,也可以通過無線局域網互聯。該文以五子棋游戲為例,詳述了硬件構建、游戲開發(fā)及移植的整個過程,極具借鑒價值。
關鍵詞:ARM處理器;WinCE5.0操作系統;網絡鳊程;代碼移植
游戲不僅能開發(fā)人的智力,使人頭腦反應靈敏,還能滿足人的精神需求(如冒險、創(chuàng)造力、情感等),極具娛樂性和趣味性,深受人們的喜愛。隨著消費類電子產業(yè)的蓬勃發(fā)展,越來越多的嵌入式電子產品走進了千家萬戶,催生出了諸如GBA(Game Boy Advance)、PSP(Play-Station Portabk)以及最近才在我國上市的iPad等一大批專業(yè)的并且銷量驚人的明星級移動娛樂游戲設備。
然而上述游戲平臺通常造價昂貴,且不具有開放性。例如備受推崇的PSP,開發(fā)授權問題和昂貴的專用開發(fā)套件(軟硬件)使得PSP游戲的開發(fā)門檻很高。這在很大程度上限制了這些游戲平臺的普及。如果利用通用的處理器和常用的嵌入式操作系統(如WinCE、Linux等)構建一種基于以太網或者無線以太網的便攜式的游戲機。則可以吸引大量熟悉C/C++嵌入式編程的工程師或發(fā)燒友制作出各種精彩的游戲,這必將極大地推動這種游戲平臺的普及。而且將平臺進行功能裁剪和批量生產后成本較低,對于中低收入人群來說將是極佳選擇,市場潛力無窮。
本文詳述了這種游戲平臺的硬件構建、互聯對戰(zhàn)游戲開發(fā)框架和流程,以及從Win32到WinCE進行代碼移植的整個開發(fā)過程,并記錄了開發(fā)過程中積累的經驗,具有很高的借鑒價值。
1 硬件平臺
硬件平臺架構如圖1所示。
S3C2410是Samsung公司推出的16/32位RISC處理器,為手持設備和一般類型應用提供了低價格、低功耗、高性能小型微控制器的解決方案。
S3C2410采用了ARM920T內核,0.18μm工藝的CMOS標準宏單元和存儲器單元。它的低功耗、精簡和出色的全靜態(tài)設計特別適用于對低成本和功耗敏感的應用。ARM920T實現了MMU,AMBA BUS和Harvard高速緩沖體系結構。這一結構具有獨立的16 kB的指令Cache和16 kB數據Cache,每個都由8字長的行構成。
2 套接字編程
2.1 WinSock基礎
WinSock是Windows Sockets的縮寫,是Windows環(huán)境下廣泛應用的、開放的、支持多種協議的網絡編程接口規(guī)范。這里主要使用TCP/IP協議族實現通信。
基于TCP/IP的套接字有流式套接字(SOCK_STREAM)、數據報式套接字(SOCK_DGRAM)、原始式套接字(SOCK_RAW)3種類型,如圖2所示。
TCP協議是面向連接的網絡協議,它的連接步驟較多,而且當檢測到數據包丟失或錯誤時,會要求發(fā)送端重新發(fā)送,這樣一來就不可避免地引起了傳輸延時。
UDP協議面向無連接服務,每個分組都攜帶有完整的目的地址,操作簡單,且無傳輸延遲,比較適合要求不高的游戲通信。它的通信時序如圖3所示。
評論