kbengine mmo源碼(完整服務端源碼+資源+完整用戶端源碼),kbenginemmo
本項目作為kbengine服務端引擎的用戶端示範而寫 更新kbengine外掛程式庫(https://github.com/kbengine/kbengine_unity3d_plugins): * 使用git命令列,進入到kbengine_unity3d_warring目錄執行: git submodule update --init * 或者使用 TortoiseGit(選擇菜單): TortoiseGit -> Submodule Update: * 也可以手動更新kbengine外掛程式 git clone https://github.com/kbengine/kbengine_unity3d_plugins.git 外掛程式源碼請放置在: Assets/plugins/kbengine/kbengine_unity3d_plugins建立AssetBundles unity3d(菜單上)->Publish->Build Pulish AssetBundles - autoAll 期間可能一直出現"Moving file failed", 需要點擊"try again"讓其繼續, 這可能是unity3d在移動檔案時檔案被佔用造成的。 執行完畢後檢查 Assets->StreamingAssets是否有內容。產生服務端尋路資料: 先將Assets\Plugins\cai-nmgen-rcn(generate navmesh).zip解壓放目前的目錄下並重啟unity3d編輯器, 然後執行如下步驟: unity3d資源總管中選中(非菜單): Assets->Nav_build->xinshoucun->NavmeshBuild->Build & Bake, 等待產生完成之後 unity3d資源總管中選中(非菜單): Assets->Nav_build->xinshoucun->CAIBakedNavmesh->Save, 將其中srv_xxx.navmesh放到服務端kbengine\demo\res\spaces\xinshoucun中 (注意: 產生完畢後建議刪除cai-nmgen-rcn(generate navmesh).zip解壓出來的檔案,會造成無法匯出遊戲的錯誤,原因未知。)配置登入IP地址(如果服務端在本機則無需改變): kbengine_unity3d_warring\Assets\Plugins\kbengine\clientapp.cs -> ip測試是否可運行: 先開啟服務端,unity3d中選擇Assets\scenes\go情境然後點擊編輯器運行按鈕,如果無意外應該可以登入遊戲進入到情境中了。匯出WebPlayer項目:unity3d File->Build Settings->Scenes In Build選擇scenes/go.unity->Platform選擇Web Player->Build。 在瀏覽器運行遊戲:Web伺服器部署檔案夾結構: ->(伺服器根目錄) - StreamingAssets (建立AssetBundles產生的檔案夾) - ui (Assets下的ui檔案夾可以直接拷貝過來) - crossdomain.xml - initLogo.png - initProgressBar.PNG - initProgressFrame.PNG - index.html - Unity3d.unity3d (在unity3d編譯時間產生的檔案) - Unity3d.html (在unity3d編譯時間產生的檔案)1. 啟動kbengine服務端http://www.kbengine.org/docs/installation.html2. 瀏覽器訪問localhost如不清楚請下載編譯打包好的demo,並按照其中的檔案夾結構放置並看壓縮包內文檔教程如何啟動:https://sourceforge.net/projects/kbengine/files/日誌:Windows XP: C:\Documents and Settings\username\Local Settings\Temp\UnityWebPlayer\logWindows Vista/7: C:\Users\username\AppData\Local\Temp\UnityWebPlayer\log <ignore_js_op><ignore_js_op> <ignore_js_op> <ignore_js_op> <ignore_js_op> <ignore_js_op> <ignore_js_op> |
詳細說明:http://ios.662p.com/thread-2070-1-1.html
linux下ftp用戶端源碼
sudo apt-get source $packagename
$packagename 換成ftp用戶端名字,如lftp,我猜lftp是最簡單的。
其他常見的有
kftpgrabber
KDE下ftp用戶端,支援編碼選擇。對中文支援較好
gftp
gnome下ftp用戶端,目前對中文支援尚不太好,受抱怨頗多。
fireftp
firefox的ftp用戶端外掛程式,新版對中文支援較好。
FileZilla
對中文支援較好
CrossFTP
基於Java的穩定ftp用戶端和同步工具。優良的中文/Unicode支援。
參考資料:wiki.ubuntu.org.cn/Lftp
誰有天龍八部的源碼與全部模型資源,發我郵箱233276973@qqcom一份,目的只是學習研究不做它用,好的再加200
天龍八部的源碼很可能是天龍八部代碼流出後改寫的,因為在看了代碼中可以找到一些證據,整個用戶端分為:一個是編輯器,一個是用戶端,採用OGRE+cegui+自寫的簡單的物理碰撞檢測+FMOD+自寫的網路程式庫。
伺服器端代碼目前沒仔細關注
用戶端總體的描述如下:
UI系統 CEGUI UI基礎系統
CEGUI渲染器
Expat XML解析器 CEGUI依賴,估計編寫者不喜歡用
FreeType2 跨平台、開源的字型渲染器 用於繪製中文
指令碼 luaPlus
3D顯示引擎Ogre開源的高效渲染引擎 最新的OGRE是1.7.2
碰撞檢測 Opcode 開源,佔用記憶體少 其他可考慮使用bullet,ODE或者其他(一般根據實際需求選擇)
天龍的碰撞檢測似乎是只做了簡單的碰撞盒檢測
TinyXML XML的解析工具 遊戲中使用的XML解析器,其實目前可以用RapidXML更加小巧
Music&Sound Effect FMOD SDK即可 ,其實OPENAL也是不錯的選擇。
WX系統
WXClient Action操作管理 包括聊天,物品,生活技能等 暫時看到,所有實際上都是針對表徵圖的操作
Cursor 滑鼠指標管理(還掛接了很多命令)
DataBase 用戶端用記憶體資料庫,實現了了WXEngine中的DB定義 包括搜尋,獲得,開啟檔案功能TLBB_DBC,可以證實雖然叫武俠,但是留下了天龍的影子
DataPool 將遊戲中資料都統一管理,包括UI,TeamOrGroup等 這裡面有個CModelShowInUI的類,(奇怪,這個類不應該放在這裡吧?)
Event 遊戲事件處理器,分為Event隊列,和慢處理Event隊列 很值得參考的部分!!!使用了註冊Event處理函數的方式,參數很靈活!
FakeObject 用於在ui上顯示的物體(這裡作為一個管理器類)
Helper 用luaPlus匯出,另外建一個協助系統視窗
Input 輸入類
Interface 整個遊戲的外部介面控制類,所有外部模組需要通過這個介面來控制遊戲的資料和控制,作為指令碼調用類型
NetWork 網路訊息的處理
Object 邏輯基類Object與顯示無關,當然派生出可以顯示的類型!以及遊戲中具體物件類型
Procedure 遊戲流程,登陸,角色選擇,角色建立,進入情境等待,MMO遊戲主流程,登陸伺服器
ResourceFiles 各種滑鼠.cur檔案
Script 指令碼系統管理器,繼承於Engine的ScriptEnvironment,呼叫指令碼
Sound
Soure File _tWinMain在這裡 2
Variable 配置參數系統
World 情境地區Zone,Scene,World管理器,尋路等等功能,一個ZONE的大小正好是一個螢幕的大小,ZONE構成Scene
WXCore
Collision 碰撞檢測,主要包裹了ogre的骨骼模型處理方法
EffectSystem 特效系統
Extra附加 ModelType 模型定義
SkeletonMesh (懷疑被廢棄)Dobject_NT包裹了Ogre::Entity,可掛接相關特效,SceneNode上
SkeletonMeshUrl 作為儲存格式,儲存Dobject_NT
LogicModel 渲染層和用戶端的結合層,利用渲染層,實現用戶端對情境中動態物體的需求,而不需調用渲染層代碼
OgreExt 對於Ogre的擴充,渲染
PostFilters 3D畫面效果,後期過濾器
ResourceSystem......餘下全文>>