Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release N50 #1496

Merged
merged 23 commits into from
May 3, 2024
Merged
Changes from 17 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
243 changes: 131 additions & 112 deletions content/news/050/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title = "This Month in Rust GameDev #50 - April 2024"
transparent = true
date = 2024-05-03
draft = true
draft = false
+++

<!-- no toc -->
Expand Down Expand Up @@ -33,39 +33,64 @@ Feel free to send PRs about your own projects!
- [Game Updates](#game-updates)
- [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)

<!--
Ideal section structure is:
## Announcements

```
### [Title]
*Please fill out [this survey][survey] before skipping this section! More info below!*

![image/GIF description](image link)
_image caption_
Hey everyone, it's been a while! As you've certainly noticed, the newsletter was on
a hiatus for a while. The reason was mostly maintainer burnout, which is also why
the newsletter of August 2023 was not published [until a few days ago][august-news].

A paragraph or two with a summary and [useful links].
We're back now though! The community member Jan Hohenheim ([@janhohenheim])
has taken up the main responsibility for reviving the newsletter. This includes making changes requested
by the community, and making sure the format is sustainable for the long term.

_Discussions:
[/r/rust](https://reddit.com/r/rust/todo),
[twitter](https://twitter.com/todo/status/123456)_
### Schedule Changes

[Title]: https://first.link
[useful links]: https://other.link
```
Thierry Berger ([@Vrixyz]), who has also decided to help with the project,
has come up with a new [monthly schedule][monthly_schedule] that we will try out:

If needed, a section can be split into subsections with a "------" delimiter.
-->
- 3rd of the month: Newsletter starts. A call for submissions is made on social media
and community Discord servers interested in receiving it. At the same time, last month's newsletter is published.
- 3rd to 28th of the month: submissions are collected and the newsletter is written.
- 28th of the month: Submissions are closed. New submissions go into the next month's newsletter.
- 3rd of the next month: The newsletter is published. Any submissions not edited
in time will be moved to the next month or removed entirely.

This more strict schedule should help with the issue of late entries and reduce the pressure of editing by
having a dedicated time for it with no incoming submissions. The goal is to be more consistent and reliable
in our publishing schedule.

### Community Survey

This restructuring is also a good time to improve the content of the newsletter.
We've got some community feedback on our [Discord] already and would like to hear more from you.
It would be great if you could fill out [this survey][survey] to let us know how
we can improve the newsletter going forward. The survey closes on the **28th of May**.

### Future Steps

## Announcements
Based on feedback we've already gotten, the steps for next months are:
- Add an email subscription option to the newsletter
- Setup a system for how to edit entries that are not ready before the newsletter ships.
We are currently looking into either hiring a part-time editor,
using generative AI to add a few sentences where needed, or simply removing these entries.

Additionally, we will be evaluating the [survey] results in the next newsletter, so stay tuned for that.

That's all for now. Have fun reading!


[august-news]: https://gamedev.rs/news/049/
[@janhohenheim]: https://github.com/janhohenheim
[@Vrixyz]: https://github.com/Vrixyz
[monthly_schedule]: https://github.com/rust-gamedev/rust-gamedev.github.io/issues/1417#issuecomment-1764534286
[survey]: https://forms.gle/oeSb46twWsxRKYJe7
[Discord]: https://discord.gg/game-development-in-rust-676678179678715904

## Game Updates

Expand All @@ -76,56 +101,39 @@ If needed, a section can be split into subsections with a "------" delimiter.
[Way of Rhea][wor] just got a release date: it will be coming to Steam on
**May 20th, 2024**!

Way of Rhea is a color based puzzle game with difficult puzzles, but forgiving
mechanics being developed by [@masonremaley] in a custom Rust engine.
Way of Rhea ([Steam](https://store.steampowered.com/app/1110620/Way_of_Rhea/)) is a color based puzzle game with difficult puzzles, but forgiving
janhohenheim marked this conversation as resolved.
Show resolved Hide resolved
mechanics being developed by [@masonremaley] in a custom engine.
janhohenheim marked this conversation as resolved.
Show resolved Hide resolved

You can support development by [wishlisting Way of Rhea on Steam][wor], or
[signing up for the mailing list][wor-mail].

Recent updates:
The most important updates are:
janhohenheim marked this conversation as resolved.
Show resolved Hide resolved
- A [closed beta][wor-closed-beta] began
- All characters now have voices
- A [reset button][wor-reset] was added for when undo is inconvenient
- Speech bubbles now [identify the speaker][wor-speech-bubble]
- Orbs now are shown with an "xray" effect so they are visible even when behind scenery
- Older CPUs without AVX support are [now supported][wor-avx]
- Various [speedrunning features][wor-speedrun] were added
- Secrets were made harder
- An [in game achievement UI][wor-achievements] was created
- An [in game Jukebox UI][wor-jukebox] was created
- For more updates, see the [release notes on Steam][wor-release-notes]...

For the full changelog, see the [release notes][wor-release-notes].
AngelOnFira marked this conversation as resolved.
Show resolved Hide resolved

[@masonremaley]: https://twitter.com/masonremaley
[wor]: https://store.steampowered.com/app/1110620/Way_of_Rhea/?utm_campaign=tmirgd&utm_source=n50
[wor-trailer]: https://youtu.be/vFsO436r2Pw
[wor-closed-beta]: https://store.steampowered.com/news/app/1110620/view/7665759271877780609
[wor-reset]: https://clan.cloudflare.steamstatic.com/images//35599024/49e8760118b7b18e3b230ba3a3a28179c4b0e526.png
[wor-speech-bubble]: https://clan.cloudflare.steamstatic.com/images//35599024/5f63bca0a4258a26e77ac40b3d2a75f197304dcb.png
[wor-avx]: https://store.steampowered.com/news/app/1110620/view/4118050466869150657
[wor-speedrun]: https://clan.cloudflare.steamstatic.com/images//35599024/6ee82d4e0105f073082c83626e37933e682b5936.png
[wor-achievements]: https://clan.cloudflare.steamstatic.com/images//35599024/573f81c1ebce54d9efedcd693fcbe684a5629c7f.png
[wor-jukebox]: https://clan.cloudflare.steamstatic.com/images//35599024/b21c4b8ce5fa9cca7c6c1967ec5ffe169d8f1cb2.png
[wor-mail]: https://anthropicstudios.com/newsletter/signup/tech
[wor-release-notes]: https://store.steampowered.com/news/app/1110620

### [SM64JSARCHIVE][sm64jsarchive]

![Super Mario 64 JavaScript](sm64jsarchive.jpg)

[SM64JSARCHIVE][sm64jsarchive] is an actively maintained fork of [sm64js]: a decompilation project of Super Mario 64 to javaScript.
Its source code is available on [GitHub][sm64jsarchive-github]
[SM64JSARCHIVE][sm64jsarchive] is an actively maintained fork of [sm64js]: a decompilation project of Super Mario 64 to JavaScript.
The code is open-sourced on [GitHub][sm64jsarchive-github].

The [backend server][sm64jsarchive-server] has been finally been able to start after 10 long months
and is now live to <https://mmo.sm64jsarchive.com>
The [backend server][sm64jsarchive-server], which is written in Rust,
has been finally been able to start after 10 long months
and is now live at <https://mmo.sm64jsarchive.com>

The newest updates have been:

- Working MMO
- More stable changes to the games client

A stress test is scheduled for 2024-04-10 12:25 CST and everyone is invited!

Note: if you have a laggy computer or the page does not load within 10-20 minutes then please try refreshing.
A successful stress test for the MMO feature was run on 2024-04-10.

[sm64jsarchive]: https://mmo.sm64jsarchive.com
[sm64jsarchive-github]: https://github.com/uuphoria2/sm64jsarchive
Expand All @@ -137,21 +145,14 @@ Note: if you have a laggy computer or the page does not load within 10-20 minute
![OpenCombat: demo available soon](OpenCombat202404.jpg)
_Official demo available soon_

Open Combat ([Website][OpenCombat_website], [GitHub][OpenCombat_github],
[Discord][OpenCombat_discord]) is a real-time tactical game
Open Combat ([GitHub][OpenCombat_github], [Discord][OpenCombat_discord]) is a real-time tactical game
which takes place during World War II.

Some major changes since last news!
The basic game logic and HUD are now complete,
and the high definition map for the demo is finished.

- Basic HUD is now complete
- High definition map finished for the demo
- Basic game logic finished

The game demo is almost finished.
Some things are missing like soldier high definition assets, or minimal AI for opponent.
But the demo is playable and we need some alpha players to make feedbacks 🎮 !
You can find game binaries on the [Github page][OpenCombat_release].
Please come and see us on the [Discord][OpenCombat_discord] to make your feedback !
Some things are missing, like high definition assets for soldiers or minimal AI for opponents.
But the [demo is playable][OpenCombat_release]and the team would love to hear your feedback!

[OpenCombat_website]: https://opencombat.bux.fr/
[OpenCombat_github]: https://github.com/buxx/OpenCombat
Expand All @@ -162,17 +163,13 @@ Please come and see us on the [Discord][OpenCombat_discord] to make your feedbac

![Times of Progress: an isometric city builder game set during the industrial revolution](times_of_progress.jpg)

Times of Progress ([Steam][times-of-progress-steam]) is an upcoming city builder game set during the industrial revolution.
Times of Progress ([Steam][times-of-progress-steam], [Twitter/X][times-of-progress-twitter], [Mastodon][times-of-progress-mastodon])
is an upcoming city builder game set during the industrial revolution.

During the month of April:
- The orders systems (how buildings request resources from other buildings) has been refactored to improve performance and make better use of the ECS.
- Lots of UI widgets have been developed, in particular those related to showing stats about currently hovered and selected building,
as well as during building placement.
During the month of April, they improved performance by refactoring the orders system and added lots of UI widgets.

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].

More GIFs and progress updates are available on [Twitter][times-of-progress-twitter] and [Mastodon][times-of-progress-mastodon].

[times-of-progress-steam]: https://store.steampowered.com/app/2628450/Times_of_Progress/
[times-of-progress-newsletter]: https://subscribepage.io/pressingthumbs
[times-of-progress-twitter]: https://twitter.com/ElmoSampedro
Expand All @@ -190,7 +187,7 @@ The player has limited inventory capacity and the weapons get damaged
after each use. There are 20 randomly generated levels to beat.

It is available on desktop (Windows / Linux), Android and Web (mobile friendly).
The game is [open-sourced][monk-tower-github]) - together with a custom WGPU-based 2d framework.
The game's source code also comes with a custom WGPU-based 2D framework.

_Discussions: ([/r/roguelikes][monk-tower-reddit])_

Expand All @@ -203,20 +200,20 @@ _Discussions: ([/r/roguelikes][monk-tower-reddit])_

![You are Merlin screenshot](you-are-merlin.png)

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
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)
is a text adventure game that compiles to both CLI and WebAssembly.

