Home

Rust GameDev 月刊 #4(译)

This Month in Rust GameDev #4 - 11 月 2019

2019-12-08

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

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

想要加入下一期新闻?Send us a pull request 随意发送有关您自己的项目的 PR。

Game Updates #

Le Train Dispatcher - Route Trains in 模拟铁路网络  #

Demo of Le Train Dispatcher

Le Train Dispatcher!itch.ioPatreon 允许你在完全模拟的铁路网络中,对火车进行路线选择。特别注意了光信号的实际管理(block 系统,开关保护),列车物理特性和弯道追踪。

该游戏使用 Rust 编程,主要使用的箱子是:ggez,imgui 和 serde。

这第一个版本完全可玩,但是如果您想发表评论,提出您的想法或为游戏的发展做出贡献,请不要犹豫地发布一个message

独特的特点:

Veloren #

Character creation screen

Veloren是一个开放世界,开放源代码的多人体素 RPG。该游戏尚处于开发初期,但可以玩。

11 月的一些更新:

完整的每周开发日志“本周在 Veloren …”:#40#41#42#43


观看新视频“什么是 Veloren?” @DoNeo 和@ RonVal4 撰写(俄语,但有英文字幕):

Youtube preview img

而且,他们写了俄语博文,关于 Veloren for dtf.ru

Math Defense #

Math Defense screenshot

Math Defense by @512Avx是儿童数学游戏。

通过加减乘除,解决数学问题击落敌方太空飞船,取得进展。多个难度级别,可以通过编辑 levels.json 文件完全自定义。随意创建自己的关卡,改变难度。

The source code is available here

Sulis: 基本资源管理 #

Sulis logo

Sulis是一款角色扮演游戏(RPG),具有基于回合的战略战斗,深度角色定制和引人入胜的故事情节。

这个月,一篇文章“Basic Resource Management”发表:

在开发 Sulis 时,主要目标之一是,简便而强大的改装功能。为此,几乎所有资源都是通过简单的 YAML 文件定义的。这个想法是,任何拥有文本编辑器的人,都可以轻松创建新资源或编辑现有资源。但是,这立即提出了如何在游戏状态内管理所有这些资源的问题。在 Sulis 中,这是通过中央资源管理器处理的。

尽管是以 Sulis 作为示例的主体,但本文几乎适用于任何游戏。

另外,项目(游戏本身及其源代码)被 gamefromscratch.com 评估 [/r/rust_gamedev]。

Paddlers: 与 Rust 和分布式系统,一起快乐成长 #

Paddlers architecture scheme

Paddlers是一款多人实时策略浏览器游戏,旨在使所有 Paddland 的鸭子都开心。

demo.paddlers.ch观看现场演示(测试用户的用户名是“ Tester”,密码是“ 1”)。

本月发布了第三个 devlog:”#3: Fun with Rust and distributed systems”。它概述了项目的体系结构和实现。

Antorum: Drop Tables #

screenshot: battlefield after slaying some chonkrats

Antorum是一款多人 RPG,玩家可以在其中建立自己的角色,并与岛上日益增长的威胁作斗争。游戏服务器是可信的,用 Rust 编写,而客户端则用 Unity / C#编写。

本月,@ dooskington 发布了11th devlog “Drop Tables”关于处理怪物战利品的掉落格系统的实现。

Recall Singularity: 11 月进程 #

Demo of the basic ship collision

^基本的船舶碰撞演示。

Tom Leys正在开发有关设计自主工厂船只和车站的“The Recall Singularity”游戏,本月他们发布了一个 devlog 帖子:“Recalling Nov 2019”

你也可以看视频版

摘要:

Slavic Castles #

Just a screenshot of some battle

Slavic Castles是一款纸牌游戏,灵感来自Arcomage,用 ggez/good-web-game Rust 写的。

你可以在线玩耍或上itch.io

源代码在此

_讨论:/r/rust_gamedev_

Tennis Academy #

robots demo

