game-anywhere介绍

2024-01-06 21:10
文章标签 介绍 game anywhere

本文主要是介绍game-anywhere介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Game-anywhere介绍

文章目录

  • Game-anywhere介绍
    • 环境配置
    • 遇到问题
    • 部署方案
      • 设计理念

GamingAnywhere是一个开源的云计算游戏平台。

github下载地址

环境配置

  1. 编辑env-setup脚本文件,将里面的GADEPS指向自己项目的绝对目录
#!/bin/sh
GA_OS=`uname -s`
# export GADEPS=$HOME/myprog/gaminganywhere/deps.posix
export GADEPS=/home/zhongsy/Downloads/Game/gaminganywhere/deps.posix
case $GA_OS in
MSYS*)export PKG_CONFIG_PATH=/mingw64/lib/pkgconfig;;
*)export PKG_CONFIG_PATH=$GADEPS/lib/pkgconfig:/opt/local/lib/pkgconfig:/usr/lib/i386-linux-gnu/pkgconfig/:/usr/lib/pkgconfig;;
esac
export PATH=$GADEPS/bin:$PATH
  1. 通过make读取makefile进行源代码的编译
  2. 首先在deps.src的目录下使用make命令,接着在ga目录下运行make all 接着运行make install。具体的内容可以看一下makefile文件里写的是啥
  3. 这时候在项目主目录下的bin文件夹下,就有编译好的可执行文件
  4. 测试,首先安装一款Linux的游戏
sudo add-apt-repository ppa:minetestdevs/stable
sudo apt-get install minetest
  1. 编辑云游戏启动配置文件,在bin下面的config文件夹下面创建一个单独的配置文件service.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
  1. 启动云游戏

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

  2. 下载客户端链接即可进行云游戏

遇到问题

encoder-video.cpp:186:30: error: ‘to_string’ is not a member of ‘std’(*rtspconf->vso)[i+1] = std::to_string(reconf->crf)

解决方法:

Makefile.common文件下,加上-stc++11

.cpp.o:$(CXX) -std=c++11 -c -g $(CFLAGS) $<.m.o:$(CXX) -std=c++11 -c -g $(CFLAGS) $<

具体的Makefile文件的解释请参考 link

部署方案

GamingAnywhere的部署场景如图1所示 .

用户首先通过门户服务器登录系统,门户服务器向用户提供可用游戏列表。用户然后选择喜欢的游戏并请求玩游戏。

门户服务器收到请求后,查找可用的游戏服务器,在服务器上启动所选游戏,并将游戏服务器的URL返回给用户。

最后,用户连接到游戏服务器并开始玩游戏。

门户服务器没有太多可讨论的内容,它就像大多数基于 Web 的服务一样,仅提供简单的登录和游戏选择用户界面。如果从自定义客户端发送登录和游戏选择请求,则它甚至不需要用户界面。操作可以通过标准 HTTP 或 HTTPS 协议作为类似 REST 的请求发送。

设计理念

GamingAnywhere 旨在为研究人员提供一个开放平台,以开发和研究云中的实时多媒体流应用程序。GamingAnywhere 的设计目标包括:

  1. 可扩展性:GamingAnywhere 采用模块化设计。音频和视频捕获等平台相关组件和编解码器和网络协议等平台独立组件都可以轻松修改或替换。开发人员应该能够遵循 GamingAnywhere 中模块的编程接口来扩展系统的功能。它不仅限于游戏,任何实时多媒体流应用,例如直播,都可以使用相同的系统架构来完成。

  2. 便携性

    :除了台式机,随着无线网络越来越流行,移动设备现在正成为云服务最有潜力的客户之一。为此,我们在设计和实施 GamingAnywhere 时保持可移植性原则。目前服务器支持 Windows 和 Linux,而客户端支持 Windows、Linux 和 OS X。通过替换 GamingAnywhere 中与平台相关的组件,可以轻松包含新平台。除了易于更换的模块外,GamingAnywhere 使用的外部组件也非常便携。这也使得 GamingAnywhere 更容易移植到移动设备上。

  3. 可配置性

    :系统研究人员可以对具有不同系统参数的实时多媒体流应用进行实验。GamingAnywhere 支持大量内置的音频和视频编解码器。此外,GamingAnywhere 将所有可用配置导出给用户,以便通过简单地编辑基于文本的配置文件并将系统适配到定制的使用场景中来尝试最佳参数组合。

  4. 开放性: GamingAnywhere 在本网站上公开可用。在学术研究中使用 GamingAnywhere 是免费的,但研究人员和开发人员应遵守二进制和源代码包中声明的许可条款。