This initial version features a main quest, side quests, items and a boss fight.
Players can choose their favourite theme such as Zelda, Warcraft and Fallout.
With the web version, players can select their prefered input method of buttons or keyboard and fully works on mobile.
Players can choose their favourite visual theme such as Zelda, Warcraft and Fallout. There is also mobile support.
janhohenheim marked this conversation as resolved.
Show resolved Hide resolved

Although fairly simple, this first version provides a good foundation for building more features in later updates.

_Discussions: ([Reddit post][you-are-merlin-reddit-post])_
_Discussions: ([/r/rust_gamedev][you-are-merlin-reddit-post])_

[you-are-merlin-web]: https://hseager.github.io/you-are-merlin-www/
[you-are-merlin-github]: https://github.com/hseager/you-are-merlin
[you-are-merlin-www-github]: https://github.com/hseager/you-are-merlin-www
[you-are-merlin-reddit-post]: https://old.reddit.com/r/rust_gamedev/comments/1c9k1kb/you_are_merlin_a_text_adventure_game/
[you-are-merlin-reddit-post]: https://www.reddit.com/r/rust_gamedev/comments/1c9k1kb/you_are_merlin_a_text_adventure_game/

### [Jumpy]

Expand All @@ -227,7 +224,7 @@ _Jumpy: Machine gun and Periscope_
[Spicy Lobster][spicy_lobster] is a pixel-style, tactical 2D shooter with a fishy
theme.

