Ambient:Rust 编写的高性能多人游戏引擎
经过一年多的开发,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(); } });
这将为每个加入的玩家生成一个随机立方体(完整示例点此查看)。开始启动:
ambient run
运行上述命令后会看到如下画面:
现在打开一个新的终端窗口,然后输入:
ambient join
这时会看到两个框,也就意味已经成功使用 Ambient 构建了第一个多人游戏体验。
Ambient 开发团队介绍了创建项目的初衷,他们发现许多游戏引擎都针对构建单人游戏进行了优化,但很少有旨在简化多人游戏的游戏引擎。于是他们很好奇:如果要让多人游戏能像单人游戏一样容易使用,该如何构建?当开发者从网络的细节中解放出来时,可以想象怎样的非凡体验——新的和有趣的互动?
Ambient 便是他们回答这些问题的开始:一个旨在让各种开发者能够构建和分享他们想要构建的体验的运行时。然而,这里的问题不仅仅在于做好客户端-服务器通信。它还包括多人游戏开发中出现的所有其他挑战:服务器资源、分发游戏、可持续地以服务形式运行游戏、与用户交互等等。运行时只是他们朝着这个方向迈出的第一步,接下来还要解决许多其他问题。
Ambient 采用了 MIT License,其团队表示,这是因为他们的目标是建立一个标准来让大家构建多人游戏。作为一家公司,他们的计划是为将采取“货币化”的运行时提供增值服务(包括服务器和资产托管),但运行时本身永远免费和开源。作为运行时的用户,他们可以选择使用 Ambient 团队提供的部分服务,以及选择自己实现其他服务。
未来,开发团队表示 Ambient 将会支持部署到 Web,支持更多可编译成 WebAssembly 的语言(目前只有 Rust),并提供协作编辑器。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Apache Airflow Hive Provider Beeline 参数验证不当漏洞
漏洞描述 Apache Airflow 是一个以编程方式管理 workflow 的平台,Airflow Hive Provider 是一个使用 SQL 进行读取、写入和管理分布式存储中的大型数据集的工具包。 由于 Airflow Hive Provider 5.1.3 之前版本中的 hive#_prepare_cli_cmd 方法在创建命令列表时未对用户传入的数据库连接参数(conn)有效过滤,攻击者可构造包含恶意字符(如: :和;)的数据库连接参数(jdbc_url),将 Hive 连接到恶意的数据库地址。 漏洞名称 Apache Airflow Hive Provider Beeline 参数验证不当漏洞 漏洞类型 输入验证不恰当 发现时间 2023-02-24 漏洞影响广度 广 MPS编号 MPS-2023-4528 CVE编号 CVE-2023-25696 CNVD编号 - 影响范围 apache-airflow-providers-apache-hive@[1.0.0, 5.1.3) 修复方案 将组件 apache-airflow-providers-apache-hive ...
- 下一篇
Teradata在华落幕,国产化崛起,袋鼠云数栈会是更好的选择吗?
2月15日,数仓软件巨头Teradata宣布根据其对中国当前和未来商业环境的慎重评估,将逐步结束在中国的直接运营,后续进入中国公司的关闭程序。 一石激起千层浪,这一消息,在国内的To B市场引起了广泛关注。Teradata这家进入中国市场26年,为国内数仓发展带来重要启蒙,奠定数据服务人才基础,被业界称之为 “数仓人才黄埔军校”的数据软件巨头如今在华落幕,令人感叹。 近些年来,国产大数据基础建设百花齐放、发展蓬勃,中国软件企业在信创产业政策的助攻下,迎来了发展的黄金期,技术和产品能力快速提升,凭借自主可控、创新安全等优势,已经逐步实现对Teradata等国外主流软件的成功替换。 其中包括以Hadoop体系为主的CDH、星环,袋鼠云等公司,以国产化数据库为主的阿里云ADB、华为GussDB、南大通用GBase等数据库厂商,都纷纷在国产化领域交出了不错的成绩单。 袋鼠云从2016年开始一直深耕于大数据领域,以卓越的技术能力服务3000+客户,涉及行业解决方案、大数据产品、数仓交建模交付、数据分析等多个领域。在产品和国际同行之间差距不断缩小的同时,这次Teradata的离开,我们也在思考在这...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Red5直播服务器,属于Java语言的直播服务器
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS8编译安装MySQL8.0.19