这篇关于game-anywhere介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/577620

相关文章

Springboot项目构建时各种依赖详细介绍与依赖关系说明详解

《Springboot项目构建时各种依赖详细介绍与依赖关系说明详解》SpringBoot通过spring-boot-dependencies统一依赖版本管理,spring-boot-starter-w... 目录一、spring-boot-dependencies1.简介2. 内容概览3.核心内容结构4.

setsid 命令工作原理和使用案例介绍

《setsid命令工作原理和使用案例介绍》setsid命令在Linux中创建独立会话,使进程脱离终端运行,适用于守护进程和后台任务,通过重定向输出和确保权限,可有效管理长时间运行的进程,本文给大家介... 目录setsid 命令介绍和使用案例基本介绍基本语法主要特点命令参数使用案例1. 在后台运行命令2.

MySQL常用字符串函数示例和场景介绍

《MySQL常用字符串函数示例和场景介绍》MySQL提供了丰富的字符串函数帮助我们高效地对字符串进行处理、转换和分析,本文我将全面且深入地介绍MySQL常用的字符串函数,并结合具体示例和场景,帮你熟练... 目录一、字符串函数概述1.1 字符串函数的作用1.2 字符串函数分类二、字符串长度与统计函数2.1

zookeeper端口说明及介绍

《zookeeper端口说明及介绍》:本文主要介绍zookeeper端口说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、zookeeper有三个端口(可以修改)aVNMqvZ二、3个端口的作用三、部署时注意总China编程结一、zookeeper有三个端口(可以

Python中win32包的安装及常见用途介绍

《Python中win32包的安装及常见用途介绍》在Windows环境下,PythonWin32模块通常随Python安装包一起安装,:本文主要介绍Python中win32包的安装及常见用途的相关... 目录前言主要组件安装方法常见用途1. 操作Windows注册表2. 操作Windows服务3. 窗口操作

c++中的set容器介绍及操作大全

《c++中的set容器介绍及操作大全》:本文主要介绍c++中的set容器介绍及操作大全,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录​​一、核心特性​​️ ​​二、基本操作​​​​1. 初始化与赋值​​​​2. 增删查操作​​​​3. 遍历方

HTML img标签和超链接标签详细介绍

《HTMLimg标签和超链接标签详细介绍》:本文主要介绍了HTML中img标签的使用,包括src属性(指定图片路径)、相对/绝对路径区别、alt替代文本、title提示、宽高控制及边框设置等,详细内容请阅读本文,希望能对你有所帮助... 目录img 标签src 属性alt 属性title 属性width/h

MybatisPlus service接口功能介绍

《MybatisPlusservice接口功能介绍》:本文主要介绍MybatisPlusservice接口功能介绍,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友... 目录Service接口基本用法进阶用法总结:Lambda方法Service接口基本用法MyBATisP

MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)

《MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)》掌握多表联查(INNERJOIN,LEFTJOIN,RIGHTJOIN,FULLJOIN)和子查询(标量、列、行、表子查询、相关/非相关、... 目录第一部分:多表联查 (JOIN Operations)1. 连接的类型 (JOIN Types)

java中BigDecimal里面的subtract函数介绍及实现方法

《java中BigDecimal里面的subtract函数介绍及实现方法》在Java中实现减法操作需要根据数据类型选择不同方法,主要分为数值型减法和字符串减法两种场景,本文给大家介绍java中BigD... 目录Java中BigDecimal里面的subtract函数的意思?一、数值型减法(高精度计算)1.