@oliviff已发布v0.0.5..v0.1.0版本的Tennis Academy

Twenty Asteroids #

space ship destroys enemies and asteroids with plasma beams

该游戏现已正式命名为“二十个小行星”。

@VladZhukov0已发表短视频: 更新/调整 gameplay

Erasterra #

Flying cars

Erasterra是一款地形赛车游戏。它使用 Rust 来实现配对服务器。

在 Rust 中实现 matchmaker 很有意义,因为它被设计为长期运行的服务,因此可能不会崩溃。Rust 只是使实现非崩溃软件变得更加容易 🙌

Garden #

Garden screenshot: ruins, trees and water in craters

@logicsoup发了一系列更新,其中包括:

Robo Instructus #

A screenshot of a later game level

Alex Butler继续完善他们的“Robo Instructus“ 游戏;1.15, 1.16, and 1.17 versions were released:Rust 1.39,错误修正和更好的翻译。

你可以帮忙翻译翻译

GitHub Game Off 2019 #

gameoff logo

GitHub’s Game Off是一年一度的,长达一个月的 game jam(制作游戏的黑客马拉松)。今年的主题是“leaps and bounds”

TopDown: gameplay sample

你能活多久?

Compact-Space screenshot: asteroids, ship, aliens

一个生活/环境模拟器,里面有一些 rogue-like 的东西。

evo: demo

Amethyst Games #

新功能:

  • 可以定义动画菜单和背景。
  • 玩家名称可以在控制器配置中指定。
  • 游戏结束时,显示赢家。

在幕后,进行了以下代码维护:

  • 将所有测试转移到一个单独的箱子中 —— 速度提高了 1.9 倍,磁盘使用量减少了 65%。
  • 资产被加载到单独的资产组件中 —— 更容易在不同类型的对象之间共享逻辑。
  • 舞台的资产加载完成,为禁用某些舞台做准备。

Will: Winner Status Demo

Main menu demo

库 & 工具更新  #

Memory Arena #

how entities/handles are related to each others

@kooparse 发了一个帖子:关于实现一个 quick momery arena

对于我的游戏,我决定将几乎所有实体存储在一大块内存中,程序启动时就只分配一次内存。我使用这种技术有三个原因。首先,我想要对游戏中的内存管理方式进行全面而精确的控制,其次,我想要更好的数据局部性,以便增加来自 cpu 的缓存命中率,最后,在运行时,要求操作系统分配更多内存是缓慢的。

wgpu v0.4 #

some webgpu logo

wgpu是 Rust 中的一个库,用于解决大多数图形和计算需求。

wgpu-rs 0.4 箱子发布。wgpu 基于gfx-hal-0.4,并包含来自上一篇博文的变化;

一些值得注意的补充是:

Lyon 有该版本更新的示例,显示如何在wgpu画矢量图。

还有,wgpu现在是 Gecko 代码库的一部分,用于支持正在出现的 WebGPU 实现。

Book: 学习 Luminance #

luminance是一个类型安全、类型级别和无状态的 Rust 图形框架。

这个月,@phaazon发布了“Learn Luminance”一书。Luminance 的 wiki 被弃用了,这本书现在成为了新用户使用 Luminance 的重点参考,也成为了那些想尝试 Luminance,但对渲染一无所知的人的参考。

_讨论:/r/rust_


顺便说一句,@resinten 正使用 luminance,搞着一个游戏:

space ship pew pew

Pixels #

Pixels logo

Pixels by @kodewerx是一种基于 wgpu 的小型’硬件加速’像素帧缓冲器。它应该用于模拟器,软件渲染,二维动画和游戏原型。

查看URLO 通知贴文.

_讨论:/r/rust_gamedev_

Metropolis #

metropolis by @GuyL99是一个高级图形渲染器,具有易于使用的功能。

这个箱子应该使图形编程容易,功能如矩形,椭圆,线,文本,等等,它的速度在一台辣鸡电脑上,有 60-120 FPS 。

