新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于ARM的多人對戰游戲平臺

        基于ARM的多人對戰游戲平臺

        作者: 時間:2013-12-04 來源:網絡 收藏

          游戲不僅能開發人的智力,使人頭腦反應靈敏,還能滿足人的精神需求(如冒險、創造力、情感等),極具娛樂性和趣味性,深受人們的喜愛。隨著消費類電子產業的蓬勃發展,越來越多的嵌入式電子產品走進了千家萬戶,催生出了諸如GBA(Game Boy Advance)、PSP(Play-Station Portabk)以及最近才在我國上市的iPad等一大批專業的并且銷量驚人的明星級移動娛樂游戲設備。

          然而上述游戲平臺通常造價昂貴,且不具有開放性。例如備受推崇的PSP,開發授權問題和昂貴的專用開發套件(軟硬件)使得PSP游戲的開發門檻很高。這在很大程度上限制了這些游戲平臺的普及。如果利用通用的處理器和常用的嵌入式操作系統(如WinCE、Linux等)構建一種基于以太網或者無線以太網的便攜式的游戲機。則可以吸引大量熟悉C/C++嵌入式編程的工程師或發燒友制作出各種精彩的游戲,這必將極大地推動這種游戲平臺的普及。而且將平臺進行功能裁剪和批量生產后成本較低,對于中低收入人群來說將是極佳選擇,市場潛力無窮。

          本文詳述了這種游戲平臺的硬件構建、互聯對戰游戲開發框架和流程,以及從Win32到WinCE進行代碼移植的整個開發過程,并記錄了開發過程中積累的經驗,具有很高的借鑒價值。

          1 硬件平臺

          硬件平臺架構如圖1所示。

        基于ARM的多人對戰游戲平臺

          是Samsung公司推出的16/32位RISC處理器,為手持設備和一般類型應用提供了低價格、低功耗、高性能小型微控制器的解決方案。

          采用了arm920T內核,0.18μm工藝的CMOS標準宏單元和存儲器單元。它的低功耗、精簡和出色的全靜態設計特別適用于對低成本和功耗敏感的應用。arm920T實現了MMU,AMBA BUS和Harvard高速緩沖體系結構。這一結構具有獨立的16 kB的指令Cache和16 kB數據Cache,每個都由8字長的行構成。

          2 套接字編程

          2.1 WinSock基礎

          WinSock是Windows Sockets的縮寫,是Windows環境下廣泛應用的、開放的、支持多種協議的網絡編程接口規范。這里主要使用TCP/IP協議族實現通信。

          基于TCP/IP的套接字有流式套接字(SOCK_STREAM)、數據報式套接字(SOCK_DGRAM)、原始式套接字(SOCK_RAW)3種類型,如圖2所示。

        基于ARM的多人對戰游戲平臺

          TCP協議是面向連接的網絡協議,它的連接步驟較多,而且當檢測到數據包丟失或錯誤時,會要求發送端重新發送,這樣一來就不可避免地引起了傳輸延時。

        基于ARM的多人對戰游戲平臺

          UDP協議面向無連接服務,每個分組都攜帶有完整的目的地址,操作簡單,且無傳輸延遲,比較適合要求不高的游戲通信。它的通信時序如圖3所示。

          2.2 應用程序接口函數

          1)加載套接字庫AfxSocketlnit()

          布爾型,參數缺省值為NULL,在程序結束前自動調用WSACleanup清除套接字。

          2)創建套接字socket()

          用于創建指定類型的套接字,流式(TCP協議)SOCK_STREAM或數據報式(UDP協議)SOCK_DGRAM。

          3)綁定本地地址bind()

          將套接字地址(包括本地主機地址和本地端口地址)與所創建的套接字號聯系起來,即將名字賦予套接字,以指定本地半相關。

          4)接收recvfrom()

          在套接字指定的已連接的數據報或流套接字上接收輸入數據。

          5)發送sendto()

          在套接字指定的已連接的數據報或流套接字上發送輸出數據。

          3 Win32下五子棋程序設計

          3.1 游戲設計思路

          游戲開始前有一系列引導步驟,讓用戶選擇游戲模式,并作相應的初始連接,如圖4所示。這些引導步驟可通過添加一系列對話框資源來實現。完成之后進入選擇的游戲模式。


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 丰顺县| 南溪县| 宁乡县| 永胜县| 长乐市| 特克斯县| 荣成市| 绥阳县| 景泰县| 孟州市| 禄丰县| 天气| 伊金霍洛旗| 武汉市| 镇雄县| 南岸区| 长沙市| 湖南省| 孟津县| 九台市| 太谷县| 大庆市| 志丹县| 赤壁市| 东乌珠穆沁旗| 伊金霍洛旗| 石城县| 遵化市| 永仁县| 克山县| 茶陵县| 太湖县| 新龙县| 镇江市| 铜梁县| 简阳市| 金秀| 灵寿县| 灌云县| 津市市| 乐至县|