diff --git a/content/news/051/bevy_rep.jpg b/content/news/051/bevy_rep.jpg new file mode 100644 index 000000000..23d4cdc87 Binary files /dev/null and b/content/news/051/bevy_rep.jpg differ diff --git a/content/news/051/fyrox-editor.png b/content/news/051/fyrox-editor.png new file mode 100644 index 000000000..20a9f4366 Binary files /dev/null and b/content/news/051/fyrox-editor.png differ diff --git a/content/news/051/index.md b/content/news/051/index.md index 6566f9224..7f0b09fe5 100644 --- a/content/news/051/index.md +++ b/content/news/051/index.md @@ -1,15 +1,15 @@ +++ title = "This Month in Rust GameDev #51 - May 2024" transparent = true -date = 2024-06-03 -draft = true +date = 2024-06-05 +draft = false +++ <!-- no toc --> <!-- Check the post with markdownlint--> -Welcome to the 51th issue of the Rust GameDev Workgroup's +Welcome to the 51st issue of the Rust GameDev Workgroup's monthly newsletter. [Rust] is a systems language pursuing the trifecta: safety, concurrency, and speed. @@ -34,14 +34,8 @@ Feel free to send PRs about your own projects! - [Engine Updates](#engine-updates) - [Learning Material Updates](#learning-material-updates) - [Tooling Updates](#tooling-updates) -- [Library Updates](#library-updates) -- [Popular Workgroup Issues in GitHub](#popular-workgroup-issues-in-github) - [Other News](#other-news) -- [Meeting Minutes](#meeting-minutes) -- [Discussions](#discussions) -- [Requests for Contribution](#requests-for-contribution) -- [Jobs](#jobs) -- [Bonus](#bonus) +- [Misc. Links](#misc-links) <!-- Ideal section structure is: @@ -67,6 +61,29 @@ If needed, a section can be split into subsections with a "------" delimiter. ## Announcements +### Survey Results + +Last month, we asked you to fill out a survey to help us improve the rebooted newsletter. Thanks to 52 of you, we've got [some data][survey-data] now! +We analyzed the results in [this blog post][survey_results]. The biggest takeaways are: +- People are generally excited about the newsletter +- The current frequency of the newsletter is good +- Readers do not want anything in the newsletter generated by AI +- Contributing to the newsletter could be easier. If you've got ideas on how to make this happen, please [let us know](https://github.com/rust-gamedev/rust-gamedev.github.io/issues/1519)! + +You can visit the [blog post][survey_results] to see the full results and some nice plots. +We will discuss how to act on this feedback next month and keep you updated on the changes we make. + +Thanks to everyone who participated! + +[survey-data]: https://github.com/janhohenheim/rust-gamedev-statistics/tree/main/jan-hohenheim-2024 +[survey_results]: <https://gamedev.rs/blog/survey-02> + +### Email Subscription + +Last month, we announced that we would add an email subscription option to the newsletter. +Unfortunately, we did not manage to implement this in time for this issue. +He will [work on this feature](https://github.com/rust-gamedev/rust-gamedev.github.io/issues/24) for the next month, and we hope to have it ready for you then. + ## Game Updates ### [Way of Rhea][wor] @@ -92,8 +109,8 @@ You can support development by [purchasing Way of Rhea on Steam][wor], or ### [Untitled Pixel Wizard Game][pixel-wizards] -[][pixel-wizards] -_A deadly foe meets their end._ +[][pixel-wizards] +_A deadly foe meets its end._ [Untitled Pixel Wizard Game][pixel-wizards] is a local-multiplayer [Noita]-like platformer about killing baddies using spells powered by pixel physics. @@ -104,9 +121,7 @@ rigid bodies; see [Bridging Physics Worlds][pixel-wizards-bridging-physics-world This month: - [Tilemapping via LDTK][pixel-wizards-tilemapping]: levels got just a tiny bit prettier. -- [Level Progression][pixel-wizards-levels]: players learned to die, and levels link together. -- [Architectural Ruminations][pixel-wizards-arch]: reflections on using Rust for game development, - prompted by LogLog Games's '[Leaving Rust gamedev after 3 years]'. +- [Level Progression][pixel-wizards-levels]: players learn to die, and levels link together. - [Target Practice][pixel-wizards-targets]: the first "enemy" was added to the game. [pixel-wizards]: https://slowrush.dev @@ -116,44 +131,45 @@ This month: [pixel-wizards-arch]: https://www.slowrush.dev/news/architectural-questions/ [pixel-wizards-levels]: https://www.slowrush.dev/news/level-progression/ [pixel-wizards-tilemapping]: https://www.slowrush.dev/news/tilemapping/ -[caspark]: https://github.com/caspark/ -[Leaving Rust gamedev after 3 years]: https://loglog.games/blog/leaving-rust-gamedev/ +[Leaving Rust game dev after 3 years]: https://loglog.games/blog/leaving-rust-gamedev/ ### [mirr/orb] - + +_A typical level and its UI_ [mirr/orb] by [syn9] is a puzzle game about bouncing lasers off mirrors to activate orbs. -The game was created in 9 days using syn9's Rust mini game framework (mgfw) and released on May 27th. +The game was created in 9 days using syn9's Rust mini game framework [mgfw] and released on May 27th. This release contains 110 levels which pull from 870 available puzzle layouts. [mirr/orb]: https://syn9dev.itch.io/mirrorb [syn9]: https://twitter.com/Syn9Dev +[mgfw]: https://github.com/Syn-Nine/mgfw ### [CyberGate Playground][cybergate-shorts] - + _Shooting a Hammer against a Floating Wall and Destroying part of it_ CyberGate Playground is a multiplayer browser game where players claim territory by painting the environment in their color, with the goal of overpowering opponents. The past few months' updates include: -- Flying with butterfly-like mechanics; -- [Fusion Upgrade:][cybergate-fuse] Combine hammers, balls, dices, to multiply their powers; -- Hammer destruction made more challenging and interesting, with upgrades enabling deeper wall penetration; -- Improved Strength and Weight system, and calculate their impact on character movement and abilities; -- Added an 'Owned Upgrades' menu using `yakui` crate, giving a neat overview of all acquired upgrades; -- Many other UI / gameplay improvements based on player feedback; +- Flying with butterfly-like mechanics +- [Fusion Upgrade:][cybergate-fuse] Combine hammers, balls, and dice to multiply their powers +- Hammer destruction made more challenging and interesting, with upgrades enabling deeper wall penetration +- Improved strength and weight system, and calculate their impact on character movement and abilities +- Added an 'Owned Upgrades' menu using `yakui` crate, giving a neat overview of all acquired upgrades +- Many other UI / gameplay improvements based on player feedback Rust's ownership and strongly typed features played a crucial role in allowing the gameplay code to scale to more complex and detailed mechanics while retaining correct, clean, and bug-free code. CyberGate Playground is a passion project. -If you're interested in the game's progress, join the [Discord server][cybergate-discord] +If you're interested in the game's progress, join the [Discord server][cybergate-discord]. [cybergate-shorts]: https://youtube.com/@cyber-gate/shorts [cybergate-discord]: https://discord.gg/P3D8weeQ7Z @@ -161,23 +177,46 @@ If you're interested in the game's progress, join the [Discord server][cybergate ## Engine Updates -### [Macroquad] +### Macroquad Newsletter - + _"Basic" 3d rendering (gltf helmet)_ -[@Fedor](https://github.com/not-fl3/), creator of [*Quad], a game engine written in Rust, is starting a [This week in Quads](https://macroquad.rs/twiq) newsletter. +[@Fedor](https://github.com/not-fl3/), creator of [*Quad], a game engine written in Rust, is starting a ["This week in Quads"](https://macroquad.rs/twiq) newsletter. -Overall polish, developer experience, performance optimization and basic 3d visualization have been worked on. +This month overall polish, developer experience, performance optimization, and basic 3d visualization have been worked on. -[Macroquad]: https://github.com/not-fl3/macroquad [*Quad]: https://www.patreon.com/posts/on-buses-and-101117631 +### [Fyrox 0.34][fyrox-release] + + +_The improved Fyrox editor UI_ + +[Fyrox] got a huge update this month. For those who don't know, Fyrox is a game engine written in Rust that is especially notable for sporting a Unity-like editor. + +[This release][fyrox-release] includes code hot reloading, project exporter, assets preview generation, UI prefabs, GLTF support, static and dynamic batching, +keyboard navigation, animation support for UI, editor style and usability improvements, and many more. + +[Fyrox]: https://fyrox.rs +[fyrox-release]: https://fyrox.rs/blog/post/fyrox-game-engine-0-34/ + +### Bevy 0.14 WIP + + +_One of the upcoming features in Bevy 0.14 is easier texture repetition for GLTF objects_ + +The 0.14 release of [Bevy] nears completion, but the team is still working on detailed +release notes and the migration guide. If you want to help, you can grab one of the [open documentation issues][bevy-docs-issues]. + +[Bevy]: https://bevyengine.org/ +[bevy-docs-issues]: https://github.com/bevyengine/bevy-website/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3AA-Release-Notes + ## Learning Material Updates ### Xkcd Machine - + _A small part of the XKCD Machine_ Chromakode released a detailed [blog post][xkcd_machine_blogpost] about their implementation of [xkcd "Machine"][xcd_machine_playable]. @@ -192,11 +231,11 @@ Machine is written in React/Typescript, and uses [Rapier][xkcd_rapier]: a physic ### [Rusty Playdate] - + _The Playdate console_ [Rusty Playdate] ([GitHub][Rusty Playdate], [Mastodon][Rusty Playdate Masto]) by [@boozook](https://github.com/boozook) -is the large set of crates with bindings, cargo-plugin and toolset for the full cycle of creating games for the [Playdate handheld console][playdate]. +is the large set of crates with bindings, cargo-plugin, and toolset for the full cycle of creating games for the [Playdate handheld console][playdate]. This is a fairly new console reminiscent of a GameBoy with a crank handle geared towards indie games. The current release sports the following notable improvements: @@ -213,20 +252,14 @@ _Discussions: [GitHub][Rusty Playdate Gh-disc], [Matrix][Rusty Playdate Matrix]. [Rusty Playdate Matrix]: https://matrix.to/#/#playdate.rs:matrix.org [playdate]: https://play.date/ -## Library Updates - -## Popular Workgroup Issues in GitHub - -<!-- Up to 10 links to interesting issues --> - ## Other News <!-- One-liners for plan items that haven't got their own sections. --> ### Bevy rustunit meetup #3 - -_Bevy meetup youtube extract, showing its 3 participants._ + +_Bevy meetup YouTube extract, showing its 3 participants._ [Rustunit][rustunit] has hosted its 3rd unofficial online [Bevy Engine][bevy] meetup on April 19th with the following topics: - Intro / Code of Conduct @@ -240,8 +273,8 @@ and join [the meetup group][rustunit_bevy_meetup_event] to get notified of futur ### Bevy rustunit meetup #4 - -_Bevy meetup youtube extract, showing its 4 participants._ + +_Bevy meetup YouTube extract, showing its 4 participants._ [Rustunit][rustunit] has hosted its 4th unofficial online [Bevy Engine][bevy] meetup on May 24th with the following topics: - Francois - Catching Rendering Regressions on all Platforms @@ -254,7 +287,6 @@ and join [the meetup group][rustunit_bevy_meetup_event] to get notified of futur [rustunit_bevy_meetup_4_youtube]: https://www.youtube.com/watch?v=rnE_nINEs2M [rustunit]: https://rustunit.com/ [rustunit_bevy_meetup_event]: https://www.meetup.com/bevy-game-development/ -[bevy]: https://bevyengine.org/ ### RustNL @@ -264,12 +296,12 @@ and join [the meetup group][rustunit_bevy_meetup_event] to get notified of futur While the conference was not specific to game development, organizers contacted rust game development communities to showcase games developed in Rust between talks, -which you can [watch on youtube][rustnl_games_youtube]. +which you can [watch on YouTube][rustnl_games_youtube]. Special mention to the following talks, relevant to game development: -- [Let's Build High Performance Rust UI][rustnl_kevin_boos_talk] by Kevin Boos +- [Let's Build High-Performance Rust UI][rustnl_kevin_boos_talk] by Kevin Boos - [A Research Project on Rust User Interface Architecture][rustnl_xilem_talk] by Ralph Levien about [Xilem][rustnl_xilem_intro] -- [(Th)Rust for Space: Initial momentum][rustnl_michael_melchiore_talk] by Michaël Melchiore, who gave a shout out to [Bevy Engine][rustnl_bevy_engine]. +- [(Th)Rust for Space: Initial momentum][rustnl_michael_melchiore_talk] by Michaël Melchiore, who gave a shout-out to [Bevy Engine][rustnl_bevy_engine]. [rustnl_main_website]: https://2024.rustnl.org/ [rustnl_games_youtube]: https://www.youtube.com/watch?v=XLefuzE-ABU&t=7583s @@ -279,32 +311,32 @@ Special mention to the following talks, relevant to game development: [rustnl_michael_melchiore_talk]: https://www.youtube.com/watch?v=XLefuzE-ABU&t=3898s [rustnl_bevy_engine]:https://bevyengine.org/ -## Meeting Minutes - -<!-- Up to 10 most important notes + a link to the full details --> +## Misc. Links -[See all meeting issues][label_meeting] including full text notes -or [join the next meeting][join]. +### New libraries -[label_meeting]: https://github.com/rust-gamedev/wg/issues?q=label%3Ameeting +- [egui_ratatui](https://github.com/gold-silver-copper/egui_ratatui): A ratatui backend that is also an egui widget. +Deploy on the web with WASM or ship natively with Bevy, macroquad, or eframe +- [bevy_ratatui_render](https://github.com/cxreiff/bevy_ratatui_render): A Bevy plugin for rendering your game to the terminal using ratatui +- [bevy_light_2d](https://github.com/jgayfer/bevy_light_2d): General purpose 2D lighting for the Bevy game engine -## Discussions +### Library Updates -<!-- Links to handpicked reddit/twitter/urlo/etc threads that provide -useful information --> +- [Kira 0.9](https://github.com/tesselode/kira/releases/tag/v0.9.0): Library for expressive game audio +- [Quinn 0.11.2](https://github.com/quinn-rs/quinn/releases/tag/0.11.2): Async-friendly QUIC implementation in Rust +- [rolt and jolt-sys 0.3.1](https://github.com/SecondHalfGames/jolt-rust/blob/main/CHANGELOG.md#v030): Rust bindings to Jolt Physics +- [Hanabi 0.11](https://github.com/djeedai/bevy_hanabi/blob/v0.11.0/CHANGELOG.md): A GPU particle system plugin for the Bevy game engine -## Requests for Contribution +### Blog Posts -<!-- Links to "good first issue"-labels or direct links to specific tasks --> - -## Jobs - -<!-- An optional section for new jobs related to Rust gamedev --> +- [Architectural Ruminations][pixel-wizards-arch]: reflections on using Rust for game development, + prompted by LogLog Games's [Leaving Rust game dev after 3 years] -## Bonus +### Videos -<!-- Bonus section to make the newsletter more interesting -and highlight events from the past. --> +- [The Secret Behind Photorealistic And Stylized Graphics](https://www.youtube.com/watch?v=KkOkx0FiHDA): +Explaining the rendering techniques behind photorealistic and stylized graphics +- [GDC: Tunes of the Kingdom](https://www.youtube.com/watch?v=N-dPDsLTrTE): Evolving physics and sounds for ‘The Legend of Zelda: Tears of the Kingdom’ ------