基于A(yíng)RM的多人對戰游戲平臺
游戲不僅能開(kāi)發(fā)人的智力,使人頭腦反應靈敏,還能滿(mǎn)足人的精神需求(如冒險、創(chuàng )造力、情感等),極具娛樂(lè )性和趣味性,深受人們的喜愛(ài)。隨著(zhù)消費類(lèi)電子產(chǎn)業(yè)的蓬勃發(fā)展,越來(lái)越多的嵌入式電子產(chǎn)品走進(jìn)了千家萬(wàn)戶(hù),催生出了諸如GBA(Game Boy Advance)、PSP(Play-Station Portabk)以及最近才在我國上市的iPad等一大批專(zhuān)業(yè)的并且銷(xiāo)量驚人的明星級移動(dòng)娛樂(lè )游戲設備。
然而上述游戲平臺通常造價(jià)昂貴,且不具有開(kāi)放性。例如備受推崇的PSP,開(kāi)發(fā)授權問(wèn)題和昂貴的專(zhuān)用開(kāi)發(fā)套件(軟硬件)使得PSP游戲的開(kāi)發(fā)門(mén)檻很高。這在很大程度上限制了這些游戲平臺的普及。如果利用通用的處理器和常用的嵌入式操作系統(如WinCE、Linux等)構建一種基于以太網(wǎng)或者無(wú)線(xiàn)以太網(wǎng)的便攜式的游戲機。則可以吸引大量熟悉C/C++嵌入式編程的工程師或發(fā)燒友制作出各種精彩的游戲,這必將極大地推動(dòng)這種游戲平臺的普及。而且將平臺進(jìn)行功能裁剪和批量生產(chǎn)后成本較低,對于中低收入人群來(lái)說(shuō)將是極佳選擇,市場(chǎng)潛力無(wú)窮。
本文詳述了這種游戲平臺的硬件構建、互聯(lián)對戰游戲開(kāi)發(fā)框架和流程,以及從Win32到WinCE進(jìn)行代碼移植的整個(gè)開(kāi)發(fā)過(guò)程,并記錄了開(kāi)發(fā)過(guò)程中積累的經(jīng)驗,具有很高的借鑒價(jià)值。
1 硬件平臺
硬件平臺架構如圖1所示。

S3C2410是Samsung公司推出的16/32位RISC處理器,為手持設備和一般類(lèi)型應用提供了低價(jià)格、低功耗、高性能小型微控制器的解決方案。
S3C2410采用了arm920T內核,0.18μm工藝的CMOS標準宏單元和存儲器單元。它的低功耗、精簡(jiǎn)和出色的全靜態(tài)設計特別適用于對低成本和功耗敏感的應用。arm920T實(shí)現了MMU,AMBA BUS和Harvard高速緩沖體系結構。這一結構具有獨立的16 kB的指令Cache和16 kB數據Cache,每個(gè)都由8字長(cháng)的行構成。
2 套接字編程
2.1 WinSock基礎
WinSock是Windows Sockets的縮寫(xiě),是Windows環(huán)境下廣泛應用的、開(kāi)放的、支持多種協(xié)議的網(wǎng)絡(luò )編程接口規范。這里主要使用TCP/IP協(xié)議族實(shí)現通信。
基于TCP/IP的套接字有流式套接字(SOCK_STREAM)、數據報式套接字(SOCK_DGRAM)、原始式套接字(SOCK_RAW)3種類(lèi)型,如圖2所示。

TCP協(xié)議是面向連接的網(wǎng)絡(luò )協(xié)議,它的連接步驟較多,而且當檢測到數據包丟失或錯誤時(shí),會(huì )要求發(fā)送端重新發(fā)送,這樣一來(lái)就不可避免地引起了傳輸延時(shí)。

UDP協(xié)議面向無(wú)連接服務(wù),每個(gè)分組都攜帶有完整的目的地址,操作簡(jiǎn)單,且無(wú)傳輸延遲,比較適合要求不高的游戲通信。它的通信時(shí)序如圖3所示。
2.2 應用程序接口函數
1)加載套接字庫AfxSocketlnit()
布爾型,參數缺省值為NULL,在程序結束前自動(dòng)調用WSACleanup清除套接字。
2)創(chuàng )建套接字socket()
用于創(chuàng )建指定類(lèi)型的套接字,流式(TCP協(xié)議)SOCK_STREAM或數據報式(UDP協(xié)議)SOCK_DGRAM。
3)綁定本地地址bind()
將套接字地址(包括本地主機地址和本地端口地址)與所創(chuàng )建的套接字號聯(lián)系起來(lái),即將名字賦予套接字,以指定本地半相關(guān)。
4)接收recvfrom()
在套接字指定的已連接的數據報或流套接字上接收輸入數據。
5)發(fā)送sendto()
在套接字指定的已連接的數據報或流套接字上發(fā)送輸出數據。
3 Win32下五子棋程序設計
3.1 游戲設計思路
游戲開(kāi)始前有一系列引導步驟,讓用戶(hù)選擇游戲模式,并作相應的初始連接,如圖4所示。這些引導步驟可通過(guò)添加一系列對話(huà)框資源來(lái)實(shí)現。完成之后進(jìn)入選擇的游戲模式。
評論