雲游戲學習與實踐(二)——安裝GamingAnywhere


安裝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連接雲游戲,同樣可以在手機上以視頻流的方式運行雲游戲:

五.小結

以上就是雲游戲的客戶端以及服務端的安裝以及展示,有問題歡迎留言評論探討!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM