发布于 2026-01-06 2 阅读
0

CloudRetro - 用 Go 语言编写的开源复古游戏云游戏服务 关于云游戏技术 功能演示 众包游戏 我是如何用 Golang 实现的 系列下一篇 作者 如果您喜欢这个项目,请给我点个赞或在 GitHub 上为 CloudRetro 做贡献

CloudRetro - 用 Go 语言编写的开源复古游戏云游戏服务

关于云游戏技术

特征

演示

人群游戏

我是如何用 Golang 实现的

系列下一部

作者

如果你喜欢这个项目,请给我点个或者在GitHub上贡献一份力量。

CloudRetro

2019 年是云游戏元年,谷歌 Stadia、微软 XCloud、PlayStation Now 等公司纷纷发布了云游戏服务……而谷歌 Stadia 也于 11 月 19 日正式上线。回想当初,当我第一次看到谷歌 Stadia 的消息时,真是激动不已。云游戏是一个极具创新性的概念,它必将成为下一代游戏乃至计算机科学其他领域的发展方向。正是出于对这项技术的好奇,我决定为复古游戏开发一个云游戏概念验证 (POC)。

GitHub 标志 giongto35 /云游戏

面向复古游戏的基于网络的云游戏服务

视频演示

关于云游戏技术

我们都知道,对于 Web 服务器而言,后端提供的信息越多,前端渲染就越灵活。云游戏通过在服务器上运行游戏并将图像/音频流传输给用户,最大限度地发挥后端控制力,并最大限度地减少前端逻辑。这样,客户端就完全摆脱了繁重的逻辑,不再受硬件限制。如果我们把同样的方法应用于其他大型离线应用程序,例如操作系统,就像在 Google Chrome 浏览器中运行 Microsoft Windows 一样。

云游戏背后是极低延迟流媒体技术的精髓,它能确保用户交互体验尽可能流畅。起初,我对谷歌的说法持怀疑态度,因为我不相信流媒体技术已经达到如此高度。因此,我启动了这个项目来验证这一说法,而结果远超我的预期。在这个项目中,我应用了WebRTC技术,并结合视频/音频压缩(VP8/OPUS)来优化数据包大小,同时构建了一个分布式架构,以实现横向扩展和最佳服务器配对,从而降低网络延迟。

我选择 Golang 作为我的概念验证工具,因为我对它最熟悉,结果证明它非常适合我的需求。Go 的并发设计在处理并发和事件流方面提供了极大的帮助。例如,我只需几行代码就能使用 Golang 的扇入扇出模式实现 CrowdPlay。

特征

云游戏:游戏逻辑和存储托管在云服务上。图像和音频以最佳方式流式传输给用户。
跨平台:游戏在网页浏览器上运行,这是最通用的内置应用程序。无需游戏主机、插件、外部应用程序或设备。建议使用最新版本的 Chrome 浏览器。
模拟器无关:无需额外设置游戏模拟器或平台,即可直接畅玩游戏。它基于Libretro 库Ludo
游戏。多人游戏:借鉴多人游戏(例如 TwitchPlaysPokemon)的理念,多个玩家可以通过访问同一个深度链接同时进行游戏。这是 Google Stadia 承诺在首个版本中未能实现的功能。
垂直扩展:基础设施设计为可通过添加更多实例来应对高流量。
云存储:游戏状态存储在云端,因此您可以随时返回并继续未完成的游戏。

演示

单人游戏http://cloudretro.io
多人游戏口袋妖怪绿宝石 快捷
键: 方向键 + H(帮助)+ ZXCV + S(保存)+ A(读取)+ F(全屏)​​推荐使用
Chrome浏览器,安卓版 Chrome浏览器可能不兼容。iPhone 和其他一些浏览器可能无法正常运行。在理想的网络环境下,游戏应该像视频中那样流畅运行。由于我只在美国东部、美国西部、欧洲和新加坡的有限服务器上托管了平台,您可能会遇到一些延迟和连接问题。您可以尝试按照 GitHub 上的说明自行托管服务。

人群游戏

点击这些深度链接,即可直接加入游戏,并与其他点击同一链接的人一起玩。

您可以通过访问cloudretro.io并点击“分享”按钮来生成指向您当前游戏的深度链接,从而自行托管新游戏。

免责声明:加入房间时可能会出现延迟,这是因为房间位于不同的区域。在这种情况下,您可以创建一个新房间。两名玩家正在一起玩《精灵宝可梦 绿宝石》)
替代文字

我是如何用 Golang 实现的

我在2019 年越南 GopherCon 大会上就此主题做了演讲,您可以在这里找到视频幻灯片。幻灯片中也包含我的演讲稿。幻灯片中的 GoCode 图
替代文字

请查看Github仓库和Wiki了解更多详情。

系列下一部

第一部分:我是如何设计云游戏服务的

作者

阮友清
志登明

如果你喜欢这个项目,请给我点个或者在GitHub上贡献一份力量。

GitHub 标志 giongto35 /云游戏

面向复古游戏的基于网络的云游戏服务

CloudRetro

建造 最新版本

开源复古游戏云游戏服务
视频演示https://www.youtube.com/watch?v
=GUBrJGAxZZg 技术总结https://webrtchacks.com/open-source-cloud-gaming-with-webrtc/
CloudMorphhttps://github.com/giongto35/cloud-morph:我目前专注于通用云游戏解决方案

Discord:加入我们

截屏

直接游玩现有游戏:口袋妖怪绿宝石

介绍

CloudRetro 提供了一个开源的复古游戏云游戏平台。它最初是利用WebRTCLibretro测试云游戏性能的实验项目,现在旨在通过这项技术提供最现代、最便捷的游戏体验。

理论上,云游戏是在远程服务器上运行游戏,并将媒体流以最佳方式传输给玩家,以确保最舒适的用户体验。它使得用户可以直接在网页浏览器上玩任何复古游戏,并且完全兼容桌面、安卓等多个平台。 iOS

在理想的网络条件下,服务器资源争用较少的情况下,游戏将像在……中一样流畅运行。

文章来源:https://dev.to/giongto35/i-write-a-cloud-gaming-service-for-retro-games-in-go-lkn