1
1
+++
2
2
title = " This Month in Rust GameDev #26 - September 2021"
3
3
transparent = true
4
- date = 2021-10-04
5
- draft = true
4
+ date = 2021-10-10
6
5
+++
7
6
8
7
<!-- no toc -->
9
8
10
- <!-- Check the post with markdownlint-->
11
-
12
9
Welcome to the 26th issue of the Rust GameDev Workgroup's
13
10
monthly newsletter.
14
11
[ Rust] is a systems language pursuing the trifecta:
@@ -32,17 +29,17 @@ Feel free to send PRs about your own projects!
32
29
[ Rust ] : https://rust-lang.org
33
30
[ join ] : https://github.com/rust-gamedev/wg#join-the-fun
34
31
35
- - [ Rust GameDev Podcast] ( #rust-gamedev-podcast-6 )
32
+ - [ Rust GameDev Meetup] ( #rust-gamedev-meetup )
33
+ - [ Rust Graphics Meetup \# 1] ( #rust-graphics-meetup-1 )
34
+ - [ Rust GameDev Podcast \# 6] ( #rust-gamedev-podcast-6 )
36
35
- [ Game Updates] ( #game-updates )
37
36
- [ Learning Material Updates] ( #learning-material-updates )
38
37
- [ Engine Updates] ( #engine-updates )
39
38
- [ Tooling Updates] ( #tooling-updates )
40
39
- [ Library Updates] ( #library-updates )
41
40
- [ Popular Workgroup Issues in Github] ( #popular-workgroup-issues-in-github )
42
- - [ Meeting Minutes] ( #meeting-minutes )
43
41
- [ Requests for Contribution] ( #requests-for-contribution )
44
- - [ Jobs] ( #jobs )
45
- - [ Bonus] ( #bonus )
42
+ - [ Discussions] ( #discussions )
46
43
47
44
<!--
48
45
Ideal section structure is:
@@ -74,15 +71,11 @@ The ninth Rust Gamedev Meetup happened in September. You can watch the recording
74
71
of the meetup [ here on Youtube] [ gamedev-meetup-video ] . The meetups take place on
75
72
the second Saturday every month via the [ Rust Gamedev Discord
76
73
server] [ rust-gamedev-discord ] and are also [ streamed on
77
- Twitch] [ rust-gamedev-twitch ] . If you would like to show off what you've been
78
- working on at the next meetup on [ October 9th] [ rust-meetup-oct-time ] , fill out
79
- [ this form] [ gamedev-meetup-form ] .
74
+ Twitch] [ rust-gamedev-twitch ] .
80
75
81
- [ gamedev-meetup-form ] : https://forms.gle/BS1zCyZaiUFSUHxe6
82
76
[ gamedev-meetup-video ] : https://youtu.be/TH3AErcNcTY
83
77
[ rust-gamedev-discord ] : https://discord.gg/yNtPTb2
84
78
[ rust-gamedev-twitch ] : https://twitch.tv/rustgamedev
85
- [ rust-meetup-oct-time ] : https://everytimezone.com/s/aa44ac42
86
79
87
80
## Rust Graphics Meetup \# 1
88
81
@@ -148,7 +141,7 @@ Listen and Subscribe from the following platforms:
148
141
BITGUN ([ Steam] [ bitgun-steam ] , [ Twitter] [ bitgun-twitter ] ,
149
142
[ Discord] [ bitgun-discord ] ) by [ @LogLogGames ] [ bitgun-twitter ] is an action
150
143
roguelike zombie shooter with lots of blood and guns, similar to games like
151
- Hotline Miami, Nuclear Throne and Heat Signature. The game is built using Godot
144
+ Hotline Miami, Nuclear Throne, and Heat Signature. The game is built using Godot
152
145
and Rust (via [ godot-rust] [ bitgun-godot-rust ] ).
153
146
154
147
They recently re-worked the in-game UI using [ egui] [ bitgun-egui ] with
@@ -185,7 +178,7 @@ Development for the web version has moved to the
185
178
[ Veloren] [ veloren ] is an open world, open-source voxel RPG inspired by Dwarf
186
179
Fortress and Cube World.
187
180
188
- In September, Veloren hosted its larges release party ever! At peak, 181 players
181
+ In September, Veloren hosted its largest release party ever! At peak, 181 players
189
182
were playing on the server together. You can read about all the changes to 0.11
190
183
in [ the release blog] [ veloren-011-release-blog ] , and be sure to watch the
191
184
[ release trailer] [ veloren-011-trailer ] ! During the release party, several devs
@@ -195,9 +188,9 @@ and give hope for much larger servers in the future.
195
188
196
189
Shaderc was replaced with Naga early on in the month. This was the result of
197
190
over a year of work. Hitboxes are in the process of being overhauled to handle
198
- non-cylidrical targets better. Improvements were made to how the cursor selects
199
- objects in game. As always, lots of experiemental work is being done to the
200
- economic system. Cultist raiders were added, which mean that raiding parties
191
+ non-cylindrical targets better. Improvements were made to how the cursor selects
192
+ objects in game. As always, lots of experimental work is being done to the
193
+ economic system. Cultist raiders were added, which means that raiding parties
201
194
will now attack nearby settlements. This is a great example of how the realtime
202
195
simulation is starting to become more visible to players.
203
196
@@ -293,7 +286,7 @@ Game made by [@kuviman] for [VimJam 2]. The theme for this jam was "Boss" and
293
286
the limitation was "On The Edge".
294
287
295
288
Monke Pizza is an online multiplayer monke pizza restaurant simulator. You are
296
- always on the edge of being fired. That is * if* you work here. Otherwise you are
289
+ always on the edge of being fired. That is * if* you work here. Otherwise, you are
297
290
on the edge of being hired. Because that is how BOSS is bossing.
298
291
299
292
Made using [ @kuviman ] 's own engine [ geng] .
@@ -374,29 +367,28 @@ Some of the [updates][rpg-cli-releases]:
374
367
375
368
![ supported platforms] ( supported_platforms.svg )
376
369
377
- [ ` good-web-game ` ] has been released on crates.io, together with [ ` ggez ` ] 0.6.1!
378
- ` ggez ` is a lightweight cross-platform game framework for making 2D games
379
- with minimum friction, with an API inspired by Love2D. ` good-web-game ` is a
380
- subset of ggez, which is based upon [ ` miniquad ` ] and can therefore run natively
370
+ [ good-web-game] has been released on crates.io, together with [ ggez] 0.6.1!
371
+ ggez is a lightweight cross-platform game framework for making 2D games
372
+ with minimum friction, with an API inspired by Love2D. good-web-game is a
373
+ subset of ggez, which is based upon [ miniquad] and can therefore run natively
381
374
on the web, mobile and of course desktop as well.
382
375
383
- ` good-web-game ` was originally created to run [ Zemeroth] on the web. However,
384
- as Zemeroth switched from using ` ggez ` to [ ` macroquad ` ] the project was
376
+ good-web-game was originally created to run [ Zemeroth] on the web. However,
377
+ as Zemeroth switched from using ggez to [ macroquad] the project was
385
378
discontinued, until recently. In search of [ a new graphics backend for ggez]
386
379
the ggez team now picked up development again and released a massive update,
387
- updating ` good-web-game ` for compatability to ` ggez ` 0.6, expanding its
380
+ updating good-web-game for compatability to ggez 0.6, expanding its
388
381
functionality.
389
382
390
- With only [ a single change in boilerplate code] many ` ggez ` 0.6 games can now be
391
- directly ported to ` good-web-game ` . Yet, it's no drop in replacement for ` ggez `
383
+ With only [ a single change in boilerplate code] many ggez 0.6 games can now be
384
+ directly ported to good-web-game. Yet, it's no drop in replacement for ggez
392
385
as [ several key differences remain] .
393
386
394
387
[ good-web-game ] : https://github.com/ggez/good-web-game
395
- [ `good-web-game` ] : https://github.com/ggez/good-web-game
396
- [ `ggez` ] : https://github.com/ggez/ggez
397
- [ `miniquad` ] : https://github.com/not-fl3/miniquad
388
+ [ ggez ] : https://github.com/ggez/ggez
389
+ [ miniquad ] : https://github.com/not-fl3/miniquad
398
390
[ Zemeroth ] : https://ozkriff.itch.io/zemeroth
399
- [ ` macroquad` ] : https://github.com/not-fl3/macroquad/
391
+ [ macroquad ] : https://github.com/not-fl3/macroquad/
400
392
[ a new graphics backend for ggez ] : https://github.com/ggez/ggez/issues/962
401
393
[ a single change in boilerplate code ] : https://github.com/PSteinhaus/PSteinhaus.github.io/blob/main/ggez/web-examples/README.md#ggez-animation-example
402
394
[ several key differences remain ] : https://github.com/ggez/good-web-game#differences
@@ -505,14 +497,14 @@ Traditional client-server systems were added and used in the ["Tanks" example][a
505
497
506
498
Clients send only command queue to the server and server sends game world updates
507
499
to the clients. Engine supports multiple players per client.
508
- For example players may be added for each active input device.
500
+ For example, players may be added for each active input device.
509
501
510
502
To allow wide variety of genres player is not attached to one specific entity
511
503
and may control many.
512
504
In RTS player may control all their units and will send commands for each one.
513
505
514
506
Gameplay system that consumes commands doesn't even need to be aware of netcode.
515
- Either way it just drains command queue of an entity and utilizes them.
507
+ Either way, it just drains command queue of an entity and utilizes them.
516
508
That system must not be run on clients at all.
517
509
518
510
[ Arcana] is very early work-in-progress and may not always work
@@ -534,9 +526,9 @@ This month [v0.23 was released][rg3d_0_23_post]. Some of the updates:
534
526
- Physically based rendering (PBR) with metallic workflow.
535
527
- High dynamic range (HDR) rendering pipeline & textures.
536
528
- Custom shaders and materials.
537
- - Emission maps - allows you defining glowing parts using emission map.
529
+ - Emission maps - allows you to define glowing parts using emission map.
538
530
- Gamma correction, manual/auto exposure, and color grading.
539
- - Lots of the editor's improvenents : material editor,
531
+ - Lots of the editor's improvements : material editor,
540
532
unified material pipeline for terrains, improved inspector, etc.
541
533
542
534
Check out the [ blog post] [ rg3d_0_23_post ] or
@@ -561,7 +553,7 @@ highly customizable and user modable action 2D action RPG's using Rust amd JSON.
561
553
562
554
The project started out as a part of the [ Capstone] game but was separated
563
555
as it grew in scope.
564
- It uses JSON files for most of its game data and resources specification,
556
+ It uses JSON files for most of its game data and resources specification
565
557
so that games can be created with very little interaction with the Rust code.
566
558
This has the benefit of making the end product very easy to modify,
567
559
both for non-developers involved in the development process, and by end users.
@@ -619,15 +611,15 @@ If you want to know more, you can check [the tutorial's news page][learn-wgpu-ne
619
611
620
612
![ borderlands save editor] ( borderlands-save.png )
621
613
622
- The [ Borderlands 3 Save Editor] [ borderlands-save-github ] by [ ZakisM] is a tool to
623
- help you modify your Borderlands 3 Saves and Profiles. Currently it runs on
624
- Windows, Mac OS and Linux. It supports modifying PC saves as well as decrypted
625
- PS4 saves (and converting between them). It uses the [ iced GUI
626
- framework ] [ borderlands-iced ] .
614
+ The [ Borderlands 3 Save Editor] [ borderlands-save-github ] by [ ZakisM]
615
+ is a tool to help you modify your Borderlands 3 Saves and Profiles
616
+ written using [ Iced ] . Currently, it runs on Windows, Mac OS and Linux.
617
+ It supports modifying PC saves as well as decrypted PS4 saves
618
+ (and converting between them) .
627
619
628
620
[ ZakisM ] : https://github.com/ZakisM
629
- [ borderlands-iced ] : https://github.com/iced-rs/iced
630
621
[ borderlands-save-github ] : https://github.com/ZakisM/bl3_save_edit
622
+ [ Iced ] : https://github.com/iced-rs/iced
631
623
632
624
## Library Updates
633
625
@@ -664,7 +656,7 @@ The goal is to enable low-latency multiplayer games written in Rust WASM.
664
656
665
657
Matchbox consists of:
666
658
667
- - A tiny signalling server, [ ` matchbox_server ` ] , which acts as a rendezvous
659
+ - A tiny signaling server, [ ` matchbox_server ` ] , which acts as a rendezvous
668
660
point. It helps peers discover each other and deal with NAT traversal in order
669
661
to establish more direct ways of communication.
670
662
- A crate, [ ` matchbox_socket ` ] , which handles connecting to a signalling server
@@ -698,7 +690,7 @@ fallible systems and beautiful syntax.
698
690
The goal of [ Sparsey] is to provide a sparse set-based ECS which fully takes
699
691
advantage of its core data structure. An example of this is component storage
700
692
grouping, a feature which allows getting the best performance possible when
701
- iterating over queries which match certain patterns described by the user, at
693
+ iterating over queries that match certain patterns described by the user, at
702
694
the cost of a performance penalty when inserting or removing components from
703
695
these storages.
704
696
@@ -905,30 +897,55 @@ _Discussions: [/r/rust](https://reddit.com/r/rust/comments/pjlb92/kas_gui_v010)_
905
897
906
898
<!-- Up to 10 links to interesting issues -->
907
899
908
- ## Meeting Minutes
909
-
910
- <!-- Up to 10 most important notes + a link to the full details -->
900
+ - [ rust-gamedev/rust-gamedev.github.io] ( https://github.com/rust-gamedev/rust-gamedev.github.io ) :
901
+ - [ #636 "Better solution for hosting images (or the site as a whole)?"] ( https://github.com/rust-gamedev/rust-gamedev.github.io/issues/636 ) ;
902
+ - [ #785 "Discussions section"] ( https://github.com/rust-gamedev/rust-gamedev.github.io/issues/785 ) .
903
+ - [ rust-gamedev/wg] ( https://github.com/rust-gamedev/wg ) :
904
+ - [ #90 "Rust on Consoles"] ( https://github.com/rust-gamedev/wg/issues/90 ) ;
905
+ - [ #113 "Rust GameDev Community Assets Store"] ( https://github.com/rust-gamedev/wg/discussions/113 ) ;
906
+ - [ #115 "Official WG meeting"] ( https://github.com/rust-gamedev/wg/discussions/115 ) .
911
907
912
- [ See all meeting issues] [ label_meeting ] including full text notes
913
- or [ join the next meeting] [ join ] .
908
+ ## Discussions
914
909
915
- [ label_meeting ] : https://github.com/rust-gamedev/wg/issues?q=label%3Ameeting
910
+ - [ /r/rust_gamedev] ( https://reddit.com/r/rust_gamedev ) :
911
+ - [ "Is WGSL a good choice?"] ( https://reddit.com/r/rust_gamedev/comments/pvbv50/is_wgsl_a_good_choice ) .
912
+ - [ "Unity files patent for ECS in game engines that would probably affect
913
+ many Rust ECS crates, including Bevy's"] ( https://reddit.com/r/rust/comments/pjtpkj/unity_files_patent_for_ecs ) .
916
914
917
915
## Requests for Contribution
918
916
919
917
<!-- Links to "good first issue"-labels or direct links to specific tasks -->
920
918
921
- ## Jobs
922
-
923
- <!-- An optional section for new jobs related to Rust gamedev -->
924
-
925
- ## Bonus
926
-
927
- <!-- Bonus section to make the newsletter more interesting
928
- and highlight events from the past. -->
929
-
930
- <!-- TODO: browse previous newsletter coord-issues and select some cool section
931
- that wasn't written. -->
919
+ - [ Graphite is looking for contributors] [ graphite-contribute ] to help reach
920
+ the 0.1 Alpha release and are participating as a [ Hacktoberfest] project.
921
+ - [ winit's "difficulty: easy" issues] [ winit-issues ] .
922
+ - [ Backroll-rs, a new networking library] [ backroll-rs ] .
923
+ - [ Embark's open issues] [ embark-open-issues ] ([ embark.rs] ).
924
+ - [ wgpu's "help wanted" issues] [ wgpu-issues ] .
925
+ - [ luminance's "low hanging fruit" issues] [ luminance-fruits ] .
926
+ - [ ggez's "good first issue" issues] [ ggez-issues ] .
927
+ - [ Veloren's "beginner" issues] [ veloren-beginner ] .
928
+ - [ Amethyst's "good first issue" issues] [ amethyst-issues ] .
929
+ - [ A/B Street's "good first issue" issues] [ abstreet-issues ] .
930
+ - [ Mun's "good first issue" issues] [ mun-issues ] .
931
+ - [ SIMple Mechanic's good first issues] [ simm-issues ] .
932
+ - [ Bevy's "good first issue" issues] [ bevy-issues ] .
933
+
934
+ [ graphite-contribute ] : https://github.com/GraphiteEditor/Graphite/issues/202
935
+ [ winit-issues ] : https://github.com/rust-windowing/winit/issues?q=is%3Aopen+is%3Aissue+label%3A%22difficulty%3A+easy%22
936
+ [ backroll-rs ] : https://github.com/HouraiTeahouse/backroll-rs/issues
937
+ [ embark.rs ] : https://embark.rs
938
+ [ embark-open-issues ] : https://github.com/search?q=user:EmbarkStudios+state:open
939
+ [ wgpu-issues ] : https://github.com/gfx-rs/wgpu/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22
940
+ [ luminance-fruits ] : https://github.com/phaazon/luminance-rs/issues?q=is%3Aissue+is%3Aopen+label%3A%22low+hanging+fruit%22
941
+ [ ggez-issues ] : https://github.com/ggez/ggez/labels/%2AGOOD%20FIRST%20ISSUE%2A
942
+ [ veloren-beginner ] : https://gitlab.com/veloren/veloren/issues?label_name=beginner
943
+ [ amethyst-issues ] : https://github.com/amethyst/amethyst/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22
944
+ [ abstreet-issues ] : https://github.com/a-b-street/abstreet/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22
945
+ [ mun-issues ] : https://github.com/mun-lang/mun/labels/good%20first%20issue
946
+ [ simm-issues ] : https://github.com/mkhan45/SIMple-Mechanics/labels/good%20first%20issue
947
+ [ bevy-issues ] : https://github.com/bevyengine/bevy/labels/E-Good-First-Issue
948
+ [ Hacktoberfest ] : https://hacktoberfest.digitalocean.com/
932
949
933
950
------
934
951
0 commit comments