安裝GamingAnywhere
一.GamingAnywhere項目
GamingAnywhere是一個開源的實現雲游戲的引擎,並且高效、跨平台、易擴展、可調配。
GitHub地址:https://github.com/chunying/gaminganywhere
GamingAnywhere官網:http://www.gaminganywhere.org
下圖是GamingAnywhere(雲游戲)的大致流程描述:
a.客戶端(Client/Users):登錄客戶端,在提供UI界面選擇游戲。並且在成功連上游戲后,與游戲服務器交互時傳遞控制信息命令,並對傳回來的視頻流進行編碼;
b.端口服務器(Portal Server):類似於負載均衡服務器,根據服務器狀況對請求接入的用戶進行端口轉發,動態平衡游戲服務器的負載;
c.游戲服務器(Game Server):根據端口服務器轉發過來的連接,虛擬化游戲進程,將運行游戲的視頻編碼后傳輸給客戶端。
二.GamingAnywhere的搭建
1.准備工作
材料:VMware Workstation虛擬機軟件,GamingAnywhere源代碼(gaminganywhere-master.zip格式),64位Ubuntu LInux 16.04的ISO鏡像文件
根據以上材料安裝完虛擬機,並裝入一個Ubuntu64位系統,
推薦設置:硬盤20G;內存:1G;網絡:橋接,並在開機裝入VMTools以上均有大量教程,不在細講。(PS:我新建的用戶名為:gdy)
將下載好的GamingAnywhere源代碼存放至/home/test/downloads文件夾下,並使用unzip命令進行解壓縮
unzip gaminganywhere-master.zip
解壓縮后,進入目錄並使用ls命令,目錄結構如圖所示:
2.搭建GamingAnywhere
安裝GamingAnywhere編譯所需要的依賴項
a.更新軟件源
sudo apt-get update
b.安裝依賴項(再次提示,適用於Ubuntu64位)
sudo apt-get install -y patch make cmake g++ pkg-config libx11-dev libxext-dev libxtst-dev libfreetype6-dev libgl1-mesa-dev libglu1-mesa-dev libpulse-dev libasound2-dev lib32z1
c.編輯~/gaminanywhere-master/env-setup文件
vi env-setup
修改其中的GADEPS變量值如下紅色標注,你可根據你的具體解壓縮情況修改,我是直接解壓到在/home/test/gaminganywhere-master/目錄,所以修改后的結果如下(修改地方已用紅色標出):
1 #!/bin/sh 2 export GADEPS=/home/test/gaminganywhere-master/deps.posix 3 export PKG_CONFIG_PATH=$GADEPS/lib/pkgconfig:/opt/local/lib/pkgconfig:/usr/lib/i386-linux-gnu/pkgconfig/:/usr/lib/pkgconfig 4 export PATH=$GADEPS/bin:$PATH
編輯完成后,在當前目錄運行是的編輯的變量立即生效
source env-setup
d.進入~/gaminganywhere-master/deps.src並執行make命令
1 cd ./deps.src 2 sudo make
最終make結束后應該是沒有任何錯誤的,效果如下圖,上述步驟有遺漏編譯時間長達8分鍾左右,如果少很多,還有make error,那說明編譯失敗,請查看是不是之前步驟的遺漏。
e.make完成后進入ga目錄並依次執行如下命令:
1 cd ../ga 2 make all 3 make install
運行完make all和make install后也不會有什么make error,出錯同上。
f.退出到gaminganywhere-master目錄,查看文件夾中應該多出了./bin目錄,進去查看一下:
1 cd ../bin 2 ls
列出的已經編譯完成的二進制文件如下:
其中可執行文件:
ga-client:用於執行雲游戲的客戶端命令工具;ga-server-periodic是運行雲游戲的服務端工具,用於開啟P(周期錄屏的方式運行雲游戲服務端)。
g.將gaminanywhere包含的動態依賴庫文件裝載入系統變量
編輯文件gaminganywhere.conf:
vi /etc/ld.so.conf.d/gaminganywhere.conf
文本中的內容為:
/home/test/gaminganywhere-master/deps.posix/lib
編輯完成就:wq保存退出,查看一下剛才的目錄:
ls /etc/ld.so.conf.d/
目錄如下:
完成之后一定要在運行ldconfig使得該目錄下的庫重新被導入系統變量:
ldconfig
至此,雲游戲服務端已經搭建完畢。
3.准備雲游戲客戶端(Windows或Android)
雲游戲的客戶端可直接使用官方已經提供好的預編譯的二進制版本,下載到本地直接就可以啟動,如還是希望自己編譯,可參考官方文檔,可查看如何編譯Windows下的雲游戲:
3.1 Windows雲游戲客戶端
下載地址:http://www.gaminganywhere.org/dl/gaminganywhere-0.8.0-bin.win32.zip
下載完成解壓縮到你的目錄,我以解壓到F盤為例,解壓路徑最終為F:\gaminganywhere-0.8.0。
3.2 Android雲游戲客戶端
下載地址:http://www.gaminganywhere.org/dl/android/GAClient-v22-20150228.apk
下載完成后,直接通過數據線導入手機安裝手機端。
三.准備一款Linux游戲
我以Ubuntu的一款類似MineCraft的沙盒游戲MineTest為例,作為要啟動的雲游戲。
MineTest下載方式不做重點介紹,具體的下載安裝游戲的介紹鏈接地址如下:http://www.linuxidc.com/Linux/2016-07/133102.htm
安裝命令就兩條:
1 sudo add-apt-repository ppa:minetestdevs/stable 2 sudo apt-get install minetest
成功安裝后應該可以直接通過Terminal運行后minetest直接啟動游戲。
游戲畫面如圖:
四.啟動雲游戲
1.第一步,啟動游戲
在Linux中新建終端Terminal,輸入命令minetest運行游戲,此時游戲MineTest已啟動,命令:
minetest
切記!啟動之后不要關閉游戲窗口
2.第二步,編輯配置文件,開啟GamingAnywhere服務端
在GamingAnywhere的路徑中,有一個文件夾:~/gaminganywhere-master/bin/conf/,這個文件夾針對每一款雲游戲進行了一定的配置,其目錄如下:
每次服務端啟動都會讀取雲游戲的參數,其中一項就是其配置文件,其配置文件具有一定的規則,主要讓服務端用於獲取參數使用,例如本案例中,為minetest游戲創建一個獨立的配置文件。
我為配置文件命名為server.minetest.linux.conf,並在里面添加內容,首先編輯文件:
vi server.minetest.linux.conf
並在其中添加內容如下:
# configuration for the openttd game # work with ga-server-periodic [core] include = common/server-common.conf include = common/controller.conf include = common/video-x264.conf include = common/video-x264-param.conf include = common/audio-lame.conf [ga-server-periodic] display = :0 find-window-name = Minetest [Main Menu] enable-audio = true
編輯完成后:wq保存,隨后進入bin目錄:
cd /home/test/gaminganywhere-master/bin
運行雲游戲服務端:
命令格式如下:ga-server-periodic {config}
例如:ga-server config/server.x264+mp3.conf
則本例中啟動雲游戲的命令為:
./ga-server-periodic config/server.minetest.linux.conf
將成功運行雲游戲服務端,雲游戲的Server端Terminal將不斷刷新如下圖:
3.第三步,開啟客戶端連接(以Windows客戶端為例)
在Windows記住剛才解壓的二進制版GamingAnywhere的路徑,我的是:F:\gaminganywhere-0.8.0\
Windows + R鍵打開cmd,輸入如下,進入GamingAnywhere客戶端目錄:
f: cd ./gaminanywhere-0.8.0/bin
由於需要使用Server端的IP地址作為啟動客戶端的參數,因此在Ubuntu中輸入ifconfig,查看IP地址,如果是橋接模式,所以選擇一個和宿主機在同一局域網能PING通的都可以:
ifconfig
顯示如圖:
我的服務器端的IP地址為:192.168.1.164
我用客戶端進行了PING測試,發現PING通無誤:
打開雲游戲客戶端連接:
命令格式如下:ga-client {config} rtsp://server-address:server-port/desktop
例如:ga-client config/client.rel.conf rtsp://192.168.1.1:8554/desktop
最后一步,開啟客戶端雲游戲連接,cmd在剛才的目錄中繼續輸入如下指令:
ga-client.exe config\client.abs.conf rtsp://192.168.1.164:8554/desktop
成功連接上雲游戲:
在客戶端中隨即連接上了服務器端的雲游戲:
同樣的,在配置好安卓客戶端后,在配置文件中進行設置,也可直接同時連接上雲游戲:
在安卓中設置好配置文件:
選擇操控板方式,然后點擊Connect連接雲游戲,同樣可以在手機上以視頻流的方式運行雲游戲:
五.小結
以上就是雲游戲的客戶端以及服務端的安裝以及展示,有問題歡迎留言評論探討!