Redian新闻
>
Ambient:Rust编写的高性能多人游戏引擎

Ambient:Rust编写的高性能多人游戏引擎

公众号新闻

出品 | OSC开源社区(ID:oschina2013)

经过一年多的开发,Ambient 终于发布了 0.1 版本,这是一款采用 Rust 编写的开源多人游戏引擎。
据介绍,Ambient 是一个用于构建高性能多人游戏和 3D 应用程序的 runtime,使用了 WebAssembly 和 WebGPU 技术,与任何编译为 WebAssembly 或在 WebAssembly 上运行的语言兼容,旨在使构建和部署丰富的多人游戏世界和体验变得容易。其开发团队表示,通过 Ambient,他们希望构建多人游戏与构建单人游戏一样简单。
特性
  • Seamless networking:Ambient 既用作服务器,同时也是客户端。开发者只需构建服务器和客户端逻辑,Ambient 可自动处理数据同步。

  • 独立沙盒:开发者为 Ambient 构建的项目通过 WebAssembly 的隔离功能执行。因此如果出现崩溃,它不会破坏整个程序,这也意味着可以安全地运行不受信任的代码。

  • 面向数据的设计:Ambient 的核心数据模型是每个 WASM 模块都可以操作的实体组件系统。

  • 多语言:开发者能够使用任何可以编译为 WebAssembly 的语言构建 Ambient 模块(目前,Rust 是唯一受支持的语言,团队正在努力扩展到其他语言)

  • 单一可执行文件:Ambient 是一个单一的可执行文件,可以在 Windows、Mac 和 Linux 上运行。它可以充当服务器或客户端。

  • 互操作性:Ambient 允许定义自定义组件和 "concepts"(组件集合)。只要 Ambient 项目使用相同的组件和 "concepts",它们就能够共享数据和互操作。

  • Asset 管道和流处理:Ambient 包含 Asset 管道,支持编译多种 asset 格式,包括.glb .fbx。asset 通过网络流式传输,因此客户端在加入时能够接收所需的一切数据。

  • 强大的渲染器:Ambient 渲染器由 GPU 驱动,裁剪 (Culling) 和细节级别切换完全由 GPU 处理。默认情况下,它使用 PBR,此外还支持级联阴影贴图和实例化所有可以实例化的东西。

