1
1
+++
2
2
title = " This Month in Rust GameDev #22 - May 2021"
3
- date = 2021-06-01
3
+ date = 2021-06-09
4
4
transparent = true
5
- draft = true
6
5
+++
7
6
8
7
Welcome to the 22nd issue of the Rust GameDev Workgroup's
@@ -31,12 +30,9 @@ Feel free to send PRs about your own projects!
31
30
- [ Game Updates] ( #game-updates )
32
31
- [ Learning Material Updates] ( #learning-material-updates )
33
32
- [ Engine Updates] ( #engine-updates )
34
- - [ Library & Tooling Updates] ( #library-tooling-updates )
35
- - [ Popular Workgroup Issues in Github] ( #popular-workgroup-issues-in-github )
36
- - [ Meeting Minutes] ( #meeting-minutes )
33
+ - [ Tooling Updates] ( #tooling-updates )
34
+ - [ Library Updates] ( #library-updates )
37
35
- [ Requests for Contribution] ( #requests-for-contribution )
38
- - [ Jobs] ( #jobs )
39
- - [ Bonus] ( #bonus )
40
36
41
37
<!--
42
38
Ideal section structure is:
@@ -197,7 +193,7 @@ Project YAWC ([Twitter](https://twitter.com/ProjectYawc)) is a turn-based
197
193
strategy game built in GGEZ, being developed by junkmail.
198
194
199
195
May saw the release of Alpha 5.4, including interface improvements,
200
- balance changes, new units, new maps and netcode improvements.
196
+ balance changes, new units, new maps, and netcode improvements.
201
197
202
198
An [ alpha access request form] ( https://forms.gle/w22ohPGNk58fo9bv6 ) is available,
203
199
if you want to try it out.
@@ -218,7 +214,7 @@ interface:
218
214
an area with different music.
219
215
- In-game UI is now functional including a new start menu and a simple settings
220
216
menu to toggle the CRT filter and pixel aspect ratio.
221
- - The web- player now has a simple loading icon instead of a solid black screen.
217
+ - The web player now has a simple loading icon instead of a solid black screen.
222
218
223
219
The web version was re-built and published under a new link so you can [ try it
224
220
in your browser] [ bounty_bros_webgame ] .
@@ -239,7 +235,7 @@ that [Emerald] needed to be tested to ensure it can withstand cross
239
235
publishing.
240
236
This means creating a smaller game in the
241
237
engine in order to figure out the publishing process for
242
- Steam, Itch, Nintendo Switch, etc. and guarantee it's viable .
238
+ Steam, Itch, Nintendo Switch, and guarantee its viability .
243
239
244
240
This resulted in the birth of [ Harvest Hero Origins] , a small wave
245
241
defense arcade game with local co-op! Join the [ Gemdrop Games Discord]
@@ -261,7 +257,7 @@ Features:
261
257
262
258
![ Animation showing Bibi, the main protagonist of Outer Wonders,
263
259
starting from the top entrance of a puzzle, rolling from obstacle
264
- to obstacle, leaning on on bushes, flowers and trees to reach
260
+ to obstacle, leaning on bushes, flowers, and trees to reach
265
261
the bottom exit of the puzzle] ( outer-wonders.gif )
266
262
267
263
[ Outer Wonders] is a colorful, pixel art, puzzle-based adventure game
@@ -329,12 +325,12 @@ _The Blast Repeller item pushes blasts away from the player_
329
325
[ Theta Wave] is an open-source space shooter game by developers [ @micah_tigley] and
330
326
[ @carlosupina ] . It is one of the showcase games for the [ Amethyst Engine] . In
331
327
the past month, the [ "Loot"] update was released which enhanced how loot drops
332
- are rolled, spawned, and how their effects are applied to the game. The Loot update
333
- also added an attraction system which allows for entities to repel or attract
328
+ are rolled, spawned, and how their effects are applied to the game. The Loot Update
329
+ also added an attraction system that allows for entities to repel or attract
334
330
other entities.
335
331
336
332
Now an [ "Organization"] update is in progress for Theta Wave. This update will
337
- divide Theta Wave into two workspaces, a library and a binary. This update will also
333
+ divide Theta Wave into two workspaces; a library and a binary. This update will also
338
334
add documentation comments for all of the library's features.
339
335
340
336
[ Theta Wave ] : https://github.com/amethyst/theta-wave
@@ -356,7 +352,7 @@ month, versions 0.6.4 and 0.6.5 were released, featuring:
356
352
- Methods for reading textures back to the CPU (e.g. for screenshots)
357
353
- Support for passing slices/arrays as shader uniforms
358
354
- More utility methods for working with high-DPI displays
359
- - Various bugfixes and docs improvements
355
+ - Various bug fixes and docs improvements
360
356
361
357
For more details, see the [ changelog] [ tetra-changelog ] .
362
358
@@ -367,7 +363,7 @@ For more details, see the [changelog][tetra-changelog].
367
363
368
364
![ rustcraft-img] ( rustcraft.png )
369
365
370
- [ Rustcraft] [ rustcraft ] by [ @dskart ]
366
+ [ Rustcraft] [ rustcraft ] by @dskart
371
367
is a simple Minecraft engine written in Rust using wgpu.
372
368
373
369
It handles infinite world generation using gradient noise as well as placing
@@ -402,7 +398,7 @@ rusty-editor updates:
402
398
- Context menu for world outliner items
403
399
- Terrain editor
404
400
- Grid snapping for Move interaction mode
405
- - Fixes for Move interaction mode in case of compex hierarchies
401
+ - Fixes for Move interaction mode in case of complex hierarchies
406
402
- Continuous integration
407
403
- Settings window refactoring + improvements
408
404
- Box selection mode bug fixes
@@ -412,6 +408,31 @@ rusty-editor updates:
412
408
[ rg3d_twitter ] : https://twitter.com/DmitryNStepanov
413
409
[ rg3d_terrain_reddit ] : https://www.reddit.com/r/rust/comments/nlnfdb/timelapse_of_terrain_editing_in_rustyeditor_which/
414
410
411
+ ### [ Nestadia] [ nestadia ]
412
+
413
+ ![ Zelda running on Nestadia] ( nestadia.png )
414
+
415
+ [ Nestadia] [ nestadia ] by @zer0x64 , @junior-n30 and @CBenoit is a
416
+ server-based NES emulator.
417
+
418
+ Nestadia was written as a reverse engineering and memory exploitation challenge
419
+ for NorthSec CTF 2021, a cybersecurity competition. Contestants were required to
420
+ reverse-engineer the emulator and ultimately write a Tool Assisted Speedrun to
421
+ run arbitrary code inside a provided ROM.
422
+
423
+ After the competition, the code was open-sourced and cleaned up to remove
424
+ references to the competition. The developers intend on fixing more bugs and
425
+ adding more features in the near future.
426
+
427
+ Some interesting features of this emulator are its server-based nature, and the
428
+ no_std core which means that the emulator can be built and ran pretty much
429
+ anywhere without much work.
430
+
431
+ Incoming improvements include online multiplayer, sound, a WASM port, porting to
432
+ a libretro core, and using wgpu instead of sdl for the native GUI and debugger.
433
+
434
+ [ nestadia ] : https://github.com/zer0x64/nestadia
435
+
415
436
## Learning Material Updates
416
437
417
438
### [ Learn WGPU Updated to wgpu 0.8 and WGSL] [ learn-wgpu-news ]
@@ -435,7 +456,7 @@ Checkout more at [here][learn-wgpu-news].
435
456
how he made a voxel engine written in Rust using wgpu.
436
457
437
458
Currently voxel rendering, chunk management, flying camera,
438
- and simple lightning are implemented.
459
+ and simple lightning is implemented.
439
460
The source code is released on [ github] [ voxel_engine_github ] .
440
461
441
462
_ Discussions:
@@ -469,7 +490,7 @@ game jam, so he chose a simple theme: digging.
469
490
470
491
20 hours later, he had a full-fledged MMO - complete with hackers!
471
492
472
- _ Discussion: [ r/rust_gamedev] ( https://www.reddit.com/r/rust_gamedev/comments/nhdwky/i_used_rust_to_make_an_mmo_in_48_hours_for/?utm_source=share&utm_medium=web2x&context=3 ) _
493
+ _ Discussion: [ r/rust_gamedev] ( https://www.reddit.com/r/rust_gamedev/comments/nhdwky/i_used_rust_to_make_an_mmo_in_48_hours_for ) _
473
494
474
495
[ ld48-mmo] :
475
496
https://kuviman.itch.io/dig-world/devlog/255566/so-i-made-an-mmo-in-48-hours
@@ -500,7 +521,41 @@ _Discussion: [Twitter][2048-bevy-twitter]_
500
521
[ 2048-bevy-twitter ] : https://twitter.com/chrisbiscardi/status/1397291221702254595
501
522
[ @chrisbiscardi ] : https://twitter.com/chrisbiscardi
502
523
503
- ## Library & Tooling Updates
524
+ ## Tooling Updates
525
+
526
+ ### [ Graphite] [ graphite-repo ]
527
+
528
+ ![ Piet Mondrian's artwork replicated in Graphite using the new color picker] ( graphite-piet.png )
529
+ _ Piet Mondrian's artwork replicated in Graphite using the new color picker_
530
+
531
+ Graphite ([ GitHub] [ graphite-repo ] , [ Discord] [ graphite-discord ] ,
532
+ [ Twitter] ( https://twitter.com/GraphiteEditor ) ) is an in-development vector and
533
+ raster graphics editor built on a nondestructive node-based workflow.
534
+
535
+ In the past month, new frontend features have mostly closed the gap for a
536
+ visually complete UI while a major Rust backend refactor took place.
537
+
538
+ A new frontend system for floating menus was added to draw menus over the UI,
539
+ like dropdown menu input widgets and popovers to display the new color picker.
540
+ Also, the application menu bar was built with working buttons for the new Undo
541
+ and Export SVG actions.
542
+
543
+ A large refactor in the Rust backend created a simpler communication strategy
544
+ between all components in the software stack and a standard method of handling
545
+ user inputs.
546
+
547
+ [ Try it right now in your browser.] [ graphite-live-demo ] Graphite is making
548
+ rapid progress towards becoming a non-destructive, procedural graphics editor
549
+ suitable for replacing traditional 2D DCC applications. Please
550
+ [ join the Discord] [ graphite-discord ] - and consider asking for a tour of the
551
+ code and how you can help!
552
+
553
+ [ graphite-repo ] : https://github.com/GraphiteEditor/Graphite
554
+ [ graphite-discord ] : https://github.com/GraphiteEditor/Graphite/blob/master/README.md#discord
555
+ [ graphite-twitter ] : https://twitter.com/GraphiteEditor
556
+ [ graphite-live-demo ] : https://editor.graphite.design/
557
+
558
+ ## Library Updates
504
559
505
560
### [ Dimforge] [ dimforge ]
506
561
@@ -609,9 +664,9 @@ This project was released under the [Katharos License][katharos_license]. This
609
664
license has moral and ethical implications that you may or may not agree with,
610
665
so please read it before making use of this project.
611
666
612
- In the last two months Bevy Retro has gained a few new features, the biggest of
613
- which being an integration with the [ RAUI] UI library ( also featured in this
614
- newsletter ), allowing you to design fully-fledged user interface for Bevy Retro
667
+ In the last two months, Bevy Retro has gained a few new features, the biggest of
668
+ which is an integration with the [ RAUI] UI library ( also featured in this
669
+ newsletter ), allowing you to design a fully-fledged user interface for Bevy Retro
615
670
games. Additional features added were:
616
671
617
672
- A simple sound playing API
@@ -636,8 +691,8 @@ _A preview to version 0.5 with furniture_
636
691
[ Texture Generator] by [ Orchaldir] is a library to generate textures,
637
692
and a library to use those textures to render tilemaps.
638
693
Both libraries can generate color & depth images and
639
- support post processing effects like lighting & ambient occlusion.
640
- For randomness the instance id (e.g. the 145th brick) and/or the tile id are hashed.
694
+ support post- processing effects like lighting & ambient occlusion.
695
+ For randomness, the instance id (e.g. the 145th brick) and/or the tile id are hashed.
641
696
642
697
The [ current release] focuses on furniture.
643
698
@@ -662,39 +717,14 @@ inserted into Bevy's ECS as resources. Afterwards, the `AssetLoader` will
662
717
switch into a second configurable app state. At this point, your app can use
663
718
the asset collections that now contain loaded asset handles.
664
719
665
- Currently, a single file always corresponds to one asset and more complex
720
+ Currently, a single file always corresponds to one asset, and more complex
666
721
assets like e.g. ` TextureAtlas ` are not yet supported. There are plans to
667
722
extend the ` asset ` attribute to allow loading more complex assets. Stay tuned!
668
723
669
724
[ bevy_asset_loader ] : https://github.com/NiklasEi/bevy_asset_loader
670
725
[ bevy ] : https://github.com/bevyengine/bevy
671
726
[ @nikl_me ] : https://twitter.com/nikl_me
672
727
673
- ### [ Nestadia] [ nestadia ]
674
-
675
- ![ Zelda running on Nestadia] ( nestadia.png )
676
-
677
- [ Nestadia] [ nestadia ] by [ @zer0x64 ] , [ @junior-n30 ] and [ @CBenoit ] is a
678
- server-based NES emulator.
679
-
680
- Nestadia was written as a reverse engineering and memory exploitation challenge
681
- for NorthSec CTF 2021, a cybersecurity competition. Contestants were required to
682
- reverse-engineer the emulator and ultimately write a Tool Assisted Speedrun to
683
- run arbitrary code inside a provided ROM.
684
-
685
- After the competition, the code was open-sourced and cleaned up to remove
686
- references to the competition. The developers intend on fixing more bugsand
687
- adding more features in the near future.
688
-
689
- Some interesting features of this emulator are its server-based nature, and the
690
- no_std core which means that the emulator can be built and ran pretty much
691
- anywhere without much work.
692
-
693
- Incoming improvements include online multiplayer, sound, a WASM port, porting to
694
- a libretro core, and using wgpu instead of sdl for the native GUI and debugger.
695
-
696
- [ nestadia ] : https://github.com/zer0x64/nestadia
697
-
698
728
### [ tobj] [ tobj ]
699
729
700
730
` tobj ` by [ @Twinklebear ] and [ @virtualritz ] is a simple and lightweight
@@ -707,7 +737,7 @@ more advanced importer functionality required for offline rendering,
707
737
simulation, and modeling applications, through recent work by [ @virtualritz ] .
708
738
These features provide support for merging vertices to avoid discontinuities
709
739
in simulation packages and reordering vertices to allow omitting the
710
- index buffer. This features have been added while preserving the original
740
+ index buffer. These features have been added while preserving the original
711
741
lightweight API design goal of ` tobj ` , making it a useful crate for a range of
712
742
applications loading with OBJ files.
713
743
@@ -716,38 +746,6 @@ applications loading with OBJ files.
716
746
[ @virtualritz ] : https://github.com/virtualritz
717
747
[ @syoyo ] : https://github.com/syoyo
718
748
719
- ### [ Graphite] [ graphite-repo ]
720
-
721
- ![ Piet Mondrian's artwork replicated in Graphite using the new color picker] ( graphite-piet.png )
722
- _ Piet Mondrian's artwork replicated in Graphite using the new color picker_
723
-
724
- Graphite ([ GitHub] [ graphite-repo ] , [ Discord] [ graphite-discord ] ,
725
- [ Twitter] ( https://twitter.com/GraphiteEditor ) ) is an in-development vector and
726
- raster graphics editor built on a nondestructive node-based workflow.
727
-
728
- In the past month, new frontend features have mostly closed the gap for a
729
- visually-complete UI while a major Rust backend refactor took place.
730
-
731
- A new frontend system for floating menus was added to draw menus over the UI,
732
- like dropdown menu input widgets and popovers to display the new color picker.
733
- Also the application menu bar was built with working buttons for the new Undo
734
- and Export SVG actions.
735
-
736
- A large refactor in the Rust backend created a simpler communication strategy
737
- between all components in the software stack and a standard method of handling
738
- user inputs.
739
-
740
- [ Try it right now in your browser.] [ graphite-live-demo ] Graphite is making
741
- rapid progress towards becoming a nondestructive, procedural graphics editor
742
- suitable of replacing traditional 2D DCC applications. Please
743
- [ join the Discord] [ graphite-discord ] - and consider asking for a tour of the
744
- code and how you can help!
745
-
746
- [ graphite-repo ] : https://github.com/GraphiteEditor/Graphite
747
- [ graphite-discord ] : https://github.com/GraphiteEditor/Graphite/blob/master/README.md#discord
748
- [ graphite-twitter ] : https://twitter.com/GraphiteEditor
749
- [ graphite-live-demo ] : https://editor.graphite.design/
750
-
751
749
### [ Libfive] [ libfive ]
752
750
753
751
![ CSG difference operation with a sphere and three cylinders] ( libfive.png )
@@ -792,31 +790,34 @@ with zero-cost abstraction.
792
790
[ nvtx-rs ] : https://github.com/simbleau/nvtx-rs
793
791
[ @simbleau ] : https://github.com/simbleau
794
792
795
- ## Popular Workgroup Issues in Github
796
-
797
- <!-- Up to 10 links to interesting issues -->
798
-
799
- ## Meeting Minutes
800
-
801
- <!-- Up to 10 most important notes + a link to the full details -->
802
-
803
- [ See all meeting issues] [ label_meeting ] including full text notes
804
- or [ join the next meeting] [ join ] .
805
-
806
- [ label_meeting ] : https://github.com/rust-gamedev/wg/issues?q=label%3Ameeting
807
-
808
793
## Requests for Contribution
809
794
810
- <!-- Links to "good first issue"-labels or direct links to specific tasks -->
811
-
812
- ## Jobs
813
-
814
- <!-- An optional section for new jobs related to Rust gamedev -->
815
-
816
- ## Bonus
817
-
818
- <!-- Bonus section to make the newsletter more interesting
819
- and highlight events from the past. -->
795
+ <!-- https://www.reddit.com/r/rust_gamedev/search?q=help&restrict_sr=1 -->
796
+
797
+ - [ Backroll-rs, a new networking library] [ backroll-rs ] .
798
+ - [ Embark's open issues] [ embark-open-issues ] ([ embark.rs] ).
799
+ - [ gfx-rs's "contributor-friendly" issues] [ gfx-issues ] .
800
+ - [ luminance's "low hanging fruit" issues] [ luminance-fruits ] .
801
+ - [ ggez's "good first issue" issues] [ ggez-issues ] .
802
+ - [ Veloren's "beginner" issues] [ veloren-beginner ] .
803
+ - [ Amethyst's "good first issue" issues] [ amethyst-issues ] .
804
+ - [ A/B Street's "good first issue" issues] [ abstreet-issues ] .
805
+ - [ Mun's "good first issue" issues] [ mun-issues ] .
806
+ - [ SIMple Mechanic's good first issues] [ simm-issues ] .
807
+ - [ Bevy's "good first issue" issues] [ bevy-issues ] .
808
+
809
+ [ backroll-rs ] : https://github.com/HouraiTeahouse/backroll-rs/issues
810
+ [ embark.rs ] : https://embark.rs
811
+ [ embark-open-issues ] : https://github.com/search?q=user:EmbarkStudios+state:open
812
+ [ gfx-issues ] : https://github.com/gfx-rs/gfx/issues?q=is%3Aissue+is%3Aopen+label%3Acontributor-friendly
813
+ [ luminance-fruits ] : https://github.com/phaazon/luminance-rs/issues?q=is%3Aissue+is%3Aopen+label%3A%22low+hanging+fruit%22
814
+ [ ggez-issues ] : https://github.com/ggez/ggez/labels/%2AGOOD%20FIRST%20ISSUE%2A
815
+ [ veloren-beginner ] : https://gitlab.com/veloren/veloren/issues?label_name=beginner
816
+ [ amethyst-issues ] : https://github.com/amethyst/amethyst/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22
817
+ [ abstreet-issues ] : https://github.com/a-b-street/abstreet/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22
818
+ [ mun-issues ] : https://github.com/mun-lang/mun/labels/good%20first%20issue
819
+ [ simm-issues ] : https://github.com/mkhan45/SIMple-Mechanics/labels/good%20first%20issue
820
+ [ bevy-issues ] : https://github.com/bevyengine/bevy/labels/good%20first%20issue
820
821
821
822
------
822
823
0 commit comments