Home

Rust GameDev 月刊 #3(译)

Rust GameDev #3 月刊 - 10 月 2019

2019 年 11 月 7 日

欢迎来到 Rust GameDev 工作组月刊,第三期。

Rust是一种追求三重性的系统语言:安全性、并发性和速度。这些目标与游戏开发非常一致。

我们希望为想在开发过程中,使用 Rust 的人建立一个吸引人的生态系统!想参与吗?加入 Rust GameDev working group!

游戏更新  #

Sulis - a Turn-Based RPG #

chest and inventory with items

Sulis是一款角色扮演游戏(RPG),具有回合制、战略战斗、深度角色定制和引人入胜的故事情节。游戏从一开始,就以改造和定制的内容角度,进行考虑。当前支持 Windows 和 Linux 平台。

该游戏目前是完全可玩的,包括 the first act of Twin Expanse,一个经典游戏类似的老式 RPG 战役,如*巴尔杜尔之门*,但混合了现代元素,如*神界原罪*和*永恒之柱*。

核心游戏引擎以及战役仍在大力开发中。鼓励用户给出 bugs issues,功能请求或任何其他反馈。

flaming fingers spell demonstration

特征:

ability tree gui

GPLv3 许可证的源代码在 GitHub。Sulis 是用 Rust 编写的,脚本使用 Lua,大多数数据文件使用 YAML 格式。

_讨论:/r/rust_gamedev_

Veloren #

Bumpy terrain with a rivers and trees

Veloren是一个开放的世界,开源的多人体素 RPG。游戏处于开发的早期阶段,但可以玩。

本月发布了 v0.4 版本以及玩家调查问卷发布.

10 月份的一些改进:

新视频:“Cities, dungeons and other structures” [/r/veloren].

完整的每周节目“本周在 Veloren…”:#36, #37, #38, #39.

还有,查看/r/veloren subreddit,相当活跃。

PF Sandbox #

Exported models with textureas and skeletal animations

PF Sandbox by @rukai是一个平台 fighter 沙盒功能:游戏斗士和舞台编辑器,重播,和教学工具。

这个月,exporting and hot-reloading assets from blender, freelook camera, textures,和animations已添加到项目中。

Antorum #

Antorum screenshot: a few human characters, a few rats and an inventory UI

Antorum是一种多人角色扮演游戏,玩家可以在游戏中,塑造自己的角色,并对抗岛上日益增长的威胁。游戏服务器是可信的,用 Rust 编写,而客户端是用 Unity/C#编写的。

这个月,@dooskington发表了一系列文章:


7th devlog所诉,是“grubbnet箱子已发布。

它是用于编写联网应用程序和游戏的,轻量级 TCP 客户端/服务器。它提取套接字代码,跟踪连接,并通过一系列不错的事件将所有内容返回给开发人员。除了处理网络事件(例如,客户端连接和断开连接)外,处理传入数据包,也很容易在传入数据包队列上,获取迭代器。

这是 Antorum 游戏服务器在后台使用的同一网络箱子。

Ferris Fencing #

Two crabs fencing on a 1D map

Ferris Fencing是一场现场锦标赛,其中由玩家编程的机器人,在RISC-V虚拟机相互打斗。这是一个CKB-VM展示会,这是用 Rust 编程语言编写的 RISC-V 指令集的简单实现。

Here’re the rules

Ferris Fencing 锦标赛尚未举行,但是 fencers 可能会开始建造他们的机器人,并在本地进行测试。说明在GitHub repo

Tennis Academy v0.03 & v0.0.4 #

4 courts with players

@oliviff已发布v0.0.3v0.0.4Tennis Academy 更新:

piano-rs #

Virtual piano keyboard

piano-rs是使用 UDP 套接字的多人钢琴,可以在终端中,使用计算机键盘进行演奏。

_讨论:/r/rust_

Will it dissolve? #

Dissolve gameplay demo

“Will it dissolve?”是一款为“Open Jam 2019”准备的小型益智游戏,在那里您必须准备好关卡,以便将来自动转换和分解它。

借助Tetra 引擎源代码

Garden Devlog: October #

Garden screenshot: a tree, leaves, water and ruins

Garden是一款以生长逼真的植物为中心的,即将推出的游戏。

自上次开发日志以来,进行了以下更改:

Watch the video demo here

另外,创建了一个新的设计计划:

要了解较小的更新,屏幕截图和新的开发日志,请关注@logicsoup在 Twitter 上。

