11+++
22title = " This Month in Rust GameDev #23 - June 2021"
3- date = 2021-07-01
3+ date = 2021-07-08
44transparent = 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
119monthly newsletter.
1210[ Rust] is a systems language pursuing the trifecta:
1311safety, 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<!--
4640Ideal 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) ) .
130124The player takes control of soldier units and orders them to win the battles
131125from a top down 2D view.
@@ -171,7 +165,7 @@ online multi user dungeons known as muds.
171165The project was birthed in April of 2020 and has come a long way since. It now
172166offers granular scripting access using [ lua] [ lua ] , plugin handling, built in
173167text-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.
190184It was made for this year's Game Maker's Toolkit (GMTK) game jam with the theme
191185joined together and came in the top 25% of over 5800 entries. The game plays
192186over 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
196190The game is written in pure Rust and uses [ agb] [ agblibrary ] to
@@ -259,7 +253,7 @@ other players to join using WebRTC.
259253
260254FishGame started as a [ nakama-rs] showcase, but now it's getting more life as
261255an 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
263257improvements: a new physics system with throwable everything and a new
264258zoom-to-fit camera system.
265259
@@ -272,11 +266,12 @@ zoom-to-fit camera system.
272266![ Hyper Farmer logo] ( hyperfarmer.png )
273267
274268The 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
276270their 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
278272made 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 platformer— without 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
291286talk to NPCs to unravel the mysteries of a world you left behind!
292287
293288Way 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
353348time 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
356351overhauled with lots of new content. Veloren has officially moved fully over to
357352wgpu, which you can read all about in [ blog #125 ] [ veloren-125 ] . Work has been
358353done 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.
442437Made 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
538533line of sight algorithm for 2D games in Rust without using trigonometry or
539534square roots. It includes vector diagrams and typeset math to explain the ideas
540535behind 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.
542537Additionally, the
543538[ repository] ( https://github.com/basstabs/2d-line-of-sight ) contains benchmarks
544539and 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.
595590It 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,
597593including 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
672668Graphite ([ 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
676672Since last newsletter, the editor has received the ability to select layers via
677673the 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
686682viewport.
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
690686suitable of replacing traditional 2D DCC applications. Please
691687[ join the Discord] [ graphite-discord ] - and consider asking for a tour of the
692688code and how you can help!
@@ -704,7 +700,7 @@ _An depth image example_
704700[ texture_generator] by [ Orchaldir] is a library to generate textures,
705701and 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.
750746backroll-rs features an added abstraction for the transportation layer and
751747also provides a bevy plugin, [ bevy-backroll] . GGRS replaces the
752748C-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 ,
754750as 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,
756752with a plethora of internal documentation and explanation.
757753
758754The 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
819815of 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
823819features, 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
826822to [ winit's changelog] .
827823
828824The 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
860856You 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,
912909and 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
915912the 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
920917abstraction called "wgpu-hal" developed within the [ wgpu] repository.
921918
922919The team released [ wgpu-0.9] right before this transition, to give the new
923920graphics infrastructure more time to take shape. At the time of writing,
924921supported backends on the new HAL include Vulkan, Metal, and OpenGL ES3.
925922
926923Finally, 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
928925with reference images.
929926This 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
972969that integrates [ egui] , an immediate mode GUI library,
973970with [ Tetra] , a 2D game framework.
974971
@@ -992,18 +989,17 @@ _Discussions:
992989[ midir] to interact with the bevy game engine.
993990
994991It started out with [ bevy_osc] as a
995- proof-of-concept interfacing with
996- [ nannou_osc]
992+ proof-of-concept interfacing with [ nannou_osc]
997993and using other osc software to communicate with bevy.
998994Soon, 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
1001997Here is one of the examples which you can use a midi controller
1002998to play piano with [ demo_audio] .
1003999
1004- The plugins is still in its infancy.
1000+ The plugin is still in its infancy.
10051001So 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 ]
10201016is 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
10231019for 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
10251021Tracking 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