示例
首先安装 Ambient,然后创建一个新的 Ambient 项目:
ambient new
接着打开 _src/lib.rs_,将以下内容添加到 main 函数中,让 IDE 自动导入:
spawn_query(player()).bind(move |players| {
for _ in players {
Entity::new()
.with_merge(make_transformable())
.with_default(cube())
.with(translation(), rand::random())
.with(color(), rand::random())
.spawn();
}
});
这将为每个加入的玩家生成一个随机立方体(完整示例点此查看https://github.com/AmbientRun/Ambient/blob/main/guest/rust/examples/multiplayer/src/lib.rs)。开始启动:
ambient run

运行上述命令后会看到如下画面:

现在打开一个新的终端窗口,然后输入:

ambient join
这时会看到两个框,也就意味已经成功使用 Ambient 构建了第一个多人游戏体验。

Ambient 开发团队成员曾经打造过 3A 级游戏,并介绍了创建该项目的初衷 —— 他们发现许多游戏引擎都针对构建单人游戏进行了优化,但很少有旨在简化多人游戏的游戏引擎。于是他们很好奇:如果要让多人游戏能像单人游戏一样容易使用,该如何构建?当开发者从网络的细节中解放出来时,可以想象怎样的非凡体验 —— 新的和有趣的互动?
Ambient 便是他们回答这些问题的开始:一个旨在让各种开发者能够构建和分享他们想要构建的体验的运行时。然而,这里的问题不仅仅在于做好客户端 - 服务器通信。它还包括多人游戏开发中出现的所有其他挑战:服务器资源、分发游戏、可持续地以服务形式运行游戏、与用户交互等等。运行时只是他们朝着这个方向迈出的第一步,接下来还要解决许多其他问题。
Ambient 采用了 MIT License,其团队表示,这是因为他们的目标是建立一个标准来让大家构建多人游戏。作为一家公司,他们的计划是为将采取 “货币化” 的运行时提供增值服务(包括服务器和资产托管),但运行时本身永远免费和开源。作为运行时的用户,他们可以选择使用 Ambient 团队提供的部分服务,以及选择自己实现其他服务。
未来,开发团队表示 Ambient 将会支持部署到 Web,支持更多可编译成 WebAssembly 的语言(目前只有 Rust),并提供协作编辑器。
说到开源游戏引擎,Godot 作为 “前辈”,其开发团队在 4.0 推出之际思考了一个问题:它们与主流商业产品相比有多大差距虽然 Godot 是免费的开源软件,任何人都可以对其进行修改以实现自己的需求,并且许多大型工作室都有能力创建自己的内部技术。但即便如此,随着硬件的开发变得越来越复杂,他们还是放弃了,转而花钱购买现有的商业技术产品。
相关链接:https://www.ambient.run/post/introducing-ambient

往期推荐



开源的文件传输工具,简单好用

用Edge下载Chrome?微软“拉横幅”回应:达咩!

马斯克又来炒作开源,称下周开源推特算法



这里有最新开源资讯、软件更新、技术干货等内容

点这里 ↓↓↓ 记得 关注✔ 标星⭐ 哦

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
AirBnb 开源动画引擎 Lottie:采用 Core Animation 提高性能AMD:R9 7945HX 游戏性能超 i9-13950HX 10%停运老游戏引韩国玩家抗议,《跑跑卡丁车》跨平台新游登顶免费榜在线研讨会预告:针对向量计算开发的高性能数据库和云原生开源数据编排技术字节跳动开源 Shmipc:基于共享内存的高性能 IPC俄罗斯政府官宣自研开源跨平台游戏引擎!投资近1亿、VK负责开发宫崎英高谈创作:看好多人游戏,老头环的成功不会影响创作聊一款拥有“薯条标”的高性能轻薄本Manticore Search 6正式发布,C++高性能搜索引擎叫板ChatGPT?Stability AI 开源语言大模型 StableLM,参数仅为GPT-3百分之四,却能实现超高性能贴吧低代码高性能规则引擎设计Meta开源Rust编写的高性能构建系统Rust 基础系列 #1: 创建并运行你的首个 Rust 程序 | Linux 中国Rust 语言年度回顾:全球企业如何采用 Rust的?从同人游戏到独立游戏,日本独游发展到底怎么样?写给我刚刚离去的表弟美丽日本:城堡与寺庙俄罗斯官方披露自研3D游戏引擎路线图!2025年面世,支持主机平台猜猜医学院录取是怎么工作的C++ 之父:Rust等内存安全语言的安全性并不优于C++Ruby引入新JIT编译器RJIT,替代MJITWPP收购北美数字机构Fēnom Digital;凯捷旗下The Works公司公布新任命(广告狂人日报)俄罗斯自研8核CPU性能实测:能玩几十年前老游戏,下一代「高性能」芯片无人代工我们如何庆祝圣诞节面向大模型训练,腾讯发布高性能计算集群:整体性能提升3倍Meilisearch 1.0稳定版发布,Rust高性能开源搜索引擎前瞻:Flutter 编写的全新 Ubuntu 安装程序ChatGPT编写胡鑫宇新闻,结果出人意料Vite 4.3正式发布,性能提升,为应对Rust写的Turbopack?8点1氪:微软将把所有暴雪游戏引入英伟达平台;爱奇艺首次实现全年运营盈利;​客服回应沪上阿姨外包装旗袍图被质疑不雅天赋“易昺(bǐng)”,创造历史!采用 Rust 语言编写,System76 公布 COSMIC 桌面环境开发近况新西兰风景以调试 Rust 的方式来学习 Rust | Linux 中国聊一款全新上市的高性能轻薄本
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。