This month the base functionality of round scoring and map transitions have been implemented.
This month the base functionalities of round scoring and map transitions have been implemented.
New weapons such as the Blunderbuss, Periscope, and Machine Gun are ready for fish on fish combat.

Jumpy is now featuring corpse physics and a "ragdoll" button to send your Fish [flopping about][jumpy_ragdoll].
Expand All @@ -246,14 +243,14 @@ _Discussions: [GitHub][jumpy_discussions], [Twitter][jumpy_twitter]_

## Engine Updates

### Bottomless-Pit 0.3.1
AngelOnFira marked this conversation as resolved.
Show resolved Hide resolved
### Bottomless-Pit
![The Bottomles-Pit Logo. A small hole in the ground with cat ears and text saying bottomless-pit](https://eggshark.dev/images/bplogo.png)


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].
Very recently a 2d camera was added as well as WASM and web support.
Current development is being focused on stability and QoL changes like texture sampling options and improved input.
You can checkout several engine examples on the web [here][Bottomless-Pit_Website].
You can checkout several [engine examples on the web][Bottomless-Pit_Website].
Since the engine is in its infancy, its developer calls for developers to use it and give the engine some feedback.

Current features are:
Expand All @@ -271,7 +268,7 @@ Current features are:

### Building games for Android with Rust

