Build GA

GA是一个开源的实现云游戏的引擎,并且高效、跨平台、易扩展、可调配,官网 → https://gaminganywhere.org/

打算用电脑 WSL 上的 Ubuntu 作服务器,Android 平板当客户端

源码: https://github.com/chunying/gaminganywhere

  1. 首先要编辑一下 env-setup 文件,修改其中的 GADEPS 变量值,比如我就修改为工程目录:
    #!/bin/sh
    export GADEPS=/home/donny/Desktop/gaminganywhere/deps.posix
    export PKG_CONFIG_PATH=$GADEPS/lib/pkgconfig:/opt/local/lib/pkgconfig:/usr/lib/i386-linux-gnu/pkgconfig/:/usr/lib/pkgconfig
    export PATH=$GADEPS/bin:$PATH
  2. 记得 source env-setup 一下
  3. 进入deps.src目录 make 一下,发现报错:ERROR: x265 not found using pkg-config

    看一下日志文件 config.log, 发现有提示我们需要将编译 x265 生成的 x265.pc 所在的文件夹配置成环境变量:

    export PKG_CONFIG_PATH=/home/donny/Desktop/gaminganywhere/deps.posix/lib/pkgconfig

    或者还有人说执行:

    sudo apt-get install libx265-dev
  4. 重新编译仍有报错:error: ‘x264_bit_depth’ undeclared

    看 github 也有人提出了这个 issue,问题原因是新版本的 x264 中把这一变量换成了大写😂

    解决方法:

    1. Replace "x264_bit_depth" with "X264_BIT_DEPTH" in your ffmpeg-2.8.8/libx264.c file.
    2. Then retar the ffmpeg package with command: tar -cjf ffmpeg-2.8.8.tar.bz2 ffmpeg-2.8.8
    3. make
  5. But 还有报错:fatal error: xlocale.h: No such file or directory

    新版本 Ubuntu 不支持 xlocale.h

    软链接一下即可:

    ln -s /usr/include/locale.h /usr/include/xlocale.h
  6. 终于 make 成功!
  7. 去 /ga 目录继续编译:
    cd ../ga
    make all
    make install
  8. 编译完记得在新建一个 /etc/ld.so.conf.d/gaminganywhere.conf文件,将 deps.posix 库的路径添加进去,再执行 ldconfig 链接。这是比较方便的方法,也可以修改 /etc/profile 添加系统路径
  9. 报错:fatal error: liveMedia.hh: No such file or directory

    其实很简单,前面 GADEPS 变量的修改在 ga 的 Makefile 里也要改,不然找不到依赖啊

  10. 为了运行游戏,我找了一个开源游戏 Minetest,安装过程如下:
    sudo add-apt-repository ppa:minetestdevs/stable
    sudo apt-get update
    sudo apt-get install minetest
  11. 写一个配置文件 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 5.7.0 [Main Menu]
    
    enable-audio = true
  12. 进入 bin 目录,启动服务器:

    ./ga-server-periodic ../ga/config/server.minetest.linux.conf