EVE Aether Wars Backend Optimization #

@aidanhs 分享一个小的EVE Aether Wars 后端优化成功案例:

为了使滴答频率翻倍至 30Hz,自上次我们底部的 @rustlang 层需要…两行错误修正和一些指标支持。Rust 中可靠软件的不错凭证!

Robo Instructus #

Alex Butler继续完善他们的“Robo Instructus“ 游戏;1.12, 1.13, and 1.14 versions were released:非 ASCII 代码输入,新图标,错误修正和更好的翻译。

你可在这里帮忙翻译

translated menu items

Godot and Rust #

Recall Singularity screenshot: map, a few belts and processing nodes

Ludum Dare 45 #

Ludum Dare是一项常规的游戏 jam 事件,在此期间,开发人员将根据社区提出的主题,在周末从头开始创建游戏。

LD45 的主题是“从无开始”。以下是一些用 Rust 制作的游戏:

体验正在进行的工作。

游戏在 2D 平台游戏的开发过程,并观察您的环境,随着进度的变化而变化……获得的越多,添加的功能就越多,包括险恶的敌人,破坏性的尖峰和自适应音乐。

Working Title: an early stage of the game

一个简短而轻松的故事,讲述了人类被困思维的曲折通道。从遗忘的中间开始,如阴影一般,然后漫步于这个地方的每个房间,以寻找所有失去个性的碎片。 你能找到出路吗?

Mindmaze: main menu

一无所有,甚至没有记忆,您会发现自己在奇怪的洞穴中操纵某种手工艺品。

ultra-low-poly ship in low-poly caves

查看 devlog 帖子:“Tools and tech for my game written in Rust”

Amethyst Games #

阅读公告文章:“Showcase game #4: Grumpy Visitors”

当前游戏功能:

源代码 is available here

A magician shooting missiles at giant bugs

这是一个迷你角色扮演/冒险游戏。目标?漫步在 Arrakis 的街道上,找到传说中的 Arrakis 巫师,它可以教你梦寐以求的奥术力量!

Arrakis screenshot

hexagonal pam with a few mechs

a small hex field with a few fighters

库 & 工具更新  #

Dev Time Optimization – Part 1 (1.9x 加速, 65% 磁盘降低) #

编译时间(完全和增量)是 Rust 的痛点之一。Azriel发布了有关优化Will的构建时间的 devlog。摘要:

在 45k LOC / 102 箱子的工作区中,将测试从成员箱子移到单个 workspace_tests 中,实现了以下改进:

  • 在发布模式下的构建和测试时间,从 23 分钟减少到 13 分钟。
  • 调试工件磁盘的使用从 20 G 减少到 7 G( 重新构建缩减 65%),或从 230 G 减少到 50 G(正在进行开发缩减 78%)。

_讨论:/r/rust_

🛈 Tip: 加速迭代时间,通过使用 LLD Linker #

来自一个有趣的推特 from VladZhukov0和一个/r/rust 跟帖 “rust 编译器真的很慢吗?”

RUSTFLAGS="-C link-arg=-fuse-ld=lld" cargo run,另一种方式您可以设置 rustflags in your .cargo/config

根据您的项目结构,操作系统和工具链,这可能会几次加速增量编译。

# in your Cargo.toml [profile.dev] debug = 0

现在,链接只需要大约一秒钟,而之前是 10 秒。

将我的平均编译时间从 10-20s(对于 gamedev 迭代有点疯狂)减少到 5-7s。想知道为什么我以前没有尝试过吗?🤔

另外,请参阅此 GameDev WG 跟踪器/投诉问题:#50 “Linking Time”

RLSL: a Rust to SPIR-V Compiler #

RLSL code sample

^ 一个渲染红色圆圈的简单碎片 shader(临时语法)

这个月,@MaikKlein_DEVThe Khronos Group发表演讲,展会在慕尼黑举行,关于将 Rust 引入 GPU :这里是幻灯片

RLSL(Rust Like Shading Language)是一种*实验性的*允许将 Rust 编译为SPIR-V的项目。

当前功能:

另外,请查看较早的帖子:

_讨论:/r/rusthacker news_

gfx-rs v0.4 #

sailor screenshot: vector terrain map and some basic UI

^ Yatekii/sailor的屏幕截图 —— 基于 wgpu 的航行导航应用程序

gfx-rs v0.4 was released:主要变化,the last blog post有所描述,有关更改的详细列表,请参见CHANGELOG