_讨论:/r/rust_gamedev_

skulpin #

physics demo video

^点击查看a demo video.

skulpin by @aclysma结合 Vulkan 和Skia

ultraviolet v0.2 #

ultraviolet v0.2 发布 by @fu5ha。此版本引入Bivectors以及Rotors 和提高了可用性。

_讨论:/r/rust_


rayn fractal render example

还有,Rayn v0.3 最近也发布了 —— 它是一个基于 CPU 的路径跟踪渲染器,专注于渲染 SDFs(特别 fractals-分形)(基于ultraviolet )。

Mun v0.1 #

Mun logo

Mun是 gamedev 的一种脚本语言,专注于 Rust 编写的快速迭代时间。

作为一种语言,Mun 还远未准备好生产,但是这个版本让您看到了原生支持的热重新加载,未来的样子。这个版本的目的是展示我们的进展,并收集那些勇敢的灵魂愿意尝试在这个早期阶段的反馈。

要开始,请阅读the Mun Book看一看Rust examples.

对于 Mun 的完整路线图,请查看Trello board.

_讨论:/r/rust_

glsl v3.0 #

glsl是将 GLSL 格式的源码,解析为类型化 AST 的箱子。箱子公开了几个方法、类型和模块,对 AST 执行转换,包括输出 GLSL、SPIR-V 生成和使用可能的立即可访问 AST。

glsl v3.0是由@phaazon发布的:

SPIR-Q #

example output

SPIR-Q是一个轻量级的SPIR-V查询库。

SPIR-Q<…>对于动态图形/计算管道构建、着色器调试等非常有用。SPIR-Q 目前与 SPIR-V 1.5 的一个子集兼容,具有大多数图形功能,但没有涉及 OpenCL 内核功能。顺便说一下,SPIR-Q 目前只依赖于 Rust 标准库。

_讨论:/r/rust_

Iced: 测试版本 #

Iced demo

Iced是一个与渲染器无关的 GUI 库,主要关注简单性和类型安全性。

这个月,一个Iced 测试版本 was released。最重要的新功能是:

还有,Cryptowatch 现在赞助 Iced 的开发!

Embark’s Stockholm Rust Meetup and Newsletter #

Embark logo white on black

视频来自Embark斯德哥尔摩 Rust 会议:

还有,Embark 开始了一个新时讯。看看第一期“11/08/2019 - Rust, Blender, Hacktoberfest, and more: Newsletter 001 from Embark”.

创新码路 in Rust with Nannou #

Nannou example screenshot

一篇初级教程文章,教授如何使用nannou 这个创造性的编码框架。

RLTK & Rust Roguelike Tutorial #

Dungeon generation demo

The Roguelike Tutorial by @blackfuture包括近 60 章现在和继续增长!

11 月的一些更新:

nes-rust - WASM NES Emulator #

Screenshot of the NES emulator

nes-rust by @superhoge - NES(Famicom) Rust 编写的模拟器,编译成 WASM 到网络上。

查看online Demo

Amethyst #

Amethyst logo

food truck

Meeting Minutes #

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

请求帮助  #

Bonus #

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

Pascal Penguin logo

^ 单击以查看发布的预告片

“Adventures of Pascal Penguin” by Matthew Michelotti是一款基于 2D 网格的益智游戏,其关卡围绕滑冰设计。

当你试图到达每个关卡的末端时,推块并从保险杠上反弹。抓住隐形球穿过固体物体。在沸腾的熔岩和冰冷的水上建立一条安全的道路。有 40 个关卡分布在 5 个区域。你能全部完成吗?

使用Gate游戏引擎。


今天都是新闻,谢谢你的阅读!

订阅@rust_gamedev on Twitter或者/r/rust_gamedev subreddit如果你想得到新消息!

本帖讨论: /r/rust, twitter.

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

Rust Game Development Working Group

了解 Rust 游戏开发工作组的最新进展和最新进展。