本月在铁锈游戏#11-2020年6月

2020-07-08 10:48:46

欢迎收看“铁锈游戏开发工作组”第11期月刊。Rust是一种追求三位一体的系统语言:安全性、并发性和速度。这些目标与游戏开发很好地结合在一起。我们希望为任何希望在他们的开发过程中使用Rust的人建立一个诱人的生态系统!想要参与其中吗?加入铁锈游戏开发工作组吧!

您可以通过观察协调问题来跟踪时事通讯的创建过程。想要在下一次时事通讯中提到什么吗?给我们发送一个拉式请求。请随意发送有关您自己项目的公关!

Laticoda的游戏Jam是以罗马帝国为背景,以ECS范式为技术方面。条件是:

它可以是RPG,战略,街机或其他;多人或单人。你想要什么。只要试着包含一点历史和文化品味就行了。别害怕,它不是排名。

Rhea的方式(STEAM)是一个即将推出的益智平台,它发生在一个你只能与当前颜色相匹配的对象交互的世界里。它内置了一个自定义引擎,以及由梅森·雷梅利(Mason Remaley)编写的自定义脚本语言。本月更新:

作为蒸汽游戏节的一部分,已经发布了一个演示!该节已经结束,因此该演示不再可用。

作为蒸汽节的一部分,工作室举办了一场速跑比赛,这里是获胜的跑道。

游戏中加入了色盲友好模式,并根据节日的反馈做出了其他几个改变。

A/B Street是一款交通模拟游戏,探索道路的微小变化如何影响骑自行车的人、交通使用者、行人和司机。

支持停车场,可根据OpenStreetMap几何自动推断各个槽位的数量和位置。

在游戏中显示的道路名称,其方式不会造成附近移动代理的混乱。

A/B Street使用自定义GUI库,利用glium、usvg和Lyon。铁锈和视觉/游戏设计方面的帮助总是受欢迎的!看看路线图和好的第一期。

由考勒芬攻击前的板条箱(@CrateAttack)是一个基于技能的抓钩多人游戏,青蛙在用粘性的舌头在风景中导航的同时与他们的朋友战斗。

多人游戏:增加了游戏中的聊天,带有秘密链接的私人比赛,改进了游戏设置UI。大量错误修复和调整。

花园是一款即将推出的以种植逼真植物为中心的游戏。来自6月devlog的一些更新:

六月份,Veloren在GamingOnLinux上做了一个重要的采访,一定要去看看!维罗伦的首席艺术家也开始了每周一次的博客,介绍他在维罗伦上的作品,你可以在这里看到。Veloren最近登上了GitLab上最受欢迎的项目的首页!Veloren YouTube频道的订户也达到了1000人。

在过去的一个月里,人们已经为0.7做了很多工作,预计将在8月初发布。已经做了很多工作来改进用户界面和动画。这些将有助于实现0.7的目标,使其成为进步的最新版本。对持续集成系统进行了许多改进,使其更可靠、更快速。Mac支持被添加到空舰,Veloren发射器。在世界模拟战线上做了大量工作。这包括代表定居点和城市的贸易和资源定价的经济模拟。城堡一代现在也在筹备中。

测试覆盖率和文档已经开始改进,围绕它的工作流程正在开发中。该项目现在托管了一个正确的文档站点,该站点在每次合并时都会更新。创建了一个#UX工作组来促进讨论如何改进Veloren中的玩家交互。许多翻译被合并,包括瑞典语、波兰语和巴西葡萄牙语。技能系统正在进入实施阶段,这是游戏设计、艺术和战斗工作组之间的协调努力。

在7月份,将完成完成进步系统的工作。将举行财务会议,讨论如何分配来自该项目公开募集的资金。

从零到游戏是一个项目,记录了从零开始创建一个独立的太空游戏的过程。

我这个网站的计划是用Rust编程语言讲述我独立开发的一款电脑游戏。我以前从未这样做过,所以我希望能向你展示从零到游戏的整个过程。

#2";灵感设计--Factorio、Screep和空间站13是如何激发游戏设计灵感的。

