Skip to content

Commit

Permalink
Write first draft of June entry (#1534)
Browse files Browse the repository at this point in the history
Co-authored-by: Tau Gärtli <[email protected]>
  • Loading branch information
janhohenheim and bash committed Jun 30, 2024
1 parent 723c49f commit f35e439
Show file tree
Hide file tree
Showing 13 changed files with 157 additions and 46 deletions.
Binary file added content/news/052/bevypunk.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified content/news/052/egui_ratatui.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added content/news/052/godot-rust.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed content/news/052/godot-rust.png
Binary file not shown.
Binary file modified content/news/052/gunbug.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added content/news/052/haalka.mp4
Binary file not shown.
197 changes: 155 additions & 42 deletions content/news/052/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,20 +31,15 @@ Feel free to send PRs about your own projects!

- [Announcements](#announcements)
- [Game Updates](#game-updates)
- [Untitled Pixel Wizards Game](#untitled-pixel-wizards-game)
- [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)
- [Metalmancy @ OpenSauce](#metalmancy-opensauce)
- [Meeting Minutes](#meeting-minutes)
- [Discussions](#discussions)
- [Requests for Contribution](#requests-for-contribution)
- [Interviews](#interviews)
- [Blog Posts](#blog-posts)
- [Jobs](#jobs)
- [Bonus](#bonus)
- [Future news](#future-news)
- [Misc. Links](#misc-links)
- [Future News](#future-news)

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

## Announcements

TODO: I'll be working on adding an email subscription this weekend, so I'll write about it here once that's done :) - Jan

## Game Updates

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

{{ embed_video(type="video/mp4", src="untitled-pixel-wizards-game.mp4",
caption="Enemies now perceive, pursue and attack.. and occasionally get burned to death.") }}

[![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]
_Enemies now perceive, pursue and attack.. and occasionally get burned to death._
caption="Enemies now perceive, pursue and attack.. and occasionally get burned to death.") }}

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

### [Gunbug][gunbug]

[![Gunbug](gunbug.jpg)][gunbug]
[![Gunbugs shooting at a bunch of eggplants](gunbug.jpg)][gunbug]
_Gunbugs shooting at a bunch of eggplants_

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

Gunbug focuses on shooting lots of enemies with lots of guns. It can be played
It focuses on shooting lots of enemies with lots of guns. It can be played
solo or with up to 10 players.

It is built with the [Bevy] game engine. It uses [bevy_rapier] for ray casting,
[bevy_kira_audio] for audio, and [renet] for networking. iOS and MacOS versions
are built with [xbuild].
It is built with [Bevy] and uses [bevy_rapier] for ray casting,
[bevy_kira_audio] for audio, and [renet] for networking.
The iOS and macOS versions are built with [xbuild].

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

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

### [godot-rust]

![godot-rust logo](godot-rust.png)
![godot-rust logo](godot-rust.jpg)

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

### [Bevy 0.14 Release Candidate][bevy-0.14-rc]

![Sharp Screen-Space Reflections in Bevy 0.14](ssr.jpg)
_Sharp Screen-Space Reflections in Bevy 0.14_

The Bevy game engine is gearing up to release version 0.14.
The (probably) last release candidate is out now and ready for testing.
If you want to help out,
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.

[bevy-0.14-rc]: https://bevyengine.org/news/draft-bevy-0-14/
[bevy-0.14-rc-migration]: https://bevyengine.org/learn/migration-guides/0-13-to-0-14/

## Learning Material Updates

### [Bevy Cheatbook][bevy-cheatbook]

The community-beloved unofficial [Bevy Cheatbook][bevy-cheatbook] by Ida "Iyes" is a collection of Bevy tutorials, recipes and advanced documentation.
The cheatbook is currently in the process of being updated to Bevy 0.14 and now features the following new chapters:
- [Transform Interpolation/Extrapolation](https://bevy-cheatbook.github.io/cookbook/smooth-movement.html):
How to get smooth-looking movement on-screen for things you simulate in FixedUpdate
- [Internal Parallelism](https://bevy-cheatbook.github.io/programming/par-iter.html):
Multithreading within a Bevy system
- [One-Shot Systems](https://bevy-cheatbook.github.io/programming/one-shot-systems.html):
Systems that you run on-demand, not in a schedule
- [Background Computation](https://bevy-cheatbook.github.io/fundamentals/async-compute.html):
How to do processing that may span multiple frame updates and not hold up the game's framerate with long CPU work.

[bevy-cheatbook]: https://bevy-cheatbook.github.io/

### [Game development in Rust with Macroquad][macro-learning]

Olle Wreede of [Agical][agical] published a [complete guide][macro-learning] on
how to develop a classic 2D shoot 'em up game using the game library
Macroquad and the Rust programming language.

It covers everything from a simple Hello World Macroquad application to adding graphics, audio, a shader, a graphical menu,
and how to release the game on multiple platforms.

[agical]: https://www.agical.se/
[macro-learning]: <https://mq.agical.se/>

### Other learning materials

- [Using tracing to profile a Bevy project](https://rornic.com/posts/using-tracing-to-profile-a-bevy-project/)
- [Bevycation of Brackeys First Game in Godot Tutorial](https://github.com/Occuros/bevycation_brackeys_first-game-in-godot):
A Bevy version of Brackeys' ["How to make a Video Game - Godot Beginner Tutorial"](https://www.youtube.com/watch?v=LOhfqjmasi0)

## Tooling Updates

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

## Popular Workgroup Issues in GitHub
### [FMOD-oxide][fmod-oxide]

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.
Certain APIs, such as loading banks from a pointer, are marked as unsafe, but are still available for use.

[fmod-oxide]: https://crates.io/crates/fmod-oxide

### [Bevy Lunex][bevy-lunex]

![Bevypunk: a recreation of Cyberpunk 2077's UI made with Lunex](bevypunk.jpg)
_Bevypunk: a recreation of Cyberpunk 2077's UI made with Lunex_


Lunex is a path based retained layout engine for Bevy entities, built around vanilla Bevy ECS.
It gives you the ability to make your own custom UI using regular ECS like every other part of your app.
Notably, this includes world-space 3D UI!

The above screenshot is from the [Bevypunk UI Web Demo][bevypunk], which includes a main menu and a character creation screen.

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

## Other News
[bevy-lunex]: https://github.com/bytestring-net/bevy_lunex
[bevy-lunex-book]: https://bytestring-net.github.io/bevy_lunex/
[bevypunk]: https://idedary.itch.io/bevypunk

### [haalka]

{{ embed_video(type="video/mp4", src="haalka.mp4", caption="A Minecraft-like UI made with haalka") }}

হালকা: _in bengali, haalka means "light" (e.g. not heavy) and can also be used to mean "easy"_

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).
It is a port of the web UI libraries [MoonZoon](https://github.com/MoonZoon/MoonZoon) and [Dominator](https://github.com/Pauan/rust-dominator)
and offers the same signal semantics as a thin layer on top of bevy_ui.

While haalka is primarily targeted at UI and provides high level UI abstractions as such,
its core abstraction can be used to manage signals-powered reactivity for any entity, not just bevy_ui nodes.

[haalka]: https://github.com/databasedav/haalka


### Other Library Updates and Releases

- [gdext-coroutines](https://github.com/Houtamelo/gdext_coroutines): Run Rust coroutines in Godot 4.2+ (through GDExtension), inspired on Unity's Coroutines design.
- [FunDSP 0.18](https://github.com/SamiPerttu/fundsp): FunDSP is an audio DSP ([digital signal processing](https://en.wikipedia.org/wiki/Digital_signal_processing))
library for audio processing and synthesis. This release is a rewrite that adds no_std and SIMD support.

## Interviews

### [Metalmancy @ OpenSauce][metalmancy_interview]

![image/GIF description](metalmancy_interview.png)
![image/GIF description](metalmancy_interview.jpg)
_Arcade cabinet close up_

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

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



[metalmancy_interview]: https://www.youtube.com/watch?v=qUIAnZ0cvvo&t=291s
[metalmancy_website]: https://www.micronote.tech/
[framework_website]: https://frame.work
[opensauce_website]: https://opensauce.com/
[Thetawave]: https://store.steampowered.com/app/2427510/Thetawave

<!-- One-liners for plan items that haven't got their own sections. -->
### [Tiny Glade Developers Discuss Bevy, Proceduralism, Publishers & Cozy Games][tiny-glade-interview]

![An idyllic scenery made in Tidy Glade](tiny-glade.jpg)
_An idyllic scenery made in Tidy Glade_

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

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

[See all meeting issues][label_meeting] including full text notes
or [join the next meeting][join].
[tiny-glade-interview]: https://80.lv/articles/exclusive-tiny-glade-developers-discuss-bevy-proceduralism-publishers-cozy-games
[tiny-glade-steam]: https://store.steampowered.com/app/2198150/Tiny_Glade/

<!-- One-liners for plan items that haven't got their own sections. -->

## Blog Posts

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

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

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

## Requests for Contribution
_Discussions: [lobste.rs](https://lobste.rs/s/dsqumn/dioxus_labs_high_level_rust),
[/r/rust](https://www.reddit.com/r/rust/comments/1dkzzn5/dioxus_labs_highlevel_rust/),
[Hacker News](https://news.ycombinator.com/item?id=40766805)_

[dioxus-post]: https://dioxus.notion.site/Dioxus-Labs-High-level-Rust-5fe1f1c9c8334815ad488410d948f05e
[dioxus-labs]: https://dioxuslabs.com/
[leaving-post]: https://loglog.games/blog/leaving-rust-gamedev/

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

## Jobs

<!-- An optional section for new jobs related to Rust gamedev -->
Ubisoft Montreal is searching for an [online Rust programmer][ubisoft-job]
for an unannounced project.

[ubisoft-job]: https://www.ubisoft.com/en-us/company/careers/search/743999993500090-programmer-online-unannounced-project

## Misc. Links

### Notable GDC talks

- [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)
- ['Valheim': Vikings, Roadmaps & Buying a Horse During Early Access](https://www.youtube.com/watch?v=YoOCUpdYYm4)

## Bonus
### Engine Newsletters

<!-- Bonus section to make the newsletter more interesting
and highlight events from the past. -->
- This Week In Bevy
- [Tiny Glade, VJ performances, and 2d lighting](https://thisweekinbevy.com/issue/2024-06-03-tiny-glade-vj-performances-and-2d-lighting)
- [Bevy 0.14-rc.2, Powerglove, and Soup!](https://thisweekinbevy.com/issue/2024-06-10-bevy-014-rc2-powerglove-and-soup)
- [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)
- [Water, Global Illumination, and UI toolkits](https://thisweekinbevy.com/issue/2024-06-24-water-global-illumination-and-ui-toolkits)
- This Week In Quads
- [`blocking_event_loop` on ios opengl/metal, Docker article, and libxkbcommon on NixOS](https://macroquad.rs/twiq/week5/)

## Future news

Expand Down
Binary file added content/news/052/metalmancy_interview.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed content/news/052/metalmancy_interview.png
Binary file not shown.
Binary file added content/news/052/ssr.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added content/news/052/tiny-glade.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed content/news/052/untitled-pixel-wizards-game.gif
Binary file not shown.
6 changes: 2 additions & 4 deletions templates/shortcodes/embed_video.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,5 @@
#} -->
<video controls autoplay muted loop>
<source
type="{{ type }}" src="{{ src }}"
onerror="parentNode.parentElement.innerText = 'Sorry, this video does not exist or your browser does not support the video codec. Try a different browser!'" />
</video> {% if caption %}<em>{{ caption }}</em>{% endif %}
<source type="{{ type }}" src="{{ get_url(path=page.colocated_path ~ src)}}" />
</video> {% if caption %}<em>{{ caption }}</em>{% endif %}

0 comments on commit f35e439

Please sign in to comment.