@maciekglowka has recently shared some thoughts about building Rust games
@maciekglowka has recently shared some thoughts [on their blog][[android-games-blog] about building Rust games
for Android. Rather than a step-by-step guide, it is a collection
of issues one can possibly encounter when targeting Android.

Expand All @@ -283,14 +280,57 @@ Topics mentioned:
- System UI hiding via jni and Android API
- Building AAB files to meet Google Play requirements

[Blog post link][android-games-blog]

[android-games-blog]: https://maciejglowka.com/blog/building-games-for-android-with-rust/

## Tooling Updates
### Bevy: A case study in ergonomic Rust

[Chris Biscardi][chris-yt] was at RustNation UK recently and gave talk on Bevy's
Rusty ergonomics titled [Bevy: A case study in ergonomic Rust][case-study-video].
In their own words:

> There's at least two, if not three, talks worth of material around how Bevy progressively discloses complexity
across multiple "stacks" of APIs; and the work done so far is very impressive in terms
of how it all fits together especially as a large-and-growing OSS project.

[chris-yt]: https://www.youtube.com/c/chrisbiscardi
[case-study-video]: https://www.youtube.com/watch?v=CnoDOc6ML0Y

### Reactivity in Bevy: From the Bottom Up

[Talin][talin] wrote a three-part series on ["Reactivity in Bevy: From the Bottom Up"][reactivity-blog],
which describes the workings of `bevy_reactor`, an experimental, work-in-progress framework for doing reactive programming within Bevy.

[reactivity-blog]: https://machinewords.hashnode.dev/reactivity-in-bevy-from-the-bottom-up-part-1
[talin]: https://dreamertalin.medium.com/

## Library Updates

### Jolt Bindings

[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.
Lucian has previously worked on [JoltC][joltc], a C API for Jolt, which this project uses in the background.

The bindings work can be found on the [just-rust GitHub repo][jolt-rust] GitHub repository and come in two flavors:
- `joltc-sys`: Unsafe bindings to the C API
- `rolt`: Ergonomic and safe Rust API

[lucien]: https://lpg.space/
[jolt]: https://github.com/jrouwe/JoltPhysics
[jolt-rust]: https://github.com/SecondHalfGames/jolt-rust
[joltc]: https://github.com/SecondHalfGames/JoltC

### Hexx 0.17

Hexx, the popular crate for hexagonal tools, [has released version 0.17](https://github.com/ManevilleF/hexx/releases/tag/0.17.0).
This release has a strong focus on performance:
- Large performance improvement on various computations like rings and wedges
- Add support for optimized storage for hexagonal and rombus shaped maps
- Added support for rectiline path

And utility:
- Added a 13th example showcasing all natively supported shapes
- Removed confusing items

### [Lightyear 0.13][lightyear_website]

[lightyear_website] is a comprehensive networking library for bevy to make multiplayer games.
Expand All @@ -310,41 +350,20 @@ This can be useful to avoid the costs of a dedicated server, or to have a simila
[lightyear_release]: https://github.com/cBournhonesque/lightyear/releases/tag/0.13.0
[lightyear_examples]: https://github.com/cBournhonesque/lightyear/tree/main/examples


## 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. -->

## Meeting Minutes

<!-- 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].

[label_meeting]: https://github.com/rust-gamedev/wg/issues?q=label%3Ameeting
Alice I. Cecile of the Bevy Foundation would like to collect community feedback
on game development in Rust. Please fill out [her survey](https://forms.gle/kLzv5Ww3U8dLGUHU8)!

## Discussions

<!-- Links to handpicked reddit/twitter/urlo/etc threads that provide
useful information -->

## Requests for Contribution

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

## Jobs

<!-- An optional section for new jobs related to Rust gamedev -->

## Bonus
LogLog games has published a [very well-written blog post](https://loglog.games/blog/leaving-rust-gamedev/) about their reasons to leave Rust gamedev.
It talks about shortcomings in Rust as a language in general and as a game development tool in particular.
Some insights into the limitations of ECS are also provided. Some interesting community discussions have been sparked by this post:

<!-- Bonus section to make the newsletter more interesting
and highlight events from the past. -->
- [Hacker News](https://news.ycombinator.com/item?id=40172033)
- [/r/gamedev](https://www.reddit.com/r/gamedev/comments/1ceipzc/leaving_rust_gamedev_after_3_years_blog_post_by/)
- [/r/rust](https://www.reddit.com/r/rust/comments/1cdqdsi/lessons_learned_after_3_years_of_fulltime_rust/)

------

Expand Down