Skip to content

Commit f978656

Browse files
authored
N22: Release (#673)
* Initial prep for release * Reordering content * Added requests for contribution * Grammarly pass * Recommended fixes * Cleaning rebase
1 parent f4e74da commit f978656

File tree

1 file changed

+108
-107
lines changed

1 file changed

+108
-107
lines changed

content/news/022/index.md

Lines changed: 108 additions & 107 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
+++
22
title = "This Month in Rust GameDev #22 - May 2021"
3-
date = 2021-06-01
3+
date = 2021-06-09
44
transparent = true
5-
draft = true
65
+++
76

87
Welcome to the 22nd issue of the Rust GameDev Workgroup's
@@ -31,12 +30,9 @@ Feel free to send PRs about your own projects!
3130
- [Game Updates](#game-updates)
3231
- [Learning Material Updates](#learning-material-updates)
3332
- [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)
3735
- [Requests for Contribution](#requests-for-contribution)
38-
- [Jobs](#jobs)
39-
- [Bonus](#bonus)
4036

4137
<!--
4238
Ideal section structure is:
@@ -197,7 +193,7 @@ Project YAWC ([Twitter](https://twitter.com/ProjectYawc)) is a turn-based
197193
strategy game built in GGEZ, being developed by junkmail.
198194

199195
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.
201197

202198
An [alpha access request form](https://forms.gle/w22ohPGNk58fo9bv6) is available,
203199
if you want to try it out.
@@ -218,7 +214,7 @@ interface:
218214
an area with different music.
219215
- In-game UI is now functional including a new start menu and a simple settings
220216
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.
222218

223219
The web version was re-built and published under a new link so you can [try it
224220
in your browser][bounty_bros_webgame].
@@ -239,7 +235,7 @@ that [Emerald] needed to be tested to ensure it can withstand cross
239235
publishing.
240236
This means creating a smaller game in the
241237
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.
243239

244240
This resulted in the birth of [Harvest Hero Origins], a small wave
245241
defense arcade game with local co-op! Join the [Gemdrop Games Discord]
@@ -261,7 +257,7 @@ Features:
261257

262258
![Animation showing Bibi, the main protagonist of Outer Wonders,
263259
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
265261
the bottom exit of the puzzle](outer-wonders.gif)
266262

267263
[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_
329325
[Theta Wave] is an open-source space shooter game by developers [@micah_tigley] and
330326
[@carlosupina]. It is one of the showcase games for the [Amethyst Engine]. In
331327
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
334330
other entities.
335331

336332
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
338334
add documentation comments for all of the library's features.
339335

340336
[Theta Wave]: https://github.com/amethyst/theta-wave
@@ -356,7 +352,7 @@ month, versions 0.6.4 and 0.6.5 were released, featuring:
356352
- Methods for reading textures back to the CPU (e.g. for screenshots)
357353
- Support for passing slices/arrays as shader uniforms
358354
- More utility methods for working with high-DPI displays
359-
- Various bugfixes and docs improvements
355+
- Various bug fixes and docs improvements
360356

361357
For more details, see the [changelog][tetra-changelog].
362358

@@ -367,7 +363,7 @@ For more details, see the [changelog][tetra-changelog].
367363

368364
![rustcraft-img](rustcraft.png)
369365

370-
[Rustcraft][rustcraft] by [@dskart]
366+
[Rustcraft][rustcraft] by @dskart
371367
is a simple Minecraft engine written in Rust using wgpu.
372368

373369
It handles infinite world generation using gradient noise as well as placing
@@ -402,7 +398,7 @@ rusty-editor updates:
402398
- Context menu for world outliner items
403399
- Terrain editor
404400
- 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
406402
- Continuous integration
407403
- Settings window refactoring + improvements
408404
- Box selection mode bug fixes
@@ -412,6 +408,31 @@ rusty-editor updates:
412408
[rg3d_twitter]: https://twitter.com/DmitryNStepanov
413409
[rg3d_terrain_reddit]: https://www.reddit.com/r/rust/comments/nlnfdb/timelapse_of_terrain_editing_in_rustyeditor_which/
414410

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+
415436
## Learning Material Updates
416437

417438
### [Learn WGPU Updated to wgpu 0.8 and WGSL][learn-wgpu-news]
@@ -435,7 +456,7 @@ Checkout more at [here][learn-wgpu-news].
435456
how he made a voxel engine written in Rust using wgpu.
436457

437458
Currently voxel rendering, chunk management, flying camera,
438-
and simple lightning are implemented.
459+
and simple lightning is implemented.
439460
The source code is released on [github][voxel_engine_github].
440461

441462
_Discussions:
@@ -469,7 +490,7 @@ game jam, so he chose a simple theme: digging.
469490

470491
20 hours later, he had a full-fledged MMO - complete with hackers!
471492

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)_
473494

474495
[ld48-mmo]:
475496
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]_
500521
[2048-bevy-twitter]: https://twitter.com/chrisbiscardi/status/1397291221702254595
501522
[@chrisbiscardi]: https://twitter.com/chrisbiscardi
502523

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
504559

505560
### [Dimforge][dimforge]
506561

@@ -609,9 +664,9 @@ This project was released under the [Katharos License][katharos_license]. This
609664
license has moral and ethical implications that you may or may not agree with,
610665
so please read it before making use of this project.
611666

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
615670
games. Additional features added were:
616671

617672
- A simple sound playing API
@@ -636,8 +691,8 @@ _A preview to version 0.5 with furniture_
636691
[Texture Generator] by [Orchaldir] is a library to generate textures,
637692
and a library to use those textures to render tilemaps.
638693
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.
641696

642697
The [current release] focuses on furniture.
643698

@@ -662,39 +717,14 @@ inserted into Bevy's ECS as resources. Afterwards, the `AssetLoader` will
662717
switch into a second configurable app state. At this point, your app can use
663718
the asset collections that now contain loaded asset handles.
664719

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
666721
assets like e.g. `TextureAtlas` are not yet supported. There are plans to
667722
extend the `asset` attribute to allow loading more complex assets. Stay tuned!
668723

669724
[bevy_asset_loader]: https://github.com/NiklasEi/bevy_asset_loader
670725
[bevy]: https://github.com/bevyengine/bevy
671726
[@nikl_me]: https://twitter.com/nikl_me
672727

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-
698728
### [tobj][tobj]
699729

700730
`tobj` by [@Twinklebear] and [@virtualritz] is a simple and lightweight
@@ -707,7 +737,7 @@ more advanced importer functionality required for offline rendering,
707737
simulation, and modeling applications, through recent work by [@virtualritz].
708738
These features provide support for merging vertices to avoid discontinuities
709739
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
711741
lightweight API design goal of `tobj`, making it a useful crate for a range of
712742
applications loading with OBJ files.
713743

@@ -716,38 +746,6 @@ applications loading with OBJ files.
716746
[@virtualritz]: https://github.com/virtualritz
717747
[@syoyo]: https://github.com/syoyo
718748

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-
751749
### [Libfive][libfive]
752750

753751
![CSG difference operation with a sphere and three cylinders](libfive.png)
@@ -792,31 +790,34 @@ with zero-cost abstraction.
792790
[nvtx-rs]: https://github.com/simbleau/nvtx-rs
793791
[@simbleau]: https://github.com/simbleau
794792

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-
808793
## Requests for Contribution
809794

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
820821

821822
------
822823

0 commit comments

Comments
 (0)