#3";挑选技术&为游戏项目开始研究一条技术路线(#3";Pick Technology";--为游戏项目开始研究一条技术路线。

领先的设计挑战--将飞船内外的游戏性结合起来的时空问题。

铁锈渲染#7";-从教程代码开始工作,以满足游戏的第一个铁锈场景渲染的需要。#7";Render in Rust";-从教程代码开始工作,以满足游戏的第一个铁锈场景渲染的需要。

Pont是一个基于Qwirkle的多人在线棋盘游戏,由Matt Keeter实现,客户端和服务器端都是用Rust编写的,使用WebAssembly在浏览器中运行客户端,而不需要任何Javascript(除了一个小填充程序)。

系统架构在博客帖子中描述,源代码可以在Github上找到。

Scale的目标是成为一个细粒度的社会模拟,充满了与他们的世界实时交互的完全自主的代理。

第四个devlog发布了,讨论了基于wgpu-rs的新渲染器、寻路、停车、弯曲道路和从名为Flat_SPACE的项目中提取的新板条箱。

Runner是一款简单的侧面滚动的无休止的跑者游戏,发生在一个光明的世界里,那里只有我们无畏的冒险家和几个讨厌的家伙,他们一心想要阻止她跑步!它使用ECS的规格,并且有多个前端:sdl2&;Quicksilver。在这两个前端之间,它可以瞄准大多数平台:Web、Mac、Linux、Windows(未经测试)&;甚至可能是iOS和amp;Android。

