2
2
title = " This Month in Rust GameDev #50 - April 2024"
3
3
transparent = true
4
4
date = 2024-05-03
5
- draft = true
5
+ draft = false
6
6
+++
7
7
8
8
<!-- no toc -->
@@ -33,39 +33,44 @@ Feel free to send PRs about your own projects!
33
33
- [ Game Updates] ( #game-updates )
34
34
- [ Engine Updates] ( #engine-updates )
35
35
- [ Learning Material Updates] ( #learning-material-updates )
36
- - [ Tooling Updates] ( #tooling-updates )
37
36
- [ Library Updates] ( #library-updates )
38
- - [ Popular Workgroup Issues in GitHub] ( #popular-workgroup-issues-in-github )
39
37
- [ Other News] ( #other-news )
40
- - [ Meeting Minutes] ( #meeting-minutes )
41
38
- [ Discussions] ( #discussions )
42
- - [ Requests for Contribution] ( #requests-for-contribution )
43
- - [ Jobs] ( #jobs )
44
- - [ Bonus] ( #bonus )
45
39
46
- <!--
47
- Ideal section structure is:
40
+ ## Announcements
48
41
49
- ```
50
- ### [Title]
42
+ * Please fill out [ this survey] [ survey ] before skipping this section! More info below!*
51
43
52
- 
53
- _image caption_
44
+ Hey everyone, it's been a while! As you've certainly noticed, the newsletter has
45
+ been on hiatus for a while. The reason was mostly maintainer burnout, which is also
46
+ why the newsletter of August 2023 was not published [ until a few days
47
+ ago] [ august-news ] .
54
48
55
- A paragraph or two with a summary and [useful links].
49
+ We're back now though! A couple of community members, Jan Hohenheim
50
+ ([ @janhohenheim ] ) and Thierry Berger ([ @Vrixyz ] ), have led the revival of the
51
+ newsletter. This includes making changes requested by the community, and
52
+ improving sustainability for the long term.
56
53
57
- _Discussions:
58
- [/r/rust](https://reddit.com/r/rust/todo),
59
- [twitter](https://twitter.com/todo/status/123456)_
54
+ You can read more about the changes being made in [ this blog
55
+ post] [ newsletter-changes-blog ] .
60
56
61
- [Title]: https://first.link
62
- [useful links]: https://other.link
63
- ```
57
+ ### Community Survey
64
58
65
- If needed, a section can be split into subsections with a "------" delimiter.
66
- -->
59
+ This restructuring is also a good time to improve the content of the newsletter.
60
+ We've got some community feedback on the [ Rust GameDev Discord] [ Discord ] already
61
+ and would like to hear more from you. It would be great if you could fill out
62
+ [ this survey] [ survey ] to let us know how we can improve the newsletter going
63
+ forward. The survey closes on the ** 28th of May** . We will be evaluating the
64
+ [ survey] results in an upcoming blog post, so stay tuned for that.
65
+
66
+ That's all for now. Have fun reading!
67
67
68
- ## Announcements
68
+ [ august-news ] : https://gamedev.rs/news/049/
69
+ [ newsletter-changes-blog ] : https://gamedev.rs/blog/newsletter-changes/
70
+ [ @janhohenheim ] : https://github.com/janhohenheim
71
+ [ @Vrixyz ] : https://github.com/Vrixyz
72
+ [ survey ] : https://forms.gle/oeSb46twWsxRKYJe7
73
+ [ Discord ] : https://discord.gg/game-development-in-rust-676678179678715904
69
74
70
75
## Game Updates
71
76
@@ -76,56 +81,40 @@ If needed, a section can be split into subsections with a "------" delimiter.
76
81
[ Way of Rhea] [ wor ] just got a release date: it will be coming to Steam on
77
82
** May 20th, 2024** !
78
83
79
- Way of Rhea is a color based puzzle game with difficult puzzles, but forgiving
84
+ Way of Rhea ( [ Steam ] ( https://store.steampowered.com/app/1110620/Way_of_Rhea/ ) ) is a color- based puzzle game with difficult puzzles, but forgiving
80
85
mechanics being developed by [ @masonremaley ] in a custom Rust engine.
81
86
82
87
You can support development by [ wishlisting Way of Rhea on Steam] [ wor ] , or
83
88
[ signing up for the mailing list] [ wor-mail ] .
84
89
85
- Recent updates:
86
- - A [ closed beta] [ wor-closed-beta ] began
87
- - All characters now have voices
88
- - A [ reset button] [ wor-reset ] was added for when undo is inconvenient
89
- - Speech bubbles now [ identify the speaker] [ wor-speech-bubble ]
90
- - Orbs now are shown with an "xray" effect so they are visible even when behind scenery
91
- - Older CPUs without AVX support are [ now supported] [ wor-avx ]
92
- - Various [ speedrunning features] [ wor-speedrun ] were added
93
- - Secrets were made harder
94
- - An [ in game achievement UI] [ wor-achievements ] was created
95
- - An [ in game Jukebox UI] [ wor-jukebox ] was created
96
- - For more updates, see the [ release notes on Steam] [ wor-release-notes ] ...
90
+ Recently, a [ closed beta] [ wor-closed-beta ] began. All characters now have voices, and various [ speedrunning features] [ wor-speedrun ] were added.
91
+ Older CPUs are [ now supported] [ wor-avx ] .
92
+ Secrets were made harder, and an [ in-game achievement UI] [ wor-achievements ] was created.
93
+
94
+ For the full changelog, see the [ release notes] [ wor-release-notes ] .
97
95
98
96
[ @masonremaley ] : https://twitter.com/masonremaley
99
97
[ wor ] : https://store.steampowered.com/app/1110620/Way_of_Rhea/?utm_campaign=tmirgd&utm_source=n50
100
98
[ wor-trailer ] : https://youtu.be/vFsO436r2Pw
101
99
[ wor-closed-beta ] : https://store.steampowered.com/news/app/1110620/view/7665759271877780609
102
- [ wor-reset ] : https://clan.cloudflare.steamstatic.com/images//35599024/49e8760118b7b18e3b230ba3a3a28179c4b0e526.png
103
- [ wor-speech-bubble ] : https://clan.cloudflare.steamstatic.com/images//35599024/5f63bca0a4258a26e77ac40b3d2a75f197304dcb.png
104
- [ wor-avx ] : https://store.steampowered.com/news/app/1110620/view/4118050466869150657
105
100
[ wor-speedrun ] : https://clan.cloudflare.steamstatic.com/images//35599024/6ee82d4e0105f073082c83626e37933e682b5936.png
106
- [ wor-achievements ] : https://clan.cloudflare.steamstatic.com/images//35599024/573f81c1ebce54d9efedcd693fcbe684a5629c7f.png
107
- [ wor-jukebox ] : https://clan.cloudflare.steamstatic.com/images//35599024/b21c4b8ce5fa9cca7c6c1967ec5ffe169d8f1cb2.png
108
101
[ wor-mail ] : https://anthropicstudios.com/newsletter/signup/tech
109
102
[ wor-release-notes ] : https://store.steampowered.com/news/app/1110620
103
+ [ wor-avx ] : https://store.steampowered.com/news/app/1110620/view/4118050466869150657
104
+ [ wor-achievements ] : https://clan.cloudflare.steamstatic.com/images//35599024/573f81c1ebce54d9efedcd693fcbe684a5629c7f.png
110
105
111
106
### [ SM64JSARCHIVE] [ sm64jsarchive ]
112
107
113
108
![ Super Mario 64 JavaScript] ( sm64jsarchive.jpg )
114
109
115
- [ SM64JSARCHIVE] [ sm64jsarchive ] is an actively maintained fork of [ sm64js] : a decompilation project of Super Mario 64 to javaScript.
116
- Its source code is available on [ GitHub] [ sm64jsarchive-github ]
117
-
118
- The [ backend server] [ sm64jsarchive-server ] has been finally been able to start after 10 long months
119
- and is now live to < https://mmo.sm64jsarchive.com >
120
-
121
- The newest updates have been:
122
-
123
- - Working MMO
124
- - More stable changes to the games client
110
+ [ SM64JSARCHIVE] [ sm64jsarchive ] is an actively maintained fork of [ sm64js] : a decompilation project of Super Mario 64 to JavaScript.
111
+ The code is open-sourced on [ GitHub] [ sm64jsarchive-github ] .
125
112
126
- A stress test is scheduled for 2024-04-10 12:25 CST and everyone is invited!
113
+ The [ backend server] [ sm64jsarchive-server ] , which is written in Rust,
114
+ has finally been able to start after 10 long months
115
+ and is now live at < https://mmo.sm64jsarchive.com >
127
116
128
- Note: if you have a laggy computer or the page does not load within 10-20 minutes then please try refreshing .
117
+ A successful stress test for the MMO feature was run on April 10th .
129
118
130
119
[ sm64jsarchive ] : https://mmo.sm64jsarchive.com
131
120
[ sm64jsarchive-github ] : https://github.com/uuphoria2/sm64jsarchive
@@ -137,21 +126,14 @@ Note: if you have a laggy computer or the page does not load within 10-20 minute
137
126
![ OpenCombat: demo available soon] ( OpenCombat202404.jpg )
138
127
_ Official demo available soon_
139
128
140
- Open Combat ([ Website] [ OpenCombat_website ] , [ GitHub] [ OpenCombat_github ] ,
141
- [ Discord] [ OpenCombat_discord ] ) is a real-time tactical game
129
+ Open Combat ([ GitHub] [ OpenCombat_github ] , [ Discord] [ OpenCombat_discord ] ) is a real-time tactical game
142
130
which takes place during World War II.
143
131
144
- Some major changes since last news!
132
+ The basic game logic and HUD are now complete,
133
+ and the high-definition map for the demo is finished.
145
134
146
- - Basic HUD is now complete
147
- - High definition map finished for the demo
148
- - Basic game logic finished
149
-
150
- The game demo is almost finished.
151
- Some things are missing like soldier high definition assets, or minimal AI for opponent.
152
- But the demo is playable and we need some alpha players to make feedbacks 🎮 !
153
- You can find game binaries on the [ Github page] [ OpenCombat_release ] .
154
- Please come and see us on the [ Discord] [ OpenCombat_discord ] to make your feedback !
135
+ Some things are missing, like high-definition assets for soldiers or minimal AI for opponents.
136
+ But the [ demo is playable] [ OpenCombat_release ] and the team would love to hear your feedback!
155
137
156
138
[ OpenCombat_website ] : https://opencombat.bux.fr/
157
139
[ OpenCombat_github ] : https://github.com/buxx/OpenCombat
@@ -162,17 +144,13 @@ Please come and see us on the [Discord][OpenCombat_discord] to make your feedbac
162
144
163
145
![ Times of Progress: an isometric city builder game set during the industrial revolution] ( times_of_progress.jpg )
164
146
165
- Times of Progress ([ Steam] [ times-of-progress-steam ] ) is an upcoming city builder game set during the industrial revolution.
147
+ Times of Progress ([ Steam] [ times-of-progress-steam ] , [ Twitter/X] [ times-of-progress-twitter ] , [ Mastodon] [ times-of-progress-mastodon ] )
148
+ is an upcoming city builder game set during the industrial revolution.
166
149
167
- During the month of April:
168
- - The orders systems (how buildings request resources from other buildings) has been refactored to improve performance and make better use of the ECS.
169
- - Lots of UI widgets have been developed, in particular those related to showing stats about currently hovered and selected building,
170
- as well as during building placement.
150
+ In April, they added lots of UI widgets and improved performance by refactoring the orders system.
171
151
172
152
The demo is not available yet but interested players can sign up for the upcoming closed beta by joining the [ newsletter] [ times-of-progress-newsletter ] .
173
153
174
- More GIFs and progress updates are available on [ Twitter] [ times-of-progress-twitter ] and [ Mastodon] [ times-of-progress-mastodon ] .
175
-
176
154
[ times-of-progress-steam ] : https://store.steampowered.com/app/2628450/Times_of_Progress/
177
155
[ times-of-progress-newsletter ] : https://subscribepage.io/pressingthumbs
178
156
[ times-of-progress-twitter ] : https://twitter.com/ElmoSampedro
@@ -189,8 +167,8 @@ The gameplay is quite distilled and revolves mostly around resource management.
189
167
The player has limited inventory capacity and the weapons get damaged
190
168
after each use. There are 20 randomly generated levels to beat.
191
169
192
- It is available on desktop (Windows / Linux), Android and Web (mobile friendly).
193
- The game is [ open-sourced ] [ monk-tower-github ] ) - together with a custom WGPU-based 2d framework.
170
+ It is available on desktop (Windows / Linux), Android, and Web (mobile friendly).
171
+ The game's source code also comes with a custom WGPU-based 2D framework.
194
172
195
173
_ Discussions: ([ /r/roguelikes] [ monk-tower-reddit ] )_
196
174
@@ -203,20 +181,20 @@ _Discussions: ([/r/roguelikes][monk-tower-reddit])_
203
181
204
182
![ You are Merlin screenshot] ( you-are-merlin.png )
205
183
206
- You are Merlin ([ Web Game] [ you-are-merlin-web ] , [ GitHub - Rust/CLI] [ you-are-merlin-github ] , [ GitHub - WASM] [ you-are-merlin-www-github ] ) by @hseager
184
+ You are Merlin ([ Web Game] [ you-are-merlin-web ] , [ GitHub - Rust/CLI] [ you-are-merlin-github ] , [ GitHub - WASM] [ you-are-merlin-www-github ] ) by [ @hseager ] ( https://github.com/hseager )
207
185
is a text adventure game that compiles to both CLI and WebAssembly.
208
186
209
- This initial version features a main quest, side quests, items and a boss fight.
210
- Players can choose their favourite theme such as Zelda, Warcraft and Fallout.
211
- With the web version, players can select their prefered input method of buttons or keyboard and fully works on mobile.
187
+ This initial version features a main quest, side quests, items, and a boss fight.
188
+ Players can choose their favourite visual theme such as Zelda, Warcraft, and Fallout. The web version also supports mobile devices.
189
+
212
190
Although fairly simple, this first version provides a good foundation for building more features in later updates.
213
191
214
- _ Discussions: ([ Reddit post ] [ you-are-merlin-reddit-post ] )_
192
+ _ Discussions: ([ /r/rust_gamedev ] [ you-are-merlin-reddit-post ] )_
215
193
216
194
[ you-are-merlin-web ] : https://hseager.github.io/you-are-merlin-www/
217
195
[ you-are-merlin-github ] : https://github.com/hseager/you-are-merlin
218
196
[ you-are-merlin-www-github ] : https://github.com/hseager/you-are-merlin-www
219
- [ you-are-merlin-reddit-post ] : https://old .reddit.com/r/rust_gamedev/comments/1c9k1kb/you_are_merlin_a_text_adventure_game/
197
+ [ you-are-merlin-reddit-post ] : https://www .reddit.com/r/rust_gamedev/comments/1c9k1kb/you_are_merlin_a_text_adventure_game/
220
198
221
199
### [ Jumpy]
222
200
@@ -227,8 +205,8 @@ _Jumpy: Machine gun and Periscope_
227
205
[ Spicy Lobster] [ spicy_lobster ] is a pixel-style, tactical 2D shooter with a fishy
228
206
theme.
229
207
230
- This month the base functionality of round scoring and map transitions have been implemented.
231
- New weapons such as the Blunderbuss, Periscope, and Machine Gun are ready for fish on fish combat.
208
+ This month the base functionalities of round scoring and map transitions have been implemented.
209
+ New weapons such as the Blunderbuss, Periscope, and Machine Gun are ready for fish-on- fish combat.
232
210
233
211
Jumpy is now featuring corpse physics and a "ragdoll" button to send your Fish [ flopping about] [ jumpy_ragdoll ] .
234
212
@@ -246,14 +224,14 @@ _Discussions: [GitHub][jumpy_discussions], [Twitter][jumpy_twitter]_
246
224
247
225
## Engine Updates
248
226
249
- ### Bottomless-Pit 0.3.1
250
- ![ The Bottomles-Pit Logo. A small hole in the ground with cat ears and text saying bottomless-pit] ( https://eggshark.dev/images/bplogo.png )
227
+ ### Bottomless-Pit 0.3
251
228
229
+ ![ The Bottomles-Pit Logo. A small hole in the ground with cat ears and text saying bottomless-pit] ( https://eggshark.dev/images/bplogo.png )
252
230
253
231
Bottomless-Pit is a 2d game engine written with WGPU that has been around for a year, which can be found on [ crates.io] [ Bottomless-Pit_cratesio ] and [ GitHub] [ Bottomless-Pit_github ] .
254
232
Very recently a 2d camera was added as well as WASM and web support.
255
233
Current development is being focused on stability and QoL changes like texture sampling options and improved input.
256
- You can checkout several engine examples on the web [ here ] [ Bottomless-Pit_Website ] .
234
+ You can check out several [ engine examples on the web] [ Bottomless-Pit_Website ] .
257
235
Since the engine is in its infancy, its developer calls for developers to use it and give the engine some feedback.
258
236
259
237
Current features are:
@@ -271,7 +249,7 @@ Current features are:
271
249
272
250
### Building games for Android with Rust
273
251
274
- @maciekglowka has recently shared some thoughts about building Rust games
252
+ [ @maciekglowka ] has recently shared some thoughts [ on their blog ] [ android-games-blog ] about building Rust games
275
253
for Android. Rather than a step-by-step guide, it is a collection
276
254
of issues one can possibly encounter when targeting Android.
277
255
@@ -283,24 +261,69 @@ Topics mentioned:
283
261
- System UI hiding via jni and Android API
284
262
- Building AAB files to meet Google Play requirements
285
263
286
- [ Blog post link] [ android-games-blog ]
287
-
288
264
[ android-games-blog ] : https://maciejglowka.com/blog/building-games-for-android-with-rust/
265
+ [ @maciekglowka ] : https://github.com/maciekglowka
266
+
267
+ ### Bevy: A case study in ergonomic Rust
268
+
269
+ [ Chris Biscardi] [ chris-yt ] was at RustNation UK recently and gave talk on Bevy's
270
+ Rusty ergonomics titled [ Bevy: A case study in ergonomic Rust] [ case-study-video ] .
271
+ In their own words:
272
+
273
+ > There are at least two, if not three, talks worth of material around how Bevy
274
+ > progressively discloses complexity across multiple "stacks" of APIs; and the
275
+ > work done so far is very impressive in terms of how it all fits together,
276
+ > especially as a large-and-growing OSS project.
277
+
278
+ [ chris-yt ] : https://www.youtube.com/c/chrisbiscardi
279
+ [ case-study-video ] : https://www.youtube.com/watch?v=CnoDOc6ML0Y
289
280
290
- ## Tooling Updates
281
+ ### Reactivity in Bevy: From the Bottom Up
282
+
283
+ [ Talin] [ talin ] wrote a three-part series on [ "Reactivity in Bevy: From the Bottom Up"] [ reactivity-blog ] ,
284
+ which describes the workings of ` bevy_reactor ` , an experimental, work-in-progress framework for doing reactive programming within Bevy.
285
+
286
+ [ reactivity-blog ] : https://machinewords.hashnode.dev/reactivity-in-bevy-from-the-bottom-up-part-1
287
+ [ talin ] : https://dreamertalin.medium.com/
291
288
292
289
## Library Updates
293
290
291
+ ### Jolt Bindings
292
+
293
+ [ Lucian Greathouse] [ lucien ] has published their [ Jolt] [ jolt ] bindings for Rust. Jolt is a C++ physics engine you might know from its use in Horizon: Forbidden West.
294
+ Lucian has previously worked on [ JoltC] [ joltc ] , a C API for Jolt, which this project uses in the background.
295
+
296
+ The bindings work can be found on the [ just-rust GitHub repo] [ jolt-rust ] GitHub repository and come in two flavors:
297
+ - ` joltc-sys ` : Unsafe bindings to the C API
298
+ - ` rolt ` : Ergonomic and safe Rust API
299
+
300
+ [ lucien ] : https://lpg.space/
301
+ [ jolt ] : https://github.com/jrouwe/JoltPhysics
302
+ [ jolt-rust ] : https://github.com/SecondHalfGames/jolt-rust
303
+ [ joltc ] : https://github.com/SecondHalfGames/JoltC
304
+
305
+ ### Hexx 0.17
306
+
307
+ Hexx, the popular crate for hexagonal tools, [ has released version 0.17] ( https://github.com/ManevilleF/hexx/releases/tag/0.17.0 ) .
308
+ This release has a strong focus on performance:
309
+ - Large performance improvement on various computations like rings and wedges
310
+ - Add support for optimized storage for hexagonal and rhombus-shaped maps
311
+ - Added support for rectiline path
312
+
313
+ And utility:
314
+ - Added a 13th example showcasing all natively supported shapes
315
+ - Removed confusing items
316
+
294
317
### [ Lightyear 0.13] [ lightyear_website ]
295
318
296
319
[ lightyear_website] is a comprehensive networking library for bevy to make multiplayer games.
297
320
It comes with multiple types of transports (WebTransport, WebSocket, UDP, etc.)
298
- and supports replication techniques like client-side prediction, server interpolation, interest management and more!
321
+ and supports replication techniques like client-side prediction, server interpolation, interest management, and more!
299
322
Check out the [ examples] [ lightyear_examples ] !
300
323
301
324
The latest release, [ 0.13] [ lightyear_release ] , brings two big new features:
302
325
- ** Steam support** : you can now use the Steamworks SDK as your transport layer, which lets you use the Valve network!
303
- Note that lightyear supports running multiple transports in parallel, so it's possible to have cross-play between steam and non-steam users.
326
+ Note that lightyear supports running multiple transports in parallel, so it's possible to have cross-play between Steam and non-Steam users.
304
327
- ** Listen-server mode** : it is now possible to run a server and a client in the same process/bevy app.
305
328
This can be useful to avoid the costs of a dedicated server, or to have a similar codebase between singleplayer and multiplayer.
306
329
@@ -310,41 +333,20 @@ This can be useful to avoid the costs of a dedicated server, or to have a simila
310
333
[ lightyear_release ] : https://github.com/cBournhonesque/lightyear/releases/tag/0.13.0
311
334
[ lightyear_examples ] : https://github.com/cBournhonesque/lightyear/tree/main/examples
312
335
313
-
314
- ## Popular Workgroup Issues in GitHub
315
-
316
- <!-- Up to 10 links to interesting issues -->
317
-
318
336
## Other News
319
337
320
- <!-- One-liners for plan items that haven't got their own sections. -->
321
-
322
- ## Meeting Minutes
323
-
324
- <!-- Up to 10 most important notes + a link to the full details -->
325
-
326
- [ See all meeting issues] [ label_meeting ] including full text notes
327
- or [ join the next meeting] [ join ] .
328
-
329
- [ label_meeting ] : https://github.com/rust-gamedev/wg/issues?q=label%3Ameeting
338
+ - Alice I. Cecile of the Bevy Foundation would like to collect community feedback
339
+ on game development in Rust. Please fill out [ her survey] ( https://forms.gle/kLzv5Ww3U8dLGUHU8 ) !
330
340
331
341
## Discussions
332
342
333
- <!-- Links to handpicked reddit/twitter/urlo/etc threads that provide
334
- useful information -->
335
-
336
- ## Requests for Contribution
337
-
338
- <!-- Links to "good first issue"-labels or direct links to specific tasks -->
339
-
340
- ## Jobs
341
-
342
- <!-- An optional section for new jobs related to Rust gamedev -->
343
-
344
- ## Bonus
343
+ LogLog games has published a [ very well-written blog post] ( https://loglog.games/blog/leaving-rust-gamedev/ ) about their reasons to leave Rust gamedev.
344
+ It talks about shortcomings in Rust as a language in general and as a game development tool in particular.
345
+ Some insights into the limitations of ECS are also provided. Some interesting community discussions have been sparked by this post:
345
346
346
- <!-- Bonus section to make the newsletter more interesting
347
- and highlight events from the past. -->
347
+ - [ Hacker News] ( https://news.ycombinator.com/item?id=40172033 )
348
+ - [ /r/gamedev] ( https://www.reddit.com/r/gamedev/comments/1ceipzc/leaving_rust_gamedev_after_3_years_blog_post_by/ )
349
+ - [ /r/rust] ( https://www.reddit.com/r/rust/comments/1cdqdsi/lessons_learned_after_3_years_of_fulltime_rust/ )
348
350
349
351
------
350
352
0 commit comments