Vulkano: 为什么 Command Buffers 如此复杂? #

vulkano logo

A twitter thread by @Tomaka关于为什么Vulkano的 command buffers(包裹Vulkan graphics API的 Rust 库)是如此复杂。

splines v3.0 #

a spline sample with node handles

splines,一个箱子 by @phaazon 处理 spline 插值,刚发布于 3.0.0

该版本增加了对笔触 Bézier 插值的支持,Bézier 插值是一种 Bézier 插值,但是允许您断开手柄 (instead of the regular 180° angle formed by the handle with the Interpolation::Bezier mode).

spline-editor有一个补丁程序可以让您尝试 Bézier。

This Month in Mun - 10 月 2019 #

Mun是用于 Gamedev 的脚本语言,该脚本语言专注于 Rust 编写的快速迭代时间。

Mun 小组从 10 月开始启动mun-lang.org网站,Discord serverOpenCollective和处理更多受众的反馈。现在,团队正在朝 v0.1 版本迈进。

另外,请查看 /r/rust“The Mun programming language is going live!” post

ultraviolet #

ultraviolet benchmarks table

ultraviolet by @fu5ha一个箱子,通过充分利用SIMD,可以快速,基本地完成与计算机图形相关的线性代数。

<…> 为此,它使用“ SoA”(Structure of Arrays)架构,这样每个 Wec(wide-vec)实际上都包含 4 个 Vecs 的数据,并且将同时对所有 4 个 vector “通道”执行任何操作。这样做可能比“ AoS”(Array of Structs)布局快,就像当前所有 Rust 线性代数库一样,具体取决于您的工作量。但是,必须精心设计算法以充分利用此优势,并且说起来容易做起来难,尤其是在算法涉及大量分支的情况下。

_讨论:/r/rust_

This month in rustsim #8 (Aug - Sep - Oct 2019) #

salva's logo

主要更新:

Salva 是一个致力于流体模拟的新项目。salva 的目标是提供基于 CPU,基于粒子,2D 和 3D 的流体仿真库,这些库可用于动画等交互式和脱机应用程序。只要粒子数量保持较小,它就可以在某种程度上用于视频游戏(尤其是 2D 版本)。

看一个“流体模拟 salva 0.1 and nphysics 0.13”视频或在线玩玩2D要么3DWASM 演示。

_讨论:/r/rust_

cyclone-physics-rs #

cyclone physics demo

^“粒子”模拟的一些演示

cyclone-physics-rs by @heyrutvik一个新的 WIP 游戏物理引擎,基于“Game Physics Engine Development” book

Cynic64’s WIP 渲染引擎 #

@cynic64 分享了demo 视频和一份关于他们 WIP 渲染引擎的报告

它基于 Vulkano,由三个存储库组成:

Rust Roguelike 教程 #

"Doors" demo

The Roguelike Tutorial by @blackfuture现在包括将近 40 章,并将继续增长。

十月的一些更新:

所有章节都有指向 WASM 演示的链接。


另外,0.5 版rltk-rs 带来了后端之间的抽象,更好的编译时间,Web 版本的改进以及更多示例。

Nannou awarded Mozilla grant for foundational audio development #

Nannou & mozilla logos

Nannou是一个创新的编码框架,旨在使艺术家可以轻松地用简单,快速,可靠的代码表达自己。

Nannou 获予了 10K USD in funding作为MOSS Mission Partners 的一部分。拟定的工作目标,旨在在未来三到四个月内改善 Rust 音频生态系统中,一些基础箱子的状态。

我们工作的关键领域将包括:

_讨论:/r/rust_

Amethyst #

amethyst logo

Meeting Minutes #

查看所有的会面 issues包括书面记录或加入下一 meeting

请求帮助  #

Bonus #

只是过去有趣的 Rust 游戏开发链接。:)

Gravisim screenshot

Gravisim by @bcamp1是万有引力的模拟。它用牛顿定理之万有引力运行一个 n-body 物理模拟。

查看 /r/rust 公告版上的,视频示例


今天就是所有新闻,感谢您的阅读!

想要下一期新闻中提到的内容吗?Send us a pull request。随意发送有关您自己的项目的 PR!

另外,订阅@rust_gamedev on Twitter要么/r/rust_gamedev subreddit如果您想接收新消息!

这篇文章的讨论/r/rusttwitter

[](https://rust-gamedev.github.io/posts/newsletter-003/)

Rust Game Development Working Group

紧跟 Rust 游戏开发工作组的最新进展。