Skip to content

Commit f35e439

Browse files
janhohenheimbash
andauthored
Write first draft of June entry (#1534)
Co-authored-by: Tau Gärtli <[email protected]>
1 parent 723c49f commit f35e439

13 files changed

+157
-46
lines changed

content/news/052/bevypunk.jpg

76 KB
Loading

content/news/052/egui_ratatui.jpg

-112 KB
Loading

content/news/052/godot-rust.jpg

15.7 KB
Loading

content/news/052/godot-rust.png

-98.8 KB
Binary file not shown.

content/news/052/gunbug.jpg

-158 KB
Loading

content/news/052/haalka.mp4

1.54 MB
Binary file not shown.

content/news/052/index.md

+155-42
Original file line numberDiff line numberDiff line change
@@ -31,20 +31,15 @@ Feel free to send PRs about your own projects!
3131

3232
- [Announcements](#announcements)
3333
- [Game Updates](#game-updates)
34-
- [Untitled Pixel Wizards Game](#untitled-pixel-wizards-game)
3534
- [Engine Updates](#engine-updates)
3635
- [Learning Material Updates](#learning-material-updates)
3736
- [Tooling Updates](#tooling-updates)
3837
- [Library Updates](#library-updates)
39-
- [Popular Workgroup Issues in GitHub](#popular-workgroup-issues-in-github)
40-
- [Other News](#other-news)
41-
- [Metalmancy @ OpenSauce](#metalmancy-opensauce)
42-
- [Meeting Minutes](#meeting-minutes)
43-
- [Discussions](#discussions)
44-
- [Requests for Contribution](#requests-for-contribution)
38+
- [Interviews](#interviews)
39+
- [Blog Posts](#blog-posts)
4540
- [Jobs](#jobs)
46-
- [Bonus](#bonus)
47-
- [Future news](#future-news)
41+
- [Misc. Links](#misc-links)
42+
- [Future News](#future-news)
4843

4944
<!--
5045
Ideal section structure is:
@@ -70,15 +65,14 @@ If needed, a section can be split into subsections with a "------" delimiter.
7065

7166
## Announcements
7267

68+
TODO: I'll be working on adding an email subscription this weekend, so I'll write about it here once that's done :) - Jan
69+
7370
## Game Updates
7471

7572
### [Untitled Pixel Wizards Game][pixel-wizards]
7673

7774
{{ embed_video(type="video/mp4", src="untitled-pixel-wizards-game.mp4",
78-
caption="Enemies now perceive, pursue and attack.. and occasionally get burned to death.") }}
79-
80-
[![A Hound chases a player, and its corpse ragdolls after it is burned to death by a fireball](untitled-pixel-wizards-game.gif)][pixel-wizards]
81-
_Enemies now perceive, pursue and attack.. and occasionally get burned to death._
75+
caption="Enemies now perceive, pursue and attack.. and occasionally get burned to death.") }}
8276

8377
[Untitled Pixel Wizards Game][pixel-wizards] is a local-multiplayer [Noita]-like platformer about
8478
killing baddies using spells powered by pixel physics. This month was focused on juicing up said baddies:
@@ -99,19 +93,20 @@ killing baddies using spells powered by pixel physics. This month was focused on
9993

10094
### [Gunbug][gunbug]
10195

102-
[![Gunbug](gunbug.jpg)][gunbug]
96+
[![Gunbugs shooting at a bunch of eggplants](gunbug.jpg)][gunbug]
97+
_Gunbugs shooting at a bunch of eggplants_
10398

10499
Gunbug is a 2D online co-op horde survival shoot'em up game.
105100

106-
Gunbug focuses on shooting lots of enemies with lots of guns. It can be played
101+
It focuses on shooting lots of enemies with lots of guns. It can be played
107102
solo or with up to 10 players.
108103

109-
It is built with the [Bevy] game engine. It uses [bevy_rapier] for ray casting,
110-
[bevy_kira_audio] for audio, and [renet] for networking. iOS and MacOS versions
111-
are built with [xbuild].
104+
It is built with [Bevy] and uses [bevy_rapier] for ray casting,
105+
[bevy_kira_audio] for audio, and [renet] for networking.
106+
The iOS and macOS versions are built with [xbuild].
112107

113-
You can wishlist the game on [Steam][gunbug]. Playtests start in the upcoming
114-
months. iOS and Android builds already work, but store pages don't exist yet.
108+
You can wishlist the game on [Steam][gunbug]. Playtests start in the upcomingv months.
109+
iOS and Android builds already work, but store pages don't exist yet.
115110

116111
[gunbug]: https://store.steampowered.com/app/2946990?utm_source=this_month_in_rust
117112
[xbuild]: https://github.com/rust-mobile/xbuild
@@ -124,7 +119,7 @@ months. iOS and Android builds already work, but store pages don't exist yet.
124119

125120
### [godot-rust]
126121

127-
![godot-rust logo](godot-rust.png)
122+
![godot-rust logo](godot-rust.jpg)
128123

129124
godot-rust ([GitHub][gd-github], [Discord][gd-discord], [Mastodon][gd-mastodon], [Twitter][gd-twitter]) by [@Bromeon]
130125
provides Rust bindings for the [Godot engine](https://godotengine.org/).
@@ -156,8 +151,54 @@ _See also the [devlog article][gd-dev-june]._
156151
[gd-twitter]: https://twitter.com/GodotRust
157152
[godot-rust]: https://godot-rust.github.io
158153

154+
### [Bevy 0.14 Release Candidate][bevy-0.14-rc]
155+
156+
![Sharp Screen-Space Reflections in Bevy 0.14](ssr.jpg)
157+
_Sharp Screen-Space Reflections in Bevy 0.14_
158+
159+
The Bevy game engine is gearing up to release version 0.14.
160+
The (probably) last release candidate is out now and ready for testing.
161+
If you want to help out,
162+
check out the [draft release notes][bevy-0.14-rc] and the [draft migration guide][bevy-0.14-rc-migration] and report any issues you find.
163+
164+
[bevy-0.14-rc]: https://bevyengine.org/news/draft-bevy-0-14/
165+
[bevy-0.14-rc-migration]: https://bevyengine.org/learn/migration-guides/0-13-to-0-14/
166+
159167
## Learning Material Updates
160168

169+
### [Bevy Cheatbook][bevy-cheatbook]
170+
171+
The community-beloved unofficial [Bevy Cheatbook][bevy-cheatbook] by Ida "Iyes" is a collection of Bevy tutorials, recipes and advanced documentation.
172+
The cheatbook is currently in the process of being updated to Bevy 0.14 and now features the following new chapters:
173+
- [Transform Interpolation/Extrapolation](https://bevy-cheatbook.github.io/cookbook/smooth-movement.html):
174+
How to get smooth-looking movement on-screen for things you simulate in FixedUpdate
175+
- [Internal Parallelism](https://bevy-cheatbook.github.io/programming/par-iter.html):
176+
Multithreading within a Bevy system
177+
- [One-Shot Systems](https://bevy-cheatbook.github.io/programming/one-shot-systems.html):
178+
Systems that you run on-demand, not in a schedule
179+
- [Background Computation](https://bevy-cheatbook.github.io/fundamentals/async-compute.html):
180+
How to do processing that may span multiple frame updates and not hold up the game's framerate with long CPU work.
181+
182+
[bevy-cheatbook]: https://bevy-cheatbook.github.io/
183+
184+
### [Game development in Rust with Macroquad][macro-learning]
185+
186+
Olle Wreede of [Agical][agical] published a [complete guide][macro-learning] on
187+
how to develop a classic 2D shoot 'em up game using the game library
188+
Macroquad and the Rust programming language.
189+
190+
It covers everything from a simple Hello World Macroquad application to adding graphics, audio, a shader, a graphical menu,
191+
and how to release the game on multiple platforms.
192+
193+
[agical]: https://www.agical.se/
194+
[macro-learning]: <https://mq.agical.se/>
195+
196+
### Other learning materials
197+
198+
- [Using tracing to profile a Bevy project](https://rornic.com/posts/using-tracing-to-profile-a-bevy-project/)
199+
- [Bevycation of Brackeys First Game in Godot Tutorial](https://github.com/Occuros/bevycation_brackeys_first-game-in-godot):
200+
A Bevy version of Brackeys' ["How to make a Video Game - Godot Beginner Tutorial"](https://www.youtube.com/watch?v=LOhfqjmasi0)
201+
161202
## Tooling Updates
162203

163204
### [Rusty Playdate]
@@ -226,58 +267,130 @@ educational software at a startup with no issues so far.
226267
[egui]: https://github.com/emilk/egui
227268
[erat_web]: https://gold-silver-copper.github.io/
228269

229-
## Popular Workgroup Issues in GitHub
270+
### [FMOD-oxide][fmod-oxide]
271+
272+
Safe rust bindings to the FMOD sound engine. This crate tries to be as rusty and low-cost as possible, without comprimising on any APIs.
273+
Certain APIs, such as loading banks from a pointer, are marked as unsafe, but are still available for use.
274+
275+
[fmod-oxide]: https://crates.io/crates/fmod-oxide
276+
277+
### [Bevy Lunex][bevy-lunex]
278+
279+
![Bevypunk: a recreation of Cyberpunk 2077's UI made with Lunex](bevypunk.jpg)
280+
_Bevypunk: a recreation of Cyberpunk 2077's UI made with Lunex_
281+
282+
283+
Lunex is a path based retained layout engine for Bevy entities, built around vanilla Bevy ECS.
284+
It gives you the ability to make your own custom UI using regular ECS like every other part of your app.
285+
Notably, this includes world-space 3D UI!
286+
287+
The above screenshot is from the [Bevypunk UI Web Demo][bevypunk], which includes a main menu and a character creation screen.
230288

231-
<!-- Up to 10 links to interesting issues -->
289+
You can get started by reading the [bevy_lunex book][bevy-lunex-book].
232290

233-
## Other News
291+
[bevy-lunex]: https://github.com/bytestring-net/bevy_lunex
292+
[bevy-lunex-book]: https://bytestring-net.github.io/bevy_lunex/
293+
[bevypunk]: https://idedary.itch.io/bevypunk
294+
295+
### [haalka]
296+
297+
{{ embed_video(type="video/mp4", src="haalka.mp4", caption="A Minecraft-like UI made with haalka") }}
298+
299+
হালকা: _in bengali, haalka means "light" (e.g. not heavy) and can also be used to mean "easy"_
300+
301+
Haalka is an ergonomic reactivity library powered by the [FRP](https://en.wikipedia.org/wiki/Functional_reactive_programming) signals of [futures-signals](https://github.com/Pauan/rust-signals).
302+
It is a port of the web UI libraries [MoonZoon](https://github.com/MoonZoon/MoonZoon) and [Dominator](https://github.com/Pauan/rust-dominator)
303+
and offers the same signal semantics as a thin layer on top of bevy_ui.
304+
305+
While haalka is primarily targeted at UI and provides high level UI abstractions as such,
306+
its core abstraction can be used to manage signals-powered reactivity for any entity, not just bevy_ui nodes.
307+
308+
[haalka]: https://github.com/databasedav/haalka
309+
310+
311+
### Other Library Updates and Releases
312+
313+
- [gdext-coroutines](https://github.com/Houtamelo/gdext_coroutines): Run Rust coroutines in Godot 4.2+ (through GDExtension), inspired on Unity's Coroutines design.
314+
- [FunDSP 0.18](https://github.com/SamiPerttu/fundsp): FunDSP is an audio DSP ([digital signal processing](https://en.wikipedia.org/wiki/Digital_signal_processing))
315+
library for audio processing and synthesis. This release is a rewrite that adds no_std and SIMD support.
316+
317+
## Interviews
234318

235319
### [Metalmancy @ OpenSauce][metalmancy_interview]
236320

237-
![image/GIF description](metalmancy_interview.png)
321+
![image/GIF description](metalmancy_interview.jpg)
238322
_Arcade cabinet close up_
239323

240324
[Metalmancy][metalmancy_website] are creating custom and configurable arcade machines. Their flagship game [Thetawave] is coded in Rust.
241325

242326
Hyelim of [Framework][framework_website] interviewed Carlo and Joanna on their games
243327
and arcade machines at [OpenSauce][opensauce_website].
244328

245-
246-
247329
[metalmancy_interview]: https://www.youtube.com/watch?v=qUIAnZ0cvvo&t=291s
248330
[metalmancy_website]: https://www.micronote.tech/
249331
[framework_website]: https://frame.work
250332
[opensauce_website]: https://opensauce.com/
251333
[Thetawave]: https://store.steampowered.com/app/2427510/Thetawave
252334

253-
<!-- One-liners for plan items that haven't got their own sections. -->
335+
### [Tiny Glade Developers Discuss Bevy, Proceduralism, Publishers & Cozy Games][tiny-glade-interview]
336+
337+
![An idyllic scenery made in Tidy Glade](tiny-glade.jpg)
338+
_An idyllic scenery made in Tidy Glade_
254339

255-
## Meeting Minutes
340+
To celebrate the release of Tiny Glade's [demo version][tiny-glade-steam], Pounce Light's Anastasia Opara and
341+
Tomasz Stachowiak have joined 80 Level [in an interview][tiny-glade-interview] to discuss the game's history, proceduralism,
342+
Bevy, Rust, self-publishing, and the "cozy games" genre.
256343

257-
<!-- Up to 10 most important notes + a link to the full details -->
258344

259-
[See all meeting issues][label_meeting] including full text notes
260-
or [join the next meeting][join].
345+
[tiny-glade-interview]: https://80.lv/articles/exclusive-tiny-glade-developers-discuss-bevy-proceduralism-publishers-cozy-games
346+
[tiny-glade-steam]: https://store.steampowered.com/app/2198150/Tiny_Glade/
347+
348+
<!-- One-liners for plan items that haven't got their own sections. -->
349+
350+
## Blog Posts
261351

262-
[label_meeting]: https://github.com/rust-gamedev/wg/issues?q=label%3Ameeting
352+
### [Dioxus Labs + "High-level Rust"][dioxus-post]
263353

264-
## Discussions
354+
This post by the founder of [Dioxus Labs][dioxus-labs] is a direct response to
355+
the recently published ["Leaving Rust gamedev after 3 years"][leaving-post] by LogLogGames.
356+
If you've missed the original post, it has made its rounds as a well-written critique of Rust's gamedev ecosystem and shortcomings
357+
inherent to the language itself.
265358

266-
<!-- Links to handpicked reddit/twitter/urlo/etc threads that provide
267-
useful information -->
359+
[Dioxus Labs + "High-level Rust"][dioxus-post] is a detailed response to the original post, outlining concrete steps to improve the situation
360+
and signaling the author's readiness to fund the development of features they see as necessary for the ecosystem to thrive.
268361

269-
## Requests for Contribution
362+
_Discussions: [lobste.rs](https://lobste.rs/s/dsqumn/dioxus_labs_high_level_rust),
363+
[/r/rust](https://www.reddit.com/r/rust/comments/1dkzzn5/dioxus_labs_highlevel_rust/),
364+
[Hacker News](https://news.ycombinator.com/item?id=40766805)_
365+
366+
[dioxus-post]: https://dioxus.notion.site/Dioxus-Labs-High-level-Rust-5fe1f1c9c8334815ad488410d948f05e
367+
[dioxus-labs]: https://dioxuslabs.com/
368+
[leaving-post]: https://loglog.games/blog/leaving-rust-gamedev/
270369

271-
<!-- Links to "good first issue"-labels or direct links to specific tasks -->
272370

273371
## Jobs
274372

275-
<!-- An optional section for new jobs related to Rust gamedev -->
373+
Ubisoft Montreal is searching for an [online Rust programmer][ubisoft-job]
374+
for an unannounced project.
375+
376+
[ubisoft-job]: https://www.ubisoft.com/en-us/company/careers/search/743999993500090-programmer-online-unannounced-project
377+
378+
## Misc. Links
379+
380+
### Notable GDC talks
381+
382+
- [Larian Cinematics: A Top-Down Look at Our Bottom-Up Approach in 'Baldur's Gate 3'](https://www.youtube.com/watch?v=MdmY9Mt-vz8&t)
383+
- ['Valheim': Vikings, Roadmaps & Buying a Horse During Early Access](https://www.youtube.com/watch?v=YoOCUpdYYm4)
276384

277-
## Bonus
385+
### Engine Newsletters
278386

279-
<!-- Bonus section to make the newsletter more interesting
280-
and highlight events from the past. -->
387+
- This Week In Bevy
388+
- [Tiny Glade, VJ performances, and 2d lighting](https://thisweekinbevy.com/issue/2024-06-03-tiny-glade-vj-performances-and-2d-lighting)
389+
- [Bevy 0.14-rc.2, Powerglove, and Soup!](https://thisweekinbevy.com/issue/2024-06-10-bevy-014-rc2-powerglove-and-soup)
390+
- [Meshlets, Stable Interpolation, and Generalized ECS Reactivity with Observers!](https://thisweekinbevy.com/issue/2024-06-17-meshlets-stable-interpolation-and-generalized-ecs-reactivity-with-observers)
391+
- [Water, Global Illumination, and UI toolkits](https://thisweekinbevy.com/issue/2024-06-24-water-global-illumination-and-ui-toolkits)
392+
- This Week In Quads
393+
- [`blocking_event_loop` on ios opengl/metal, Docker article, and libxkbcommon on NixOS](https://macroquad.rs/twiq/week5/)
281394

282395
## Future news
283396

101 KB
Loading
-446 KB
Binary file not shown.

content/news/052/ssr.jpg

80.1 KB
Loading

content/news/052/tiny-glade.jpg

77.2 KB
Loading
-1.72 MB
Binary file not shown.

templates/shortcodes/embed_video.html

+2-4
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,5 @@
55
66
#} -->
77
<video controls autoplay muted loop>
8-
<source
9-
type="{{ type }}" src="{{ src }}"
10-
onerror="parentNode.parentElement.innerText = 'Sorry, this video does not exist or your browser does not support the video codec. Try a different browser!'" />
11-
</video> {% if caption %}<em>{{ caption }}</em>{% endif %}
8+
<source type="{{ type }}" src="{{ get_url(path=page.colocated_path ~ src)}}" />
9+
</video> {% if caption %}<em>{{ caption }}</em>{% endif %}

0 commit comments

Comments
 (0)