# Rust GameDev Newsletter 34: May 2022
Coordinated and released my first Rust gamedev newsletter since the beginning of the year!
π https://gamedev.rs/news/034
* Announcements
- Rust Graphics Meetup 2
- Rust GameDev Montly Meetup
- 3D Ferris
- RustConf Arcade Cabinet
* Game updates
- Battleship
- ROOM4DOOM
- limbo_pass
- HydrofoilG
- Country Slice
- Way of Rhea
- Veloren
- Hug With Me?
- Combine&Conquer
* Engine updates
- Fyrox
- miniquad
- Dims
* Learning material updates
- Intro to Material/Shaders in Bevy
- Wasmcloud + Bevy ECS
- Rusteroids tutorial
- 2D platformer with Bevy ECS
- Comparing a Voxel Game in F# and Rust
- Rustacean Station 66: Eric Smith
- GameFromScratch: Rust GameDev in 2022
- Book about Multiplayer in Rust
- Audio Libraries Considered Challenging
* Tooling updates
- Bloom3D
- Graphite
* Library updates
- bevy_mod_scripting
- bevy_silk
- bevy_asset_loader
- bevy_kira_audio
- sparsey
- Notan
- carrier-pigeon
* Other News
* Popular Workgroup Issues
* Discussions
* Requests for Contribution
* Jobs
Coordinated and released my first Rust gamedev newsletter since the beginning of the year!
π https://gamedev.rs/news/034
* Announcements
- Rust Graphics Meetup 2
- Rust GameDev Montly Meetup
- 3D Ferris
- RustConf Arcade Cabinet
* Game updates
- Battleship
- ROOM4DOOM
- limbo_pass
- HydrofoilG
- Country Slice
- Way of Rhea
- Veloren
- Hug With Me?
- Combine&Conquer
* Engine updates
- Fyrox
- miniquad
- Dims
* Learning material updates
- Intro to Material/Shaders in Bevy
- Wasmcloud + Bevy ECS
- Rusteroids tutorial
- 2D platformer with Bevy ECS
- Comparing a Voxel Game in F# and Rust
- Rustacean Station 66: Eric Smith
- GameFromScratch: Rust GameDev in 2022
- Book about Multiplayer in Rust
- Audio Libraries Considered Challenging
* Tooling updates
- Bloom3D
- Graphite
* Library updates
- bevy_mod_scripting
- bevy_silk
- bevy_asset_loader
- bevy_kira_audio
- sparsey
- Notan
- carrier-pigeon
* Other News
* Popular Workgroup Issues
* Discussions
* Requests for Contribution
* Jobs
Rust GameDev WG
This Month in Rust GameDev #34 - May 2022
Welcome to the 34th issue of the Rust GameDev Workgroup's
monthly newsletter.
Rust is a systems langβ¦
monthly newsletter.
Rust is a systems langβ¦
β€6π1
# Limiting My Presence in Ru-Speaking Rust Community
You might have seen echoes of the recent mini-drama amongst the moderators of the @rustlang_ru community. I don't agree with Roman's weird and dramatic point of view (that he also shared on /r/rust), but I was really disturbed by responses to his actions from a couple of admins and lack of appropriate reaction to these messages from most of the other ones. That private conversation resulted in a couple of good admins leaving and reminded me how much I'm unhappy with the direction the Russian-speaking community is going and how much annoyance it causes in the background almost on a daily basis.
Known toxic and chauvinistic members should be banned, not tolerated "as long as they don't act too much in the main chats" - missing stairs are a structural fault of the community that is a big long-term issue. Even if these people try to keep their shit from the main gathering places, it still leaks here-and-there and slowly poisons the community. And, for fucks sake, these people shouldn't be admins, no matter how long they have been here or how good their tech knowledge is.
I also dislike that a big part of the active community members tends to view @rustlang_ru community not as an organic part of the global Rust community but as a tech-focused opposition to "SJW-infected people". This PoV is just against the spirit of Rust as I see it and I'm too tired of arguing (for years!) that the rust Code of Conduct isn't "another western bullshit" but a baseline for building a safe and sane community.
I'm tired of bringing folks into the community and then watching as a significant part of them leaves because of casual rudeness and heavy flooding with boring holy-wars that obscure useful questions. The current moderators are doing a not-that-bad job of keeping at least the main chats better to use for tech discussions than most of runet, but it's still not enough.
So, yeah, I feel that I don't fit and have no idea how to improve the community. A few years ago I resigned from all moderation positions and stopped being an active admin for all these reasons - and this week I decided to limit my presence in the ru-speaking rustlang community even more, at least for now. I've left the moderator room and all the chats (the main one is only archived though - in case someone needs to reach me directly).
I don't have much hope left for @rustlang_ru but, who knows, if the situation somehow improves later maybe I'll return. For now I'll concentrate more on Rust gamedev stuff and will probably spend more time on Discord :)
You might have seen echoes of the recent mini-drama amongst the moderators of the @rustlang_ru community. I don't agree with Roman's weird and dramatic point of view (that he also shared on /r/rust), but I was really disturbed by responses to his actions from a couple of admins and lack of appropriate reaction to these messages from most of the other ones. That private conversation resulted in a couple of good admins leaving and reminded me how much I'm unhappy with the direction the Russian-speaking community is going and how much annoyance it causes in the background almost on a daily basis.
Known toxic and chauvinistic members should be banned, not tolerated "as long as they don't act too much in the main chats" - missing stairs are a structural fault of the community that is a big long-term issue. Even if these people try to keep their shit from the main gathering places, it still leaks here-and-there and slowly poisons the community. And, for fucks sake, these people shouldn't be admins, no matter how long they have been here or how good their tech knowledge is.
I also dislike that a big part of the active community members tends to view @rustlang_ru community not as an organic part of the global Rust community but as a tech-focused opposition to "SJW-infected people". This PoV is just against the spirit of Rust as I see it and I'm too tired of arguing (for years!) that the rust Code of Conduct isn't "another western bullshit" but a baseline for building a safe and sane community.
I'm tired of bringing folks into the community and then watching as a significant part of them leaves because of casual rudeness and heavy flooding with boring holy-wars that obscure useful questions. The current moderators are doing a not-that-bad job of keeping at least the main chats better to use for tech discussions than most of runet, but it's still not enough.
So, yeah, I feel that I don't fit and have no idea how to improve the community. A few years ago I resigned from all moderation positions and stopped being an active admin for all these reasons - and this week I decided to limit my presence in the ru-speaking rustlang community even more, at least for now. I've left the moderator room and all the chats (the main one is only archived though - in case someone needs to reach me directly).
I don't have much hope left for @rustlang_ru but, who knows, if the situation somehow improves later maybe I'll return. For now I'll concentrate more on Rust gamedev stuff and will probably spend more time on Discord :)
π13β€5π1
# Monthly Rust GameDev Meetup #17: June 2022
Link to the stream/recording: https://youtu.be/drcX3dCS5MY
The meetup starts at 16:00 GMT (~1hr from now).
Today's schedule:
- kvark - Choir
- Keavon - Graphite
- mrDIMAS - Fyrox
- cdsupina - Rustconf Game Cabinet Update
- Togg - retime
Link to the stream/recording: https://youtu.be/drcX3dCS5MY
The meetup starts at 16:00 GMT (~1hr from now).
Today's schedule:
- kvark - Choir
- Keavon - Graphite
- mrDIMAS - Fyrox
- cdsupina - Rustconf Game Cabinet Update
- Togg - retime
YouTube
Rust Gamedev Meetup #17: June 2022
The Rust Gamedev meetup happens on the second Saturday of every month. The meetup is an opportunity to chat with others from the Rust game development community and see what people are working on.
Timestamps:
00:00 Countdown
08:30 Intro & Announcements
13:48β¦
Timestamps:
00:00 Countdown
08:30 Intro & Announcements
13:48β¦
# RustyJam #2
π https://itch.io/jam/rusty-jam-2 π
The second RustyJam starts in a week! It's a great chance to try out some new Rusty tech, form a team of like-minded rustaceans, and feel what a full cycle of making a game in Rust feels like in miniature!
Submissions will be open from June 18th to June 26th. Voting will begin as soon as the jam ends and will run for a week.
This jam focuses more on using Rust than anything else. That means you aren't restricted on your design, music, or graphics, as long as you use Rust to make it!
The optional-to-use theme for the jam is going to be announced in our Discord and pinned in the community section. While you're waiting for the theme, you can start looking for a team in the looking-for-team Discord channel. If you want solo though, that's fine too.
π https://itch.io/jam/rusty-jam-2 π
The second RustyJam starts in a week! It's a great chance to try out some new Rusty tech, form a team of like-minded rustaceans, and feel what a full cycle of making a game in Rust feels like in miniature!
Submissions will be open from June 18th to June 26th. Voting will begin as soon as the jam ends and will run for a week.
This jam focuses more on using Rust than anything else. That means you aren't restricted on your design, music, or graphics, as long as you use Rust to make it!
The optional-to-use theme for the jam is going to be announced in our Discord and pinned in the community section. While you're waiting for the theme, you can start looking for a team in the looking-for-team Discord channel. If you want solo though, that's fine too.
itch.io
Rusty jam #2
A game jam from 2022-06-18 to 2022-07-02 hosted by dxxi, ElhamAryanpur, AngelOnfira & AndrΓ©y @ozkriff LesnikΓ³v. Welcome to the second Rust programming language game jam! Rust allows developers to build safe, efficient, and reliable software, especially whenβ¦
π1
This media is not supported in your browser
VIEW IN TELEGRAM
# IntelliJ Rust Changelog #172
The new release brings URL highlighting and the ability to open URLs in a browser. Also, if the βEmulate terminal in output consoleβ option is enabled, the proper terminal is now used. Check out all the changes:
https://intellij-rust.github.io/2022/06/14/changelog-172.html
The new release brings URL highlighting and the ability to open URLs in a browser. Also, if the βEmulate terminal in output consoleβ option is enabled, the proper terminal is now used. Check out all the changes:
https://intellij-rust.github.io/2022/06/14/changelog-172.html
π₯3
ozkriff.games π¦
# RustyJam #2 π https://itch.io/jam/rusty-jam-2 π The second RustyJam starts in a week! It's a great chance to try out some new Rusty tech, form a team of like-minded rustaceans, and feel what a full cycle of making a game in Rust feels like in miniature!β¦
The jam has just begun!
π3π₯2
# Rustup 1.25 Will Bring Easier MSVC Build Tools Installation
While the MinGW toolchain is nice (if its functionality covers your needs) the MSVC toolchain is native to Windows and thus is selected by default. One of the issues with this is that while rustup has been providing some vague instructions about Visual C++ prerequisites, it was still greatly confusing for beginners - there're like thousands of threads with questions about what exactly should the user install and from where.
So, I'm happy to see that rustup's devs have finally found a way to conveniently install the prerequisites without breaking Microsoft's distribution requirements. It's still optional and requires manual approval from the user but should help to reduce the confusion.
More details in the /r/rust announcement.
While the MinGW toolchain is nice (if its functionality covers your needs) the MSVC toolchain is native to Windows and thus is selected by default. One of the issues with this is that while rustup has been providing some vague instructions about Visual C++ prerequisites, it was still greatly confusing for beginners - there're like thousands of threads with questions about what exactly should the user install and from where.
So, I'm happy to see that rustup's devs have finally found a way to conveniently install the prerequisites without breaking Microsoft's distribution requirements. It's still optional and requires manual approval from the user but should help to reduce the confusion.
More details in the /r/rust announcement.
π11
ozkriff.games π¦
# RustyJam #2 π https://itch.io/jam/rusty-jam-2 π The second RustyJam starts in a week! It's a great chance to try out some new Rusty tech, form a team of like-minded rustaceans, and feel what a full cycle of making a game in Rust feels like in miniature!β¦
# Rusty Jam 2 Voting
The second Rusty Jam submission period has ended this weekend! Now we have a week for the public to play the submissions and vote for the best ones. Please, join everyone:
https://itch.io/jam/rusty-jam-2/entries
The second Rusty Jam submission period has ended this weekend! Now we have a week for the public to play the submissions and vote for the best ones. Please, join everyone:
https://itch.io/jam/rusty-jam-2/entries
itch.io
Submissions to Rusty jam #2
π1
# Hello, Armenia
I've finally arrived in Armenia yesterday - my new home for the next year or two. The journey went quite well aside from a couple of weird phrases from a russian border guard. Atm, I'm getting used to how hot the local climate is and started the paperwork to get re-hired here. I also started learning some basics of the Armenian language: everyone here can speak either Russian or English but it seems polite to know at least some frequently used phrases.
My wife stays in St Petersburg for a few years because of her veterinarian work and unfinished education (migration is so hard if you're not a software dev, ugh) - I really hope that the motherland won't do anything even more crazy in that time. The current plan is that I'll be waiting for her in Armenia and will try to visit Russia every couple of months. After that, we'll probably leave together to some other place - Finland or Germany probably. It's hard to have a more detailed plan when so many things can change at any minute.
I've finally arrived in Armenia yesterday - my new home for the next year or two. The journey went quite well aside from a couple of weird phrases from a russian border guard. Atm, I'm getting used to how hot the local climate is and started the paperwork to get re-hired here. I also started learning some basics of the Armenian language: everyone here can speak either Russian or English but it seems polite to know at least some frequently used phrases.
My wife stays in St Petersburg for a few years because of her veterinarian work and unfinished education (migration is so hard if you're not a software dev, ugh) - I really hope that the motherland won't do anything even more crazy in that time. The current plan is that I'll be waiting for her in Armenia and will try to visit Russia every couple of months. After that, we'll probably leave together to some other place - Finland or Germany probably. It's hard to have a more detailed plan when so many things can change at any minute.
π16β€5π’3π1π1
# IntelliJ Rust Changelog #173
Some highlights:
- The plugin now considers the recursion limit that controls the macro expansion depth.
- The "Old Macro Expansion Engine" option was removed.
- Improved clippy lint completion.
- Reduced memory usage by trait implementation metadata.
https://intellij-rust.github.io/2022/06/27/changelog-173.html
Some highlights:
- The plugin now considers the recursion limit that controls the macro expansion depth.
- The "Old Macro Expansion Engine" option was removed.
- Improved clippy lint completion.
- Reduced memory usage by trait implementation metadata.
https://intellij-rust.github.io/2022/06/27/changelog-173.html
π2
# lib.rs Version Pages Now Link to Git Commits
When you publish a crate, Cargo makes a note of its git repository commit hash and includes it in the crates-io crate tarball. A few days ago Kornel announced that lib.rs started exposing this information, nice!
Also, check out https://lib.rs/stats if you haven't seen it yet, it has a bunch of cool graphs.
When you publish a crate, Cargo makes a note of its git repository commit hash and includes it in the crates-io crate tarball. A few days ago Kornel announced that lib.rs started exposing this information, nice!
Also, check out https://lib.rs/stats if you haven't seen it yet, it has a bunch of cool graphs.
π2
ozkriff.games π¦
# RustyJam #2 π https://itch.io/jam/rusty-jam-2 π The second RustyJam starts in a week! It's a great chance to try out some new Rusty tech, form a team of like-minded rustaceans, and feel what a full cycle of making a game in Rust feels like in miniature!β¦
# RustyJam #2 Results
Our little jam has ended. 17 games were completed and submitted over the one-week jam. The games were rated by the community and the top three games are:
-π₯ Chick the Dog by Uriopass
-π₯ A walk around the block by ramirezmike
-π₯ Fight for the Frontier by rand0m and logicprojects
The rest can be seen at https://itch.io/jam/rusty-jam-2/results
Thanks everyone for participating in RustyJam #2, and for those who couldn't make it, let's get it on the next one! RustyJam #3 will be announced in due time, and we'll improve based on feedback given by everyone.
Our little jam has ended. 17 games were completed and submitted over the one-week jam. The games were rated by the community and the top three games are:
-π₯ Chick the Dog by Uriopass
-π₯ A walk around the block by ramirezmike
-π₯ Fight for the Frontier by rand0m and logicprojects
The rest can be seen at https://itch.io/jam/rusty-jam-2/results
Thanks everyone for participating in RustyJam #2, and for those who couldn't make it, let's get it on the next one! RustyJam #3 will be announced in due time, and we'll improve based on feedback given by everyone.
itch.io
Chick The Dog by Uriopass
Merge the dogs with the chicken. But beware of the wolves! Play in your browser
π1
# Procedural Macros Under the Hood: Part II
Have you ever wondered how Rustβs procedural macros work? The second part of the "Procedural macros under the hood" blog series invites you to take a closer look at how the compiler and the IDE process them:
https://blog.jetbrains.com/rust/2022/07/07/procedural-macros-under-the-hood-part-ii
(hereβs the first part in case you missed it)
Have you ever wondered how Rustβs procedural macros work? The second part of the "Procedural macros under the hood" blog series invites you to take a closer look at how the compiler and the IDE process them:
https://blog.jetbrains.com/rust/2022/07/07/procedural-macros-under-the-hood-part-ii
(hereβs the first part in case you missed it)
The JetBrains Blog
Procedural macros under the hood: Part II | The RustRover Blog
In our previous blog post, we discussed the essence of Rustβs procedural macros. Now we invite you to dive deeper into how they are processed by the compiler and the IDE. Compilation of procedural
π₯5
# Rust GameDev Newsletter 35: June 2022
Another month, another newsletter!
π https://gamedev.rs/news/035
* Announcements
- Rust GameDev Podcast 9: Bevy
- Rust GameDev Montly Meetup
- Rusty Jam 2
- RustConf Arcade Cabinet
* Game updates
- Hydrofoil Generation
- RuggRogue
- Rust Game Ports
- vetovoima
- Botnet
- Star Machine
- Quoridor-rs
- Veloren
- Harvest Hero Origins
- Chimera Rancher
* Engine updates
- ggez
- Dims
- miniquad
* Learning material updates
- Brontefy Me Devlog 3
- Learn Bevy's ECS by ripping off someone else's project
- Bevy Basics
* Tooling updates
- Noumenal
- Graphite
- quad-gif
* Library updates
- psf2
- ezinput
- glam
- kajiya
- Notan
* Other News
* Discussions
* Requests for Contribution
* Jobs
Another month, another newsletter!
π https://gamedev.rs/news/035
* Announcements
- Rust GameDev Podcast 9: Bevy
- Rust GameDev Montly Meetup
- Rusty Jam 2
- RustConf Arcade Cabinet
* Game updates
- Hydrofoil Generation
- RuggRogue
- Rust Game Ports
- vetovoima
- Botnet
- Star Machine
- Quoridor-rs
- Veloren
- Harvest Hero Origins
- Chimera Rancher
* Engine updates
- ggez
- Dims
- miniquad
* Learning material updates
- Brontefy Me Devlog 3
- Learn Bevy's ECS by ripping off someone else's project
- Bevy Basics
* Tooling updates
- Noumenal
- Graphite
- quad-gif
* Library updates
- psf2
- ezinput
- glam
- kajiya
- Notan
* Other News
* Discussions
* Requests for Contribution
* Jobs
Rust GameDev WG
This Month in Rust GameDev #35 - June 2022
Welcome to the 35th issue of the Rust GameDev Workgroup's
monthly newsletter.
Rust is a systems langβ¦
monthly newsletter.
Rust is a systems langβ¦
π3π1
# Monthly Rust GameDev Meetup #18: July 2022
The meetup starts at 16:00 GMT (~1hr from now).
(upd) recording timings:
00:08:40 intro&ann
00:13:05 cabinet
00:24:20 blackjack
00:55:07 dotrix
01:11:45 graphite
01:25:45 rusty jam 2 games
01:46:40 outro
Youtube: https://youtu.be/mnuchYuR_ck
Twitch: https://twitch.tv/rustgamedev
The meetup starts at 16:00 GMT (~1hr from now).
(upd) recording timings:
00:08:40 intro&ann
00:13:05 cabinet
00:24:20 blackjack
00:55:07 dotrix
01:11:45 graphite
01:25:45 rusty jam 2 games
01:46:40 outro
Youtube: https://youtu.be/mnuchYuR_ck
Twitch: https://twitch.tv/rustgamedev
YouTube
Rust Gamedev Meetup #18: July 2022
The Rust Gamedev meetup happens on the second Saturday of every month. The meetup is an opportunity to chat with others from the Rust game development community and see what people are working on.
π2
This media is not supported in your browser
VIEW IN TELEGRAM
# IntelliJ Rust Changelog #174
Some highlights:
- The rename refactoring is now supported for macro metavariables.
- Better detection of move errors when a type overloads dereference operator.
- Significant performance improvements.
https://intellij-rust.github.io/2022/07/11/changelog-174
Some highlights:
- The rename refactoring is now supported for macro metavariables.
- Better detection of move errors when a type overloads dereference operator.
- Significant performance improvements.
https://intellij-rust.github.io/2022/07/11/changelog-174
π3
ozkriff.games π¦
# Rustup 1.25 Will Bring Easier MSVC Build Tools Installation While the MinGW toolchain is nice (if its functionality covers your needs) the MSVC toolchain is native to Windows and thus is selected by default. One of the issues with this is that while rustupβ¦
# rustup 1.25
It was released! A couple of other highlights:
- Shorter startup time of rustup - it's important since each time rustc/cargo/rustdoc is invoked, it passes through a rustup proxy.
- Support for "rustup default none" to unset the default toolchain - this can be useful when you want to be extra certain you're not using the wrong toolchain by accident.
Also, a small bonus info: Rust will be ~15% faster on Windows soon thanks to PGO being utilized on for Windows CI builds.
It was released! A couple of other highlights:
- Shorter startup time of rustup - it's important since each time rustc/cargo/rustdoc is invoked, it passes through a rustup proxy.
- Support for "rustup default none" to unset the default toolchain - this can be useful when you want to be extra certain you're not using the wrong toolchain by accident.
Also, a small bonus info: Rust will be ~15% faster on Windows soon thanks to PGO being utilized on for Windows CI builds.
blog.rust-lang.org
Announcing Rustup 1.25.0 | Rust Blog
Empowering everyone to build reliable and efficient software.
π₯3π1
# Nintendo Switch Is Now a Tier 3 Target
https://github.com/rust-lang/rust/pull/88991
Meet aarch64-nintendo-switch-freestanding - the initial
Nice trend, considering that the Tier 3 support for Nintendo 3DS was merged a couple weeks ago and there're reports about early proof-of-concept PS5 Bevy experiments. Rust on console seems feasible indeed!
https://github.com/rust-lang/rust/pull/88991
Meet aarch64-nintendo-switch-freestanding - the initial
no_std support for Nintendo Switch was merged after a prolonged legal investigation by the foundation! Here's a Twitter thread with an overview.Nice trend, considering that the Tier 3 support for Nintendo 3DS was merged a couple weeks ago and there're reports about early proof-of-concept PS5 Bevy experiments. Rust on console seems feasible indeed!
GitHub
Add Nintendo Switch as tier 3 target by jam1garner Β· Pull Request #88991 Β· rust-lang/rust
Relevant Zulip Discussion
This is the first step towards working on incrementally adding support for the Nintendo Switch. After this lands @leo60228 and I will work on ensuring further work is clea...
This is the first step towards working on incrementally adding support for the Nintendo Switch. After this lands @leo60228 and I will work on ensuring further work is clea...
π₯7
# Almost Rules
Some food for thought from Aleksey about decaying boundaries and how reality tends to make everything messy.
https://matklad.github.io/2022/07/10/almost-rules.html
Some food for thought from Aleksey about decaying boundaries and how reality tends to make everything messy.
https://matklad.github.io/2022/07/10/almost-rules.html
matklad.github.io
Almost Rules
This is going to be a philosophical post, vaguely about language design, and vaguely about Rust.
If you've been following this blog for a while, you know that one theme I consistently hammer at is that of boundaries.
This article is no exception!
If you've been following this blog for a while, you know that one theme I consistently hammer at is that of boundaries.
This article is no exception!
π€3
# Into the Breach: Advanced Edition is Out! π
The free update refreshes a lot of stuff in one of the greatest tactic games: new mechs, weapons, pilot abilities, missions, enemies, music! I guess I have to spend at least a few more evenings crushing bugs. :)
The game is also released on iOS and Android but only for Netflix subscribers (for now?) - though the idea of having ItB on a phone is tempting.
More info: https://subsetgames.com/itb_ae.html
The free update refreshes a lot of stuff in one of the greatest tactic games: new mechs, weapons, pilot abilities, missions, enemies, music! I guess I have to spend at least a few more evenings crushing bugs. :)
The game is also released on iOS and Android but only for Netflix subscribers (for now?) - though the idea of having ItB on a phone is tempting.
More info: https://subsetgames.com/itb_ae.html
π3