动物格斗国际象棋(斗兽棋,#34;Doe Show Chee),作者@netcanis,是一款流行的中国游戏的铁锈实现。

要赢得游戏,一名玩家必须成功地将任何动物移入对手的洞穴(兽穴)或吃掉对手的所有动物。基本走法是向前、向后、向左或向右移动一个空格。棋子不能对角移动。每个玩家有八个棋子,不同的动物有不同的威力,较大的威力棋子可以吃一点威力棋子,但老鼠可以吃掉大象。这里有一张棋子的图片,它们的英文名称和用数字表示的相对威力。参见古代的完整规则

本项目采用AlphaBeta剪枝算法进行AI,并提供了Python模块使用AlphaZero算法进行训练。

RS-type是一款以zty.pe.为灵感的WIP打字游戏,它可以加载KTouch课程,也有一个内置的用于绘制背景的基本矢量绘图工具。

鳄梨酱跑步者是一个小游戏,由@EllenNyan用利乐和造船厂在大约2天内制作而成。游戏的概念是玩家不断摔倒,必须从飞机上跳下来才能停留在空中。当他们越过土砖的顶部时,他们会种花,这会给他们加分。

“呜呜蛇”是一款蛇类游戏,游戏中的视觉效果会显示在键盘灯上,而不是电脑屏幕上。

Weegames是一个快节奏的迷你游戏集合,有23款游戏都是用免费的图像和声音制作的,你打败的迷你游戏越多,他们玩得就越快。

BLIB是一个使用wgpu-rs和imgui-rs构建的WIP 3D流体模拟游乐场,它主要关注混合方法拉格朗日/欧拉方法(PIC/FLIP/APIC..)。有关更多详细信息,请查看该项目的自述文件。

本月,泰勒·张在“伦敦虚拟演讲”上做了一次演讲,内容是关于4D物理可视化的理论和实现。演示的源代码可以在这里找到。

@twitu发布了一个由三部分组成的博客系列,内容是模拟一群虚拟代理(Boid),它们将在封闭的空间里游泳,行为就像一群鱼。

这是一个漂亮的过程性图形生成应用程序,其中简单的规则创建复杂的模式。它的灵感几乎完全来自塞巴斯蒂安·拉格(Sebastian Lague)的“Boid编码冒险”(Coding Adenture With Boid)。

@r-marque的doomfire是末日火效果的铁锈实现(基于Fabien Sanglard的博客文章),使用不同的2D图形库:minifb、像素、sdl2、wasm-bindgen+canvas API。

这可能会对新手来说很有帮助,因为他们正在尝试进入游戏开发,并寻找合适的库来使用。

这个项目是2005年非官方C/C++PSPSDK的移植和改进,它不需要安装自定义的GCC工具链。只有“晚间新闻”和一个货运子司令部。

PSP机箱提供了一个PSP::Sys子模块,可容纳整个索尼PSPAPI。不幸的是,PSP使用了非标准的动态链接(有些库是静态链接的!),所以函数定义标记外部是不够的。最终,这个syslib将被包装成一个对更多人友好的库。

除了修补llvm或rustc,rust-psp团队还合并了上游的mipsel-sony-psp目标,并发布了Cargo-psp。这是一个子命令,其工作方式与Cargo Build完全相同,不同之处在于它还将板条箱构建为名为PRX的APSP特定可执行格式,并将其打包为EBOOT.PBP,这是PSP Homebrew的标准格式。

机箱已经与非官方的C/C++SDK达到了完全的用户模式对等,内核模式的支持还需要改进。除了库导入,还通过vfpu_asm支持特定于PSP的自定义汇编指令!宏,不需要定制的编译器工具链。还有可选的嵌入式图形支持和一个对代码进行基准测试或计时的函数。

Rust-PSP的下一个重要里程碑是对STD的支持。如果您有兴趣提供帮助,请随时加入PSP Homebrew Discord服务器中的Rust-pspchannel。

本月,crates.io上发布了GLAM 0.9。从0.8版开始,此次更新是一个突破性的变化。

在0.9中,Vec3类型从128字节的SIMD矢量类型更改为三个浮点数的四倍。这将ve3的大小从16字节更改为12字节,并将对齐从16字节更改为4字节。这可能不会影响所有用户,但如果在大小或对齐很重要的上下文(例如inFFI或作为着色器的输入)中使用ve3,则可能会导致损坏。

Vec3的SIMD部分被移到一个新类型Vec3A(A表示对齐),它是16字节对齐的,因此大小为16字节。对于想要享受SIMD实施的性能优势的用户来说,Vec3A类型仍然存在。

进行此更改的动机是,新用户可能会感到惊讶和困惑,因为ve3类型不是12个字节。而且,用户需要一个只有12个字节的ve3,这是很常见的。

虽然GLAM相当稳定,但它还没有发布到1.0版本,所以现在似乎是在API中解决这些问题的时候了。

MUN是一种游戏开发脚本语言,专注于快速迭代时间,它是用Rust编写的。

在Mun v0.2版本尘埃落定后,本月的重点是修复社区成员发现的几个问题,提高代码库的整体质量,并为下一个版本MUN v0.3而努力。

GameLisp(GLISP)是为Rust和在Rust中构建的脚本语言,并利用LISP编程语言家族中的语法。它提供了一个快速高效的垃圾收集器,可以运行每一帧,而不是冻结线程。

GameLisp还提供了一个操场来试验不同的项目。还提供了参考指南以及集成到Rust中的API文档。

箱子已经有了最初的版本,路线图和贡献方式可以在GameLisp&39;的Github Repository上找到。

Safe_Arch是@lokathor开发的一个板条箱,它通过#[cfg()]安全地暴露CPU Arch内部功能。本月发布了v0.4和v0.5版本。主要改进包括:

YAKS是一个使用RAON数据并行库的HECS ECS库自动多线程的简约框架。

虽然该项目本身在今年早些时候开始,随着本月发布的牦牛获得了一个全面的API,进一步倾向于承诺的简单性:

可以在构建Executor时定义系统执行顺序以创建并发链系统,

系统使用的资源(任何与实体无关的数据)现在在执行期间被借用,而不是归框架所有。

库中的所有项目都有详尽的文档,并且库中包含一个带完整注释的示例。

默认情况下启用的并行货物功能可以被禁用,以强制牦牛中的所有内容成为单线程,这允许在没有线程的平台上使用通过框架编写的代码-特别是Web平台。

该项目现在有一个不和谐社区服务器(矩阵桥),可用于所有四个系列的项目:迷你四方、大型四方、Good-Web游戏和Nanoserde。

MEGOUI是MacQuad的类似imgui的UI系统。最近,MEGOUI获得了不错的输入小部件:输入域、编辑框和幻灯片。所有这些小部件都支持从浏览器来回复制粘贴。请查看Web演示(来源):

@FEDOR_GAMICS的Nanoserde是makepad-tinyserde的一个分支,删除了syn/QUOTE/proc_acro2依赖项。它试图解决serde的问题,如清理编译时间过长、增加增量构建时间和构建工件大小。如果整个游戏的构建时间不到一分钟,并且在serde上花费约40秒是不合理的,则nanoserde可能会很有用。

Tetra是一个简单的2D游戏框架,灵感来自XNA和Raylib。本月发布了0.4版,具有以下特点:

对文本呈现API的修改,它提高了性能并修复了一些长期存在的错误。

此外,利乐的网站上增加了一个新的指南,列出了在将游戏分发给公众时需要考虑的一些事情。本指南仍在编写中,因此欢迎您的投稿!

项目";NodeFX";由Christian Vallentin(@Mr Vallentin)开发,是一个基于节点的未命名工具,用于实时创建GLSL着色器,完全使用Rust编写。

本月添加了对二维和三维SDF节点的支持。上面的屏幕截图是使用一些2DSDF基元和操作创建节点的元示例。一些3D SDF的示例可以在Twitter上找到。

下个月将会增加更多的用户界面,使应用程序更加用户友好和功能齐全。在添加UI之后,就有了应用程序的计划租约。更多信息可以在Twitter上找到。

Göld是一个WIP游戏引擎,用于使用旧技术将3D游戏组合在一起。它使用wgpu-rs,基于PyGame或Löve的简单心理模型,但适用于Goldsrc/Quake时代的技术。

该项目的最终目标是拥有一个简单的引擎,它可以简单地满足许多简单化的3D游戏所需的一切,而不会试图过于通用。

Quake 2地图加载(虽然还不是Quake/Goldsrc地图),并使用适当的BSP剔除和截体剔除进行渲染。

阿森纳是2D和3D游戏引擎的概念,它与Blender完全集成,并建立在铁锈核心之上。引擎将围绕一个实体组件系统(可能是造船厂)建造,以获得其性能和游戏设计优势。阿森纳的愿景是建立一个开源游戏引擎,它适用于任何规模的游戏,并且完全新手和经验丰富的专家的广大观众都很容易接近。

阿森纳目前有一个正在工作的POC,但不支持添加自定义游戏逻辑。阿森纳的下一个重要步骤是在造船厂获得最初的脚本支持。阿森纳的脚本计划大量借鉴了紫晶脚本RFC,第一个目标脚本语言是Python。其他可以在以后添加的语言有Mun、Lua,也许还有其他用铁锈写成的语言,比如胶水。

关于阿森纳发展方向的更多信息可以在最新的阿森纳发展博客文章中找到。

Katharos Technology已经在GitHub赞助商的支持下上线,为阿森纳游戏引擎的开发提供资金,并支持Rust Gamedev库和工具,如GFX和WGPU。

Vimnail是一个基于WIP模式的图像编辑器,灵感来自Vim。该项目的目标是能够在不使用鼠标的情况下合成图像。

本月,加雷特·库珀(Garett Cooper)发布了GC NES Emulator,允许你在浏览器中玩经典的任天堂娱乐系统(Nintendo Entertainment System)游戏。

GC NES仿真器的核心是用Rust编程语言实现的,它支持Web Assembly作为编译目标。使用WASM版本的仿真器,我编写了一个javascript包装器,它获取用Rust代码呈现的帧,并将其显示在HTML5画布上。目前,这是完全同步完成的,尽管我希望在将来的某个时候将它移到Worker中。

在RustConf 2018年期间,凯瑟琳·韦斯特做了一个主题演讲,将Rust用于游戏开发,向很多人介绍了ECS的概念,现在被认为是经典。你可以在这里观看录音(幻灯片)。