1
1
+++
2
2
title = " This Month in Rust GameDev #31 - February 2022"
3
3
transparent = true
4
- date = 2022-03-01
5
- draft = true
4
+ date = 2022-03-10
6
5
+++
7
6
8
7
<!-- no toc -->
@@ -33,18 +32,16 @@ Feel free to send PRs about your own projects!
33
32
34
33
- [ Bevy Jam] ( #bevy-jam-1 )
35
34
- [ Rust GameDev Meetup] ( #rust-gamedev-meetup )
35
+ - [ Rust GameDev Showcase] ( #rust-gamedev-showcase )
36
36
- [ Game Updates] ( #game-updates )
37
37
- [ Learning Material Updates] ( #learning-material-updates )
38
38
- [ Engine Updates] ( #engine-updates )
39
39
- [ Tooling Updates] ( #tooling-updates )
40
40
- [ Library Updates] ( #library-updates )
41
41
- [ Other News] ( #other-news )
42
- - [ Popular Workgroup Issues in Github] ( #popular-workgroup-issues-in-github )
43
- - [ Meeting Minutes] ( #meeting-minutes )
44
42
- [ Discussions] ( #discussions )
45
43
- [ Requests for Contribution] ( #requests-for-contribution )
46
44
- [ Jobs] ( #jobs )
47
- - [ Bonus] ( #bonus )
48
45
49
46
<!--
50
47
Ideal section structure is:
@@ -72,12 +69,12 @@ If needed, a section can be split into subsections with a "------" delimiter.
72
69
73
70
![ Bevy Jam] ( bevy-jam.png )
74
71
75
- The first ever [ Bevy Jam] [ bevy-jam ] just finished! Bevy Jam is a week long event,
72
+ The first- ever [ Bevy Jam] [ bevy-jam ] just finished! Bevy Jam is a week- long event,
76
73
where the goal is to make a game in [ Bevy Engine] [ bevy-engine ] , the free and open-source
77
74
game engine built in Rust.
78
75
79
76
The theme was Unfair Advantage. 431 people joined the jam and 75 teams submitted
80
- entries. A ten day "voting period" has started, which will end on March 14th.
77
+ entries. A ten- day "voting period" has started, which will end on March 14th.
81
78
[ Anyone can play and vote on the submissions] [ bevy-jam-submissions ] .
82
79
83
80
The winning team will receive any two items from the [ Bevy Merch] [ bevy-merch ] store.
@@ -91,7 +88,7 @@ The winning team will receive any two items from the [Bevy Merch][bevy-merch] st
91
88
92
89
![ Gamedev meetup poster] ( gamedev-meetup.png )
93
90
94
- The 13th Rust Gamedev Meetup took place in in February. You can watch the
91
+ The 13th Rust Gamedev Meetup took place in February. You can watch the
95
92
recording of the meetup [ here on Youtube] [ gamedev-meetup-video ] . The meetups
96
93
take place on the second Saturday every month via the [ Rust Gamedev Discord
97
94
server] [ rust-gamedev-discord ] and are also [ streamed on
@@ -103,6 +100,18 @@ Twitch][rust-gamedev-twitch].
103
100
[ gamedev-meetup-form ] : https://forms.gle/BS1zCyZaiUFSUHxe6
104
101
[ rust-meetup-feb-time ] : https://everytimezone.com/s/c1b2eb7b
105
102
103
+ ## Rust GameDev Showcase
104
+
105
+ The Rust Gamedev Working Group is working on a showcase of games made in Rust!
106
+ If you're interested in submitting your own footage, fill out [ this
107
+ form] [ showcase-form ] . You can also read more about the process of creating the
108
+ showcase in the [ showcase discussion on Github] [ showcase-discussion ] . The
109
+ deadline for submissions has been extended until the 19th of February. Hope to
110
+ see your game in there!
111
+
112
+ [ showcase-form ] : https://docs.google.com/forms/d/1MpA7J9BFXAgoCJZJrxi8r4sqzhhYCzCtFo5kXGVOZj4/edit
113
+ [ showcase-discussion ] : https://github.com/rust-gamedev/wg/discussions/121
114
+
106
115
## Game Updates
107
116
108
117
### [ Name Needed] [ name-needed ]
@@ -113,11 +122,11 @@ _The player orders a selection of blocks to be broken, and a brick wall to be
113
122
built._
114
123
115
124
[ Name Needed] [ name-needed ] by [ @DomWilliams0 ] [ domwilliams-github ] is a one-man
116
- effort to produce an open source, intuitive and high performance Dwarf
125
+ effort to produce an open source, intuitive, and high- performance Dwarf
117
126
Fortress-esque game with a custom engine.
118
127
119
128
Recent progress has been on procedural terrain generation, the player UI, item
120
- stacks and build jobs. A major refactor of the AI system integrated Rust's
129
+ stacks, and build jobs. A major refactor of the AI system integrated Rust's
121
130
superb ` async ` /` await ` support, which is documented in the most recent devlog.
122
131
123
132
- [ Devlog #5 : voxel world goals] [ name-needed-devlog5 ]
@@ -187,11 +196,11 @@ The latest release:
187
196
188
197
### [ Dis-order]
189
198
190
- ![ Screenshot of Dis-order] ( dis-order.png )
199
+ ![ Screenshot of Dis-order] ( dis-order.jpg )
191
200
192
201
Dis-order by [ @jkhelsing ] is a short sokoban-esque puzzle game made in 72 hours
193
202
for MiniJam 100. In Dis-order you're making chaos instead of order, you win when
194
- there are are no patterns or order in the level.
203
+ there are no patterns or order in the level.
195
204
196
205
It's made using [ Bevy] [ dis-order-bevy ] and uses [ bevy_smud] [ bevy_smud ] for shape
197
206
rendering, and a compute pass for the [ particle
@@ -238,7 +247,7 @@ release, a [trailer with some of the changes][veloren-012-release-trailer] was
238
247
posted. This release was 5 months in the making, so the changelog is quite
239
248
large. During the release party, the official server reached a cap of 195
240
249
players online at once, which is another record for Veloren. Changes were made
241
- to allow server owners to more easily handle IPv4 and IPv6 connections.
250
+ to allow server owners to handle IPv4 and IPv6 connections.
242
251
Improvements were also made to trading price calculations to properly normalize
243
252
loot tables.
244
253
@@ -307,7 +316,7 @@ The tutorial showcases:
307
316
- essential features of the [ bevy] [ bevy ] engine
308
317
- important ECS notions for beginners
309
318
- WASM build
310
- - and soon, android native apk build
319
+ - and soon, android native APK build
311
320
312
321
_ Discussions: [ Twitter] [ bevy_minesweeper_twitter ] , [ dev.to] [ Bevy Minesweeper ] _
313
322
@@ -365,7 +374,7 @@ build the required GDNative libraries.
365
374
366
375
Bruno Lipovac [ released a blog post] [ Supercharging your Web with Rust and Bevy ]
367
376
that detailed building 3D applications for use on the web with Bevy. It walks
368
- through setting up a Bevy project, and importing some models. It also details
377
+ through setting up a Bevy project and importing some models. It also details
369
378
some more fine-detail items, such as lighting and sky. It then shows how to
370
379
compile the project and serve it.
371
380
@@ -384,10 +393,10 @@ will be a procedural texturing tool.
384
393
This application saw its first public release a month ago, where it added
385
394
support for its first use case: manual channel shuffling.
386
395
387
- The latest version, [ v0.4.0] [ Vismut v0.4.0 ] , brings an all new interface that's
388
- not only prettier, but also much easier to use thanks to ` bevy_egui ` !
396
+ The latest version, [ v0.4.0] [ Vismut v0.4.0 ] , brings an all- new interface that's
397
+ not only prettier but also much easier to use thanks to ` bevy_egui ` !
389
398
390
- Upcoming versions will turn it into a fully featured node based procedural
399
+ Upcoming versions will turn it into a fully- featured node- based procedural
391
400
texturing tool. [ Read the introduction] [ Vismut Introduction ]
392
401
on the author's blog for more information.
393
402
@@ -403,7 +412,7 @@ on the author's blog for more information.
403
412
![ Blackjack: Showcase of the new catmull-clark subdivision] ( blackjack.gif )
404
413
405
414
[ Blackjack] by @setzer22 is a new procedural modeling application made in Rust,
406
- using rend3, wgpu and egui. It follows the steps of applications like
415
+ using rend3, wgpu, and egui. It follows the steps of applications like
407
416
Houdini, or Blender's geometry nodes project and provides a node-based
408
417
environment to compose procedural recipes to create 3d models.
409
418
@@ -437,7 +446,7 @@ supercharges your layer stack, providing a completely non-destructive editing
437
446
experience.
438
447
439
448
After officially launching the alpha version last month, work has progressed
440
- designing the node graph system. Also, the team has spent this month adding
449
+ in designing the node graph system. Also, the team has spent this month adding
441
450
polish to the application and continuing work on more website content.
442
451
443
452
A new editor feature is the Gradient tool which makes it possible to add some
@@ -462,7 +471,7 @@ Check out the [new website][graphite-website], try the
462
471
### [ vach]
463
472
464
473
[ vach] is an archiving file format developed from the ground up for games and
465
- other realtime applications by [ @zeskeertwee ] and [ @sokorototo ] . It is
474
+ other real-time applications by [ @zeskeertwee ] and [ @sokorototo ] . It is
466
475
written in pure Rust.
467
476
468
477
Its primary objectives (in no particular order) are:
@@ -477,12 +486,12 @@ Its primary objectives (in no particular order) are:
477
486
- Be as compact as possible - the smallest valid archive is only 13 bytes.
478
487
- Each entry has some metadata attached to it - this is implemented using
479
488
bitflags and up to 8 bits are free to the user.
480
- - Has mutlithreaded implementations of both the loader and the writer.
489
+ - Has multithreaded implementations of both the loader and the writer.
481
490
482
- A [ CLI] [ vach-cli ] is allowing one to use vach as a general purpose archive
491
+ A [ CLI] [ vach-cli ] is allowing one to use vach as a general- purpose archive
483
492
format. The CLI is fully multithreaded, allowing for insane un/packing speeds.
484
493
485
- Feel free to drop into the [ repo] [ vach ] and open an issue, pull request or
494
+ Feel free to drop into the [ repo] [ vach ] and open an issue, pull request, or
486
495
drop a star 🌟. It helps maintain momentum in the project.
487
496
488
497
[ vach ] : https://github.com/zeskeertwee/vach
@@ -495,7 +504,7 @@ drop a star 🌟. It helps maintain momentum in the project.
495
504
![ Sparsey] ( sparsey.png )
496
505
497
506
[ Sparsey] by [ @LechintanTudor ] is a sparse set-based Entity Component System
498
- with beautiful and concise syntax.
507
+ with a beautiful and concise syntax.
499
508
500
509
The biggest change in this release was the removal of component change detection
501
510
which had a significant impact on performance and memory usage. As a result,
@@ -515,16 +524,16 @@ improvement allowing systems to be added to schedules without having to call
515
524
![ Encase Logo] ( ./encase.svg )
516
525
517
526
[ Encase] ([ docs.rs] , [ crates.io] ) by [ @teoxoy ] is a new library
518
- that provides a mechanism to lay out data into GPU buffers
527
+ that provides a mechanism to layout data into GPU buffers
519
528
according to [ WGSL's memory layout] rules.
520
529
521
530
Features
522
531
523
532
- supports all WGSL [ host-shareable types] + wrapper types
524
533
(` &T ` , ` &mut T ` , ` Box<T> ` , ...)
525
534
- extensible by design; most traits can be easily implemented
526
- for user defined types via macros (see [ design] )
527
- - built in support for data types from a multitude of crates
535
+ for user- defined types via macros (see [ design] )
536
+ - built- in support for data types from a multitude of crates
528
537
(enabled via [ features] )
529
538
- covers a wide area of use cases (see [ examples] )
530
539
@@ -571,12 +580,12 @@ your own multimedia app on top of it without worrying too much about
571
580
platform-specific code.
572
581
573
582
The main goal is to provide a set of APIs and tools that can be used to create
574
- your project in an ergonomic manner without enforcing any structure or pattern,
583
+ your project ergonomically without enforcing any structure or pattern,
575
584
always trying to stay out of your way. The idea is that you can use it as a
576
- foundation layer or backend for your next app, game engine or game.
585
+ foundation layer or backend for your next app, game engine, or game.
577
586
578
- This first version comes with windowing, input and rendering support on MacOS,
579
- Linux, Windows and Web. Behind feature flags you can use a fast 2D renderer,
587
+ This first version comes with windowing, input, and rendering support on MacOS,
588
+ Linux, Windows, and Web. Behind feature flags, you can use a fast 2D renderer,
580
589
text rendering, and [ egui] integration.
581
590
582
591
You can try [ Notan] by adding it to your ` Cargo.toml ` -> ` notan = "0.1.0" ` or
@@ -608,40 +617,109 @@ current and planned functionality.
608
617
[ Bevy ] : https://github.com/bevyengine/bevy
609
618
[ @nikl_me ] : https://twitter.com/nikl_me
610
619
611
- ## Popular Workgroup Issues in Github
620
+ ## Discussions
612
621
613
- <!-- Up to 10 links to interesting issues -->
622
+ <!-- Links to handpicked reddit/twitter/urlo/etc threads that provide
623
+ useful information -->
624
+
625
+ - [ /r/bevy] ( https://www.reddit.com/r/bevy/ ) :
626
+ - [ "Recommended Bevy/ECS Project Structure/Conventions"]
627
+ - [ /r/rust_gamedev] ( https://www.reddit.com/r/rust_gamedev/ ) :
628
+ - [ "Which is a better game engine to start with as a beginner"]
629
+ - [ gamedev wg] ( https://github.com/rust-gamedev/wg )
630
+ - [ #121 Rust Gamedev Showcase]
631
+ - [ #122 Length of meetups]
632
+ - [ #119 Engine benchmark repo]
633
+
634
+ [ "Recommended Bevy/ECS Project Structure/Conventions" ] : https://reddit.com/r/bevy/comments/sikrv1/recommended_bevyecs_project_structureconventions
635
+ [ "Which is a better game engine to start with as a beginner" ] : https://reddit.com/r/rust_gamedev/comments/stcnx0/which_is_a_better_game_engine_to_start_with
636
+ [ #121 Rust Gamedev Showcase ] : https://github.com/rust-gamedev/wg/discussions/121
637
+ [ #122 Length of meetups ] : https://github.com/rust-gamedev/wg/discussions/122
638
+ [ #119 Engine benchmark repo ] : https://github.com/rust-gamedev/wg/discussions/119
614
639
615
640
## Other News
616
641
617
642
<!-- One-liners for plan items that haven't got their own sections. -->
618
643
619
- ## Meeting Minutes
620
-
621
- <!-- Up to 10 most important notes + a link to the full details -->
622
-
623
- [ See all meeting issues] [ label_meeting ] including full text notes
624
- or [ join the next meeting] [ join ] .
625
-
626
- [ label_meeting ] : https://github.com/rust-gamedev/wg/issues?q=label%3Ameeting
627
-
628
- ## Discussions
629
-
630
- <!-- Links to handpicked reddit/twitter/urlo/etc threads that provide
631
- useful information -->
644
+ - Other game updates:
645
+ - [ Fish Fight] introduced mod loading.
646
+ - [ vange-rs] published a blog post about using Emscripten with Rust.
647
+ - [ makiomino.fun] introduced a new level-up animation.
648
+ - [ country-slice] added shadows and the ability to adjust wall height.
649
+ - [ flesh] has a new animation for the mid-boss.
650
+ - [ Rustenstein 3D: Game programming like it's 1992] is an article walking
651
+ through creating a Wolfenstein-like game in Rust.
652
+ - [ Making a 3D Super Munchers Clone with Bevy] is a video walkthrough of
653
+ creating a 3D game in Bevy.
654
+ - [ Vulkan with Rust by example] is the latest post in a series about using Vulkan
655
+ with Rust.
656
+ - [ Fyrox] got assets to hot-reload.
657
+ - [ Hotham] released a video demo of the engine.
658
+ - [ godot-rust] introduced C#-style properties.
659
+ - [ cosync] is a single-threaded executor for deferred async code for games.
660
+ - [ SPIR-Q v0.5] was released after two years of v0.4 maintenance.
661
+ - [ egui 0.17.0] was released, with custom text styles, any-sized fonts, and
662
+ much more.
663
+ - [ sparticles-rs] is a particle system generator.
664
+ - [ blender_bevy_toolkit] is making process in opening Blender files in Bevy.
665
+
666
+ [ Fish Fight ] : https://reddit.com/r/rust_gamedev/comments/sokjon/fish_fight_v041_mod_loading
667
+ [ vange-rs ] : https://caiiiycuk.medium.com/vangers-3d-example-of-using-emscripten-in-rust-720ee8099d72
668
+ [ makiomino.fun ] : https://twitter.com/makiomino/status/1496252771909218308
669
+ [ country-slice ] : https://twitter.com/anastasiaopara/status/1492429686294683653
670
+ [ flesh ] : https://twitter.com/Im_Oab/status/1490576387589427200
671
+ [ Rustenstein 3D: Game programming like it's 1992 ] : https://tech.nextroll.com/blog/dev/2022/02/02/rustenstein.html
672
+ [ Making a 3D Super Munchers Clone with Bevy ] : https://youtube.com/watch?v=oee3Z69sE-8
673
+ [ Vulkan with Rust by example ] : https://nikitablack.github.io/post/vulkan_with_rust_by_example_6_fixing_depth/
674
+ [ Fyrox ] : https://reddit.com/r/rust_gamedev/comments/sm34s6/media_finally_got_assets_hot_reloading_working_in
675
+ [ Hotham ] : https://reddit.com/r/rust_gamedev/comments/st4vp1/media_hotham_vr_engine_demo
676
+ [ godot-rust ] : https://twitter.com/GodotRust/status/1490282777039753218
677
+ [ cosync ] : https://github.com/sanbox-irl/cosync
678
+ [ SPIR-Q v0.5 ] : https://reddit.com/r/rust_gamedev/comments/sr7nnr/spirq_v05_cleaner_api
679
+ [ egui 0.17.0 ] : https://twitter.com/ernerfeldt/status/1496200805212475396
680
+ [ sparticles-rs ] : https://youtube.com/watch?v=dyxlfOyW90Q
681
+ [ blender_bevy_toolkit ] : https://reddit.com/r/rust_gamedev/comments/sredt1/blender_bevy_pipeline_progress
632
682
633
683
## Requests for Contribution
634
684
635
685
<!-- Links to "good first issue"-labels or direct links to specific tasks -->
636
686
687
+ - [ Graphite is looking for contributors] [ graphite-contribute ] to help build the
688
+ new node graph and 2D rendering systems.
689
+ - [ winit's "difficulty: easy" issues] [ winit-issues ] .
690
+ - [ Backroll-rs, a new networking library] [ backroll-rs ] .
691
+ - [ Embark's open issues] [ embark-open-issues ] ([ embark.rs] ).
692
+ - [ wgpu's "help wanted" issues] [ wgpu-issues ] .
693
+ - [ luminance's "low hanging fruit" issues] [ luminance-fruits ] .
694
+ - [ ggez's "good first issue" issues] [ ggez-issues ] .
695
+ - [ Veloren's "beginner" issues] [ veloren-beginner ] .
696
+ - [ Amethyst's "good first issue" issues] [ amethyst-issues ] .
697
+ - [ A/B Street's "good first issue" issues] [ abstreet-issues ] .
698
+ - [ Mun's "good first issue" issues] [ mun-issues ] .
699
+ - [ SIMple Mechanic's good first issues] [ simm-issues ] .
700
+ - [ Bevy's "good first issue" issues] [ bevy-issues ] .
701
+
702
+ [ graphite-contribute ] : https://github.com/GraphiteEditor/Graphite/issues/202
703
+ [ winit-issues ] : https://github.com/rust-windowing/winit/issues?q=is%3Aopen+is%3Aissue+label%3A%22difficulty%3A+easy%22
704
+ [ backroll-rs ] : https://github.com/HouraiTeahouse/backroll-rs/issues
705
+ [ embark.rs ] : https://embark.rs
706
+ [ embark-open-issues ] : https://github.com/search?q=user:EmbarkStudios+state:open
707
+ [ wgpu-issues ] : https://github.com/gfx-rs/wgpu/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22
708
+ [ luminance-fruits ] : https://github.com/phaazon/luminance-rs/issues?q=is%3Aissue+is%3Aopen+label%3A%22low+hanging+fruit%22
709
+ [ ggez-issues ] : https://github.com/ggez/ggez/labels/%2AGOOD%20FIRST%20ISSUE%2A
710
+ [ veloren-beginner ] : https://gitlab.com/veloren/veloren/issues?label_name=beginner
711
+ [ amethyst-issues ] : https://github.com/amethyst/amethyst/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22
712
+ [ abstreet-issues ] : https://github.com/a-b-street/abstreet/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22
713
+ [ mun-issues ] : https://github.com/mun-lang/mun/labels/good%20first%20issue
714
+ [ simm-issues ] : https://github.com/mkhan45/SIMple-Mechanics/labels/good%20first%20issue
715
+ [ bevy-issues ] : https://github.com/bevyengine/bevy/labels/E-Good-First-Issue
716
+
637
717
## Jobs
638
718
639
719
<!-- An optional section for new jobs related to Rust gamedev -->
640
720
641
- ## Bonus
642
-
643
- <!-- Bonus section to make the newsletter more interesting
644
- and highlight events from the past. -->
721
+ - [ Embark Studios] ( https://careers.embark-studios.com/jobs )
722
+ (Stockholm/Hybrid Remote) - Various roles
645
723
646
724
------
647
725
0 commit comments