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

相关文章

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.

Pytorch介绍与安装过程

《Pytorch介绍与安装过程》PyTorch因其直观的设计、卓越的灵活性以及强大的动态计算图功能,迅速在学术界和工业界获得了广泛认可,成为当前深度学习研究和开发的主流工具之一,本文给大家介绍Pyto... 目录1、Pytorch介绍1.1、核心理念1.2、核心组件与功能1.3、适用场景与优势总结1.4、优

Java实现本地缓存的常用方案介绍

《Java实现本地缓存的常用方案介绍》本地缓存的代表技术主要有HashMap,GuavaCache,Caffeine和Encahche,这篇文章主要来和大家聊聊java利用这些技术分别实现本地缓存的方... 目录本地缓存实现方式HashMapConcurrentHashMapGuava CacheCaffe

Spring Security介绍及配置实现代码

《SpringSecurity介绍及配置实现代码》SpringSecurity是一个功能强大的Java安全框架,它提供了全面的安全认证(Authentication)和授权(Authorizatio... 目录简介Spring Security配置配置实现代码简介Spring Security是一个功能强

JSR-107缓存规范介绍

《JSR-107缓存规范介绍》JSR是JavaSpecificationRequests的缩写,意思是Java规范提案,下面给大家介绍JSR-107缓存规范的相关知识,感兴趣的朋友一起看看吧... 目录1.什么是jsR-1072.应用调用缓存图示3.JSR-107规范使用4.Spring 缓存机制缓存是每一