Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> 使用JAVA與SmartFoxServer來實現游戲服務器概述,javasmartfoxserver

使用JAVA與SmartFoxServer來實現游戲服務器概述,javasmartfoxserver

編輯:關於android開發

使用JAVA與SmartFoxServer來實現游戲服務器概述,javasmartfoxserver


SmartFoxServer 是專門為Adobe Flash設計的跨平台socket服務器,讓開發者高效地開發多人應用及游戲. 該服務器主要用來創建多玩家游戲。並提供強大的制作工具,各種回合制游戲和實時游戲都可以勝任。 SmartFoxServer 支持的播放器從Flash player6版到最新的Flash Player 9,並提供豐富的Actionscript 1.0, 2.0 and 3.0 APIs,同時也支持 Flex Builder 2 and 3. 該產品帶有詳細的幫助文檔, 大約 36 個帶源代碼的示例 還有強大的遠程管理工具。 SmartFoxServer專門用於多用戶聯機游戲開發,支持Flash/Flex/Air, Java, .Net, Unity3D, Apple iPhone 開發。 目前有3個版本:SFS Lite 此版本免費,只支持AS1.0 和 2.0 不支持AS3.0。可以迅速配置服務器,適合初學者。當然,不支持服務器擴展。 SFS Basic 此版本應該適合小型游戲開發,不支持服務器擴展,收費產品。 SFS Professional 此版本為專業版,支持服務器擴展,適合開發大型游戲,收費。  

總體來說,如果是想做一個比較簡單的虛擬現實服務,拿sfs來做還是很方便的,省去了前期構造服務器網絡,實現數據庫接口,數據同步等等一些基礎功能的時間,可以一上來就直奔主題,開發自己項目相關的功能.

 

    Sfs的接口封裝也比較簡單,基本上看到接口名就能知道是做什麼用的,參數是什麼意義,而且他的文檔也比較詳細,對於非服務器開發專業人員也比較方便.sfs的定義也主要在此,比如他最早支持的flash客戶端api.

 

    而隨著sfs的成功,也開始將目標轉向了目前新興的iphone, android, sillverlight, unity等 客戶端.這次使用c# client api做了一個winform測試程序,使用起來也是非常的方便.

 

 

    第一次拿sfs做商業項目,也還是遇到了一些問題,總結一下,另外還有一些未完善的地方,後面再花時間繼續實現.

 

 

    CustomLogin的處理在zone extension裡,必須先join room才能使用xt message.所以需要先寫一個zone extension,在這裡處理登錄驗證,注意驗證成功後需要向客戶端發送room list, 客戶端必須收到room list消息才能做後面的操作,這是sfs限制死了的.

 

本來我想在extension裡讓客戶端驗證成功後直接join room,未果,調試良久才發現,客戶端未收到room list,不能join room.

 

 

    Sfs的user variables只支持bool, integer, string類型,其他類型的數據不能同步.這個問題困擾了我差不多一個小時,最後在客戶端一步步跟蹤屬性同步過程時才發現,其他類型的variable都被忽略掉了.

 

    於是,為了同步float坐標數據,我不得不加上了float.toString(),數據量又大了不少.

 

 

    Sfs消息定義的方式,不要像sample裡那樣,直接寫字符串名字,改用枚舉或者常量定義.每個extension name和command name都只有一個字節,在枚舉中也可以定義出128個,完全夠用.

 

    這樣可以省不少帶寬占用量,可以在client上開啟debug message開關,看一下一個簡單的消息發送會占多少字節.

 

 

    如果想同時在eclipse和netbeans下對一個項目進行開發,注意文件編碼的問題.eclipse下創建的文件默認編碼為gbk,netbeans下創建的文件默認為utf-8,而在eclipse下導入文件時他並不會自動檢測文件的編碼,所以,你需要在文件的屬性裡手動設置一下編碼方式.另外,netbeans下要在文件中顯示中文字符只能使用utf-8,使用gbk會出亂碼,如果出現此類錯誤,修改一下文件編碼方式以及指定新的編碼即可.

 

 

    要關於利用IDE編譯環境.在項目最開始的一周裡,我使用trace來進行調試,一次次的通過trace打印出中間變量,然後再修改代碼,再啟動服務器,再看trace信息……在我快要陷入崩潰絕望之時,終於,決定建一個好用的集成調試環境.在嘗試eclipse失敗後,我成功的在netbeans中打下了斷點,單kh步跟蹤,於是,整個世界變得清靜多了……

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved