Skip to content

Commit 052d37a

Browse files
committed
N23: Release
1 parent a7089de commit 052d37a

File tree

1 file changed

+75
-74
lines changed

1 file changed

+75
-74
lines changed

content/news/023/index.md

+75-74
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
+++
22
title = "This Month in Rust GameDev #23 - June 2021"
3-
date = 2021-07-01
3+
date = 2021-07-08
44
transparent = true
5-
draft = true
5+
draft = false
66
+++
77

8-
<!-- Check the post with markdownlint-->
9-
10-
Welcome to the {TODO}th issue of the Rust GameDev Workgroup's
8+
Welcome to the 23rd issue of the Rust GameDev Workgroup's
119
monthly newsletter.
1210
[Rust] is a systems language pursuing the trifecta:
1311
safety, concurrency, and speed.
@@ -36,11 +34,7 @@ Feel free to send PRs about your own projects!
3634
- [Engine Updates](#engine-updates)
3735
- [Tooling Updates](#tooling-updates)
3836
- [Library Updates](#library-updates)
39-
- [Popular Workgroup Issues in Github](#popular-workgroup-issues-in-github)
40-
- [Meeting Minutes](#meeting-minutes)
4137
- [Requests for Contribution](#requests-for-contribution)
42-
- [Jobs](#jobs)
43-
- [Bonus](#bonus)
4438

4539
<!--
4640
Ideal section structure is:
@@ -125,7 +119,7 @@ along with an architectural overview of the project can be read in the
125119
([/r/OpenCombatGame](https://reddit.com/r/OpenCombatGame),
126120
[Discord](https://discord.gg/YD2V7XsBQZ),
127121
[Forum](https://discourse.opencombat.bux.fr/))
128-
is a real time tactical game directly inspired from
122+
is a real time tactical game directly inspired by
129123
[Close Combat Series](https://en.wikipedia.org/wiki/Close_Combat_(series)).
130124
The player takes control of soldier units and orders them to win the battles
131125
from a top down 2D view.
@@ -171,7 +165,7 @@ online multi user dungeons known as muds.
171165
The project was birthed in April of 2020 and has come a long way since. It now
172166
offers granular scripting access using [lua][lua], plugin handling, built in
173167
text-to-speech (via [Speech dispatcher][speechd]), split view scrolling, modern
174-
telnet protocols and TLS connections to name a few.
168+
telnet protocols, and TLS connections to name a few.
175169

176170
[blightmud]: https://github.com/Blightmud/Blightmud
177171
[tintin]: https://tintin.mudhalla.net/
@@ -190,7 +184,7 @@ The Hat Chooses the Wizard is a 2D platformer for the Game Boy Advance.
190184
It was made for this year's Game Maker's Toolkit (GMTK) game jam with the theme
191185
joined together and came in the top 25% of over 5800 entries. The game plays
192186
over 12 levels with the core mechanic being to throw your hat and then
193-
accelerate towards it. You can play it on a web based emulator embedded on the
187+
accelerate towards it. You can play it on a web-based emulator embedded on the
194188
[itch][hatchooseswizard] page.
195189

196190
The game is written in pure Rust and uses [agb][agblibrary] to
@@ -259,7 +253,7 @@ other players to join using WebRTC.
259253

260254
FishGame started as a [nakama-rs] showcase, but now it's getting more life as
261255
an independent game. To make a transition from a tech demo to a real game,
262-
lots of playtesting and fine-tuning happened this month. Most noticable
256+
lots of playtesting and fine-tuning happened this month. Most noticeable
263257
improvements: a new physics system with throwable everything and a new
264258
zoom-to-fit camera system.
265259

@@ -272,11 +266,12 @@ zoom-to-fit camera system.
272266
![Hyper Farmer logo](hyperfarmer.png)
273267

274268
The dubiously named [Hyper Farmer][hyperfarmer-itch] was made for the GMTK Game Jam
275-
using the Bevy engine. For some reason the player has to pick up all the hay from
269+
using the Bevy engine. For some reason, the player has to pick up all the hay from
276270
their fields using a giant laser slung between two tractors. Apart from the
277-
[bevy_game_template][bevy_game_template], all the artwork, music and code was
271+
[bevy_game_template][bevy_game_template], all the artwork, music, and code was
278272
made over about 24 hours. The game can be played in the
279-
[browser][hyperfarmer-itch], and native builds are available on [github releases][hyperfarmer].
273+
[browser][hyperfarmer-itch], and native builds are available
274+
on [github releases][hyperfarmer].
280275

281276
[bevy_game_template]: https://github.com/NiklasEi/bevy_game_template
282277
[hyperfarmer]: https://github.com/will-hart/cloud-surfer
@@ -286,8 +281,8 @@ made over about 24 hours. The game can be played in the
286281

287282
[![Way of Rhea on Steam](wor-dialogue.jpg)][wor]
288283

289-
[Way of Rhea][wor] is a picturesque puzzle platformerwithout the platforming.
290-
Solve mind bending color puzzles, unlock new areas of a vibrant hub world, and
284+
[Way of Rhea][wor] is a picturesque puzzle platformer-without the platforming.
285+
Solve mind-bending color puzzles, unlock new areas of a vibrant hub world, and
291286
talk to NPCs to unravel the mysteries of a world you left behind!
292287

293288
Way of Rhea is being produced by [@masonremaley][mason-remaley]. Latest Way of
@@ -352,7 +347,7 @@ were recorded during the launch, and you can read about them in
352347
[blog #124][veloren-124]. At peak, 118 players were playing at the same
353348
time during the launch.
354349

355-
The plugins system recieved a tutorial about how to get started. Caves were
350+
The plugins system received a tutorial about how to get started. Caves were
356351
overhauled with lots of new content. Veloren has officially moved fully over to
357352
wgpu, which you can read all about in [blog #125][veloren-125]. Work has been
358353
done on hot reloading for easier access of assets in game. Lots of new models
@@ -442,7 +437,7 @@ about reaching the delicious cupcake across your spaceship.
442437
Made for the GMTK Game Jam.
443438

444439
> You play as a cute alien, who has a limited amount of steps.
445-
> He turns green when he can walk freely, but once he rans out of steps,
440+
> He turns green when he can walk freely, but once he runs out of steps,
446441
> he becomes red and can only push on crates.
447442
> Luckily, some crates contain +1 or +2 steps for him,
448443
> as long as he can push one into a laser.
@@ -534,17 +529,17 @@ rusty-editor updates:
534529

535530
![2D Sight Example](lineofsight.png)
536531

537-
[@basstabs] published a tutorial which explains how to write a
532+
[@basstabs] published a tutorial that explains how to write a
538533
line of sight algorithm for 2D games in Rust without using trigonometry or
539534
square roots. It includes vector diagrams and typeset math to explain the ideas
540535
behind each stage of the algorithm, source code for each step, tests to verify
541-
accuracy of the methods, and suggestions for further improvements.
536+
the accuracy of the methods, and suggestions for further improvements.
542537
Additionally, the
543538
[repository](https://github.com/basstabs/2d-line-of-sight) contains benchmarks
544539
and a sample application written in [ggez](https://crates.io/crates/ggez).
545540

546-
_Discussions: [/r/rust_gamedev](
547-
https://www.reddit.com/r/rust\_gamedev/comments/nx79kq/)_
541+
_Discussions:
542+
[/r/rust_gamedev](https://reddit.com/r/rust\_gamedev/comments/nx79kq/)_
548543

549544
[lineofsight]: https://basstabs.github.io/2d-line-of-sight/
550545
[@basstabs]: https://github.com/basstabs
@@ -591,11 +586,12 @@ game development at different skill and experience levels.
591586
### [How to make plugins system with Rust and WebAssembly][devblog.arcana.rs]
592587

593588
[@zakarumych] published an article about their experience creating
594-
fully safe plugins system using plugins compiled to WebAssembly.\
589+
a fully safe plugins system using plugins compiled to WebAssembly.
595590
It provides reasoning for choosing WASM in specific scenario
596-
and contains strategies for interacting with WASM modules embedded into application,\
591+
and contains strategies for interacting with WASM modules embedded
592+
into an application,
597593
including dealing with dynamic memory of the module,
598-
string and array operations, function pointers etc.
594+
string and array operations, function pointers, etc.
599595

600596
[devblog.arcana.rs]: https://devblog.arcana.rs/how-to-make-plugins-system-with-rust-and-webassembly
601597
[@zakarumych]: https://github.com/zakarumych/
@@ -671,7 +667,7 @@ Graphite art contest_
671667

672668
Graphite ([GitHub][graphite-repo], [Discord][graphite-discord],
673669
[Twitter](https://twitter.com/GraphiteEditor)) is an in-development vector and
674-
raster graphics editor built on a nondestructive node-based workflow.
670+
raster graphics editor built on a non-destructive node-based workflow.
675671

676672
Since last newsletter, the editor has received the ability to select layers via
677673
the layer panel and by clicking or dragging a box selection in the
@@ -686,7 +682,7 @@ the way for moving/scaling/rotating layers and the whole document within the
686682
viewport.
687683

688684
[Try it right now in your browser.][graphite-live-demo] Graphite is making
689-
rapid progress towards becoming a nondestructive, procedural graphics editor
685+
rapid progress towards becoming a non-destructive, procedural graphics editor
690686
suitable of replacing traditional 2D DCC applications. Please
691687
[join the Discord][graphite-discord] - and consider asking for a tour of the
692688
code and how you can help!
@@ -704,7 +700,7 @@ _An depth image example_
704700
[texture_generator] by [Orchaldir] is a library to generate textures,
705701
and a library to use those textures to render tilemaps.
706702

707-
This month the v0.5 version was release. Some of the updates:
703+
This month the v0.5 version was released. Some of the updates:
708704

709705
- The editor was switched to [Iced].
710706
- Layered textures.
@@ -750,9 +746,9 @@ implementation as well as helpful resources for developers.
750746
backroll-rs features an added abstraction for the transportation layer and
751747
also provides a bevy plugin, [bevy-backroll]. GGRS replaces the
752748
C-style callback API of GGPO with a simpler, more understandable control flow.
753-
The authors of both libraries recommend backroll-rs for developement,
749+
The authors of both libraries recommend backroll-rs for development,
754750
as it is currently more actively collaborated on.
755-
GGRS is recommended as a learning recource and entry point,
751+
GGRS is recommended as a learning resource and entry point,
756752
with a plethora of internal documentation and explanation.
757753

758754
The main requirement to make use of both presented libraries is determinism
@@ -819,10 +815,10 @@ time since the person who'd usually take responsibility for releasing a new vers
819815
of glutin was unavailable, and no-one had the role of "back-up releaser".
820816
[@maroider] has offered to fill this role for now.
821817

822-
The upgrade to winit 0.25.0 brings with it a slew of bufixes, a couple of new
818+
The upgrade to winit 0.25.0 brings with it a slew of bugfixes, a couple of new
823819
features, and a single breaking change to
824-
[`WindowBuilderExtMacOS::with_activation_policy`], which has been replaced by
825-
[`EventLoopExtMacOS::set_activation_policy`]. For a full list of changes, refer
820+
[WindowBuilderExtMacOS::with_activation_policy], which has been replaced by
821+
[EventLoopExtMacOS::set_activation_policy]. For a full list of changes, refer
826822
to [winit's changelog].
827823

828824
The departure and disappearance of a couple of maintainers has left winit in need
@@ -842,8 +838,8 @@ any of the [other services] bridged with matrix.
842838
[glutin]: https://github.com/rust-windowing/glutin
843839
[winit]: https://github.com/rust-windowing/winit
844840
[@maroider]: https://github.com/maroider
845-
[`WindowBuilderExtMacOS::with_activation_policy`]: https://docs.rs/winit/0.24.0/x86_64-apple-darwin/winit/platform/macos/trait.WindowBuilderExtMacOS.html#tymethod.with_activation_policy
846-
[`EventLoopExtMacOS::set_activation_policy`]: https://docs.rs/winit/0.25.0/x86_64-apple-darwin/winit/platform/macos/trait.EventLoopExtMacOS.html#tymethod.set_activation_policy
841+
[WindowBuilderExtMacOS::with_activation_policy]: https://docs.rs/winit/0.24.0/x86_64-apple-darwin/winit/platform/macos/trait.WindowBuilderExtMacOS.html#tymethod.with_activation_policy
842+
[EventLoopExtMacOS::set_activation_policy]: https://docs.rs/winit/0.25.0/x86_64-apple-darwin/winit/platform/macos/trait.EventLoopExtMacOS.html#tymethod.set_activation_policy
847843
[winit's changelog]: https://github.com/rust-windowing/winit/blob/master/CHANGELOG.md#0250-2021-05-15
848844
[matrix]: https://matrix.to/#/#Glutin:matrix.org
849845
[other services]: https://github.com/rust-windowing/winit#contact-us
@@ -859,7 +855,8 @@ resizable panels, more powerful plots, and more.
859855

860856
You can try out egui in the [online demo].
861857

862-
_Discussions: [/r/rust](https://www.reddit.com/r/rust/comments/o76y9x/announcing_egui_013_the_simple_gui_library/)_
858+
_Discussions:
859+
[/r/rust](https://reddit.com/r/rust/comments/o76y9x/announcing_egui_013)_
863860

864861
[egui]: https://github.com/emilk/egui
865862
[online demo]: https://emilk.github.io/egui
@@ -906,25 +903,25 @@ Several example controllers are provided as well:
906903

907904
### [wgpu] family re-union
908905

909-
![wgpu family reunion](wgpu-family-reunion.svg)
906+
![wgpu family reunion](wgpu-family-reunion.jpg)
910907

911908
[wgpu] is a [WebGPU] implementation in Rust. It is safe, efficient,
912909
and portable: it can target both native and the Web.
913910

914-
[Family reunion] is by far the biggest change in `wgpu` project since
911+
[Family reunion] is by far the biggest change in wgpu project since
915912
the inception. First, the Rust API of [wgpu-rs] was moved to the main
916913
[wgpu] repository. Second, the whole base was relicensed under MIT/Apache2.
917914

918915
[gfx-hal] - the Vulkan Portability-like graphics API abstraction -
919-
was detached from the project. Instead `wgpu` got its own in-house unsafe
916+
was detached from the project. Instead, wgpu got its own in-house unsafe
920917
abstraction called "wgpu-hal" developed within the [wgpu] repository.
921918

922919
The team released [wgpu-0.9] right before this transition, to give the new
923920
graphics infrastructure more time to take shape. At the time of writing,
924921
supported backends on the new HAL include Vulkan, Metal, and OpenGL ES3.
925922

926923
Finally, the testing infrastructure received a major upgrade. It started
927-
rendering the examples on the available adapters and compraring the results
924+
rendering the examples on the available adapters and comparing the results
928925
with reference images.
929926
This includes automatic testing using software adapters on CI.
930927

@@ -933,11 +930,11 @@ This includes automatic testing using software adapters on CI.
933930
[gfx-hal]: https://github.com/gfx-rs/gfx
934931
[wgpu-0.9]: https://crates.io/crates/wgpu/0.9.0
935932
[Family reunion]: https://github.com/gfx-rs/wgpu/milestone/9?closed=1
933+
[WebGPU]: https://www.w3.org/TR/webgpu/
936934

937935
### [rafx]
938936

939937
[![Rafx Flythrough Demo](rafx-flythrough-demo.jpg)][rafx-youtube-video]
940-
941938
_A scene exported via blender with animated camera motion, [watch the demo on youtube][rafx-youtube-video]!_
942939

943940
[Rafx][rafx] is a multi-backend renderer that optionally integrates with the
@@ -968,7 +965,7 @@ community, even if they do not use rafx directly.
968965

969966
### [egui-tetra]
970967

971-
[egui-tetra] ([GitHub][egui-github) by [@tesselode] is a library
968+
[egui-tetra] ([GitHub][egui-github]) by [@tesselode] is a library
972969
that integrates [egui], an immediate mode GUI library,
973970
with [Tetra], a 2D game framework.
974971

@@ -992,18 +989,17 @@ _Discussions:
992989
[midir] to interact with the bevy game engine.
993990

994991
It started out with [bevy_osc] as a
995-
proof-of-concept interfacing with
996-
[nannou_osc]
992+
proof-of-concept interfacing with [nannou_osc]
997993
and using other osc software to communicate with bevy.
998994
Soon, realizing that nannou_osc is not that different
999-
how you interfaces with midi, bevy_midi was born.
995+
from how you interface with midi, bevy_midi was born.
1000996

1001997
Here is one of the examples which you can use a midi controller
1002998
to play piano with [demo_audio].
1003999

1004-
The plugins is still in its infancy.
1000+
The plugin is still in its infancy.
10051001
So it still has some performance issues, so
1006-
any feedback and contributions is highly appreciated.
1002+
any feedback and contributions are highly appreciated.
10071003

10081004
[bevy_midi]: https://github.com/BlackPhlox/bevy_midi
10091005
[bevy_osc]: https://github.com/BlackPhlox/bevy_osc
@@ -1019,13 +1015,13 @@ any feedback and contributions is highly appreciated.
10191015
[bevy_config_cam] by [@BlackPhlox]
10201016
is an all-in-one purpose camera/player controller for bevy.
10211017

1022-
With focus on plug-and-play,flexibility and ease of use, this bevy plugin is
1018+
With focus on plug-and-play, flexibility and ease of use, this bevy plugin is
10231019
for anyone who is prototyping in 3D and doesn't want the hassle of programming
1024-
a player-controller from scratch.Instantly switch between camera modes such as
1020+
a player-controller from scratch. Instantly switch between camera modes such as
10251021
Tracking to Topdown, Follow Behind, FPS and Free and more.
10261022

1027-
The plugins is very new.
1028-
So any feedback and contributions is highly appreciated.
1023+
The plugin is very new.
1024+
So any feedback and contributions are highly appreciated.
10291025

10301026
[bevy_config_cam]: https://github.com/BlackPhlox/bevy_config_cam
10311027
[@BlackPhlox]: https://github.com/BlackPhlox
@@ -1043,31 +1039,36 @@ improved a bit.
10431039

10441040
[assets_manager]: https://github.com/a1phyr/assets_manager
10451041

1046-
## Popular Workgroup Issues in Github
1047-
1048-
<!-- Up to 10 links to interesting issues -->
1049-
1050-
## Meeting Minutes
1051-
1052-
<!-- Up to 10 most important notes + a link to the full details -->
1053-
1054-
[See all meeting issues][label_meeting] including full text notes
1055-
or [join the next meeting][join].
1056-
1057-
[label_meeting]: https://github.com/rust-gamedev/wg/issues?q=label%3Ameeting
1058-
10591042
## Requests for Contribution
10601043

10611044
<!-- Links to "good first issue"-labels or direct links to specific tasks -->
10621045

1063-
## Jobs
1064-
1065-
<!-- An optional section for new jobs related to Rust gamedev -->
1066-
1067-
## Bonus
1068-
1069-
<!-- Bonus section to make the newsletter more interesting
1070-
and highlight events from the past. -->
1046+
- [winit's "difficulty: easy" issues][embark-open-issues] ([embark.rs]).
1047+
- [Backroll-rs, a new networking library][backroll-rs].
1048+
- [Embark's open issues][embark-open-issues] ([embark.rs]).
1049+
- [gfx-rs's "contributor-friendly" issues][gfx-issues].
1050+
- [luminance's "low hanging fruit" issues][luminance-fruits].
1051+
- [ggez's "good first issue" issues][ggez-issues].
1052+
- [Veloren's "beginner" issues][veloren-beginner].
1053+
- [Amethyst's "good first issue" issues][amethyst-issues].
1054+
- [A/B Street's "good first issue" issues][abstreet-issues].
1055+
- [Mun's "good first issue" issues][mun-issues].
1056+
- [SIMple Mechanic's good first issues][simm-issues].
1057+
- [Bevy's "good first issue" issues][bevy-issues].
1058+
1059+
[winit-issues]: https://github.com/rust-windowing/winit/issues?q=is%3Aopen+is%3Aissue+label%3A%22difficulty%3A+easy%22
1060+
[backroll-rs]: https://github.com/HouraiTeahouse/backroll-rs/issues
1061+
[embark.rs]: https://embark.rs
1062+
[embark-open-issues]: https://github.com/search?q=user:EmbarkStudios+state:open
1063+
[gfx-issues]: https://github.com/gfx-rs/gfx/issues?q=is%3Aissue+is%3Aopen+label%3Acontributor-friendly
1064+
[luminance-fruits]: https://github.com/phaazon/luminance-rs/issues?q=is%3Aissue+is%3Aopen+label%3A%22low+hanging+fruit%22
1065+
[ggez-issues]: https://github.com/ggez/ggez/labels/%2AGOOD%20FIRST%20ISSUE%2A
1066+
[veloren-beginner]: https://gitlab.com/veloren/veloren/issues?label_name=beginner
1067+
[amethyst-issues]: https://github.com/amethyst/amethyst/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22
1068+
[abstreet-issues]: https://github.com/a-b-street/abstreet/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22
1069+
[mun-issues]: https://github.com/mun-lang/mun/labels/good%20first%20issue
1070+
[simm-issues]: https://github.com/mkhan45/SIMple-Mechanics/labels/good%20first%20issue
1071+
[bevy-issues]: https://github.com/bevyengine/bevy/labels/good%20first%20issue
10711072

10721073
------
10731074

0 commit comments

Comments
 (0)