diff --git a/content/news/036/bombercrab.jpeg b/content/news/036/bombercrab.jpeg new file mode 100644 index 000000000..63717f2bf Binary files /dev/null and b/content/news/036/bombercrab.jpeg differ diff --git a/content/news/036/bonsai.png b/content/news/036/bonsai.png new file mode 100644 index 000000000..7b1285895 Binary files /dev/null and b/content/news/036/bonsai.png differ diff --git a/content/news/036/cnc.gif b/content/news/036/cnc.gif new file mode 100644 index 000000000..ce16ffb73 Binary files /dev/null and b/content/news/036/cnc.gif differ diff --git a/content/news/036/creating-mountains-form-planes-with-vertex-shaders-and-bevy.png b/content/news/036/creating-mountains-from-planes-with-vertex-shaders-and-bevy.png similarity index 100% rename from content/news/036/creating-mountains-form-planes-with-vertex-shaders-and-bevy.png rename to content/news/036/creating-mountains-from-planes-with-vertex-shaders-and-bevy.png diff --git a/content/news/036/cybergate.png b/content/news/036/cybergate.png new file mode 100644 index 000000000..5ac0408be Binary files /dev/null and b/content/news/036/cybergate.png differ diff --git a/content/news/036/fdg.png b/content/news/036/fdg.png new file mode 100644 index 000000000..2b3e706ee Binary files /dev/null and b/content/news/036/fdg.png differ diff --git a/content/news/036/index.md b/content/news/036/index.md index a38528048..1aeffd910 100644 --- a/content/news/036/index.md +++ b/content/news/036/index.md @@ -1,8 +1,8 @@ +++ title = "This Month in Rust GameDev #36 - July 2022" transparent = true -date = 2022-08-01 -draft = true +date = 2022-08-11 +draft = false +++ @@ -37,13 +37,9 @@ Feel free to send PRs about your own projects! - [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) [shame]: https://github.com/RayMarch/shame [shame-examples]: https://github.com/RayMarch/shame/tree/main/examples -## Popular Workgroup Issues in Github +### [bonsai-bt] - +![A behavior tree visualization that starts with a "root" node and branches +into leafs like "run" and "get in cover"](bonsai.png) +_A visualization of a simple NPC behavior tree_ -## Other News +[bonsai-bt] by [@Sollimann] is a Rust implementation of behavior trees. - +> A Behavior Tree (BT) is a data structure in which we can set the rules of how +> certain behaviors can occur and the order in which they would execute. +> BTs are a very efficient way of creating complex systems that +> are both modular and reactive. +> These properties are crucial in many applications, +> which has led to the spread of BT from computer game programming +> to many branches of AI and Robotics. + +_Discussions: [/r/rust_gamedev](https://reddit.com/r/rust_gamedev/comments/vxk8h9/bonsaibt_a_behavior_tree_lib)_ + +[bonsai-bt]: https://github.com/Sollimann/bonsai +[@Sollimann]: https://github.com/Sollimann + +### [shades] and [shades-edsl] + +![a source code that uses shades and a running app with the result: +a gradient from green to red](shades-edsl.png) + +[@phaazon] has published [a detailed article][shades-article] that introduces +[shades] and [shades-edsl] - two Rust crates to write shaders by writing pure Rust: + +- The [shades] crate provides all needed types and other building blocks +- while [shades-edsl] provides a proc-macro [EDSL][edsl-wiki] +for transforming regular Rust code into the API from shades. + +> This crate provides an EDSL to build shaders, leveraging the Rust compiler (rustc) +> and its type system to ensure soundness and typing. +> Because shaders are written in Rust, this crate is completely language agnostic: +> it can in theory target any shading language - the current tier-1 language +> being GLSL. The EDSL allows to statically type shaders while still generating +> the actual shading code at runtime. -## Meeting Minutes +[@phaazon]: https://phaazon.net +[shades-article]: https://phaazon.net/blog/shades-edsl +[shades]: https://github.com/phaazon/shades +[shades-edsl]: https://github.com/phaazon/shades-edsl +[edsl-wiki]: https://en.wikipedia.org/wiki/Domain-specific_language#External_and_Embedded_Domain_Specific_Languages - +### [fdg] -[See all meeting issues][label_meeting] including full text notes -or [join the next meeting][join]. +![black dots connected with ed lines in #d space](fdg.png) -[label_meeting]: https://github.com/rust-gamedev/wg/issues?q=label%3Ameeting +[fdg] by [@grantshandy] is a [force-directed graph][fdg-wiki] drawing framework. + +> The goal of this project is to provide a force-directed graph framework +> and algorithms for Rust, as well as 2D and 3D visualizers +> that work on the web and desktop. +> It sits on top of [petgraph] and manages the positions of your nodes. + +You can view all the examples online [here][fdg-web]. + +The project consists of three parts: + +- [fdg-sim] - the underlying force simulation framework that handles your + dataset's positions based on a physics engine of your choice (or creation). +- [fdg-macroquad] - a visualizer that uses macroquad for rendering. +- [fdg-img] - a SVG visualizer for your graphs. + +_Discussions: [/r/rust](https://reddit.com/r/rust/comments/w92aya/fdg)_ + +[fdg]: https://github.com/grantshandy/fdg +[fdg-web]: https://grantshandy.github.io/fdg +[@grantshandy]: https://grantshandy.github.io +[petgraph]: https://crates.io/crates/petgraph +[fdg-sim]: https://github.com/grantshandy/fdg/tree/main/fdg-sim +[fdg-macroquad]: https://github.com/grantshandy/fdg/blob/main/fdg-macroquad +[fdg-img]: https://github.com/grantshandy/fdg/tree/main/fdg-img +[fdg-wiki]: https://en.wikipedia.org/wiki/Force-directed_graph_drawing +[fdg-web-json]: https://grantshandy.github.io/fdg/json.html + +## Other News + + + +- Other game updates: + - [Hydrofoil Generation devs shared](https://twitter.com/HydrofoilG) + a bunch of screenshots and videos with a new boat. + - [@epcc10] shared a few videos about Idu getting a + [better water rendering and physics][idu-1] and [better interaction with soil][idu-2]. + - [Felix Windström](https://twitter.com/sov_gott_games) shared a couple of + Paddlepunks updates: [a wizard leveling up their walls][paddlepunks-1], + and [increased the active time on witch's doritos][paddlepunks-2]. + - [Legend of Worlds released their first devlog][legendofworlds-log]. + - The [Bounce Up!][bounceup] block breaker game + shared a [video preview of the practice mode][bounceup-video]. + - [Theta Wave is now is now playable in the browser on itch.io][theta-wave-itch]. + Give it a try and let the author know what you think! + - [Fish Folly][fish-folly] posted a couple videos of + [their new AI](https://youtube.com/watch?v=YRE5g57aZEg) and + [the falling over mechanic](https://youtube.com/watch?v=RuoLInE34dM). + - [Punchy v0.0.2][punchy-2] and [v0.0.3][punchy-3] were released, featuring + scenes, egui UI, AI, playable web build, + new enemy variants, controller remapping, and throwable bottles. +- Other tooling updates: + - [annelid] is a speedrun timer with autosplitter for fxpak/sd2snes written + using egui. + - [unitypacker] is a tool for creating .unitypackages from the command line. +- Other learning material updates: + - [@PhaestusFox] released a bunch of Bevy tutorial videos covering: + gamepads, touch input, bevy 0.8 update & migration, and hierarchy. + - [The "Learn WGPU" tutorial was updated to wgpu v0.13][lear-wgpu-0-13]. + - KyleMayes [has ported vulkan-tutorial.com to vulkanalia][vulkanalia-tut]. + - [bevy_roguelike] is a project that implements reusable Bevy ECS + systems and components for writing roguelike games. +- Other library updates: + - [wgpu v0.13 and naga v0.9][wgpu-13] bring the newest WGSL spec support, + improved presentation and pipelining, and lots of performance + and correctness improvements. The devs also decided to make the DX12 backend + default on Windows and are looking for testers. + - [bevy_pancam] is a 2d-camera plugin for Bevy that works with orthographic cameras. + +[@epcc10]: https://twitter.com/epcc10 +[idu-1]: https://twitter.com/epcc10/status/1545918011185549313 +[idu-2]: https://twitter.com/epcc10/status/1547723415015919622 +[paddlepunks-1]: https://twitter.com/sov_gott_games/status/1543227926052847616 +[paddlepunks-2]: https://twitter.com/sov_gott_games/status/1548340577233580035 +[legendofworlds-log]: https://reddit.com/r/rust_gamedev/comments/w2508b/legend_of_worlds_1 +[bounceup]: https://cryscan.itch.io/bounce-up +[bounceup-video]: https://youtube.com/watch?v=ohNQgahuj6U +[theta-wave-itch]: https://reddit.com/r/rust/comments/w4h4ad/thetawave_play_itch +[fish-folly]: https://github.com/mrDIMAS/FishFolly +[punchy-2]: https://reddit.com/r/rust/comments/vt44wq/media_punchy_v002 +[punchy-3]: https://reddit.com/r/rust/comments/waltwb/media_fish_fight_punchy_v003 +[annelid]: https://github.com/dagit/annelid +[unitypacker]: https://github.com/paulfigiel/unitypacker +[lear-wgpu-0-13]: https://sotrh.github.io/learn-wgpu/news/0.13 +[bevy-basics]: https://youtube.com/playlist?list=PL6uRoaCCw7GN_lJxpKS3j-KXuThRiSXc6 +[@PhaestusFox]: https://youtube.com/c/PhaestusFox +[vulkanalia-tut]: https://reddit.com/r/rust_gamedev/comments/w2g16h/another_vulkan_tutorial +[wgpu-13]: https://reddit.com/r/rust_gamedev/comments/vp571t/release_of_wgpu_v013_and_call_for_testing +[bevy_pancam]: https://github.com/johanhelsing/bevy_pancam +[bevy_roguelike]: https://github.com/tomuxmon/bevy_roguelike ## Discussions +- [/r/rust](https://reddit.com/r/rust): + - ["Are these misconceptions about rust?"](https://reddit.com/r/rust/comments/vruvxx/are_these_misconceptions_about_rust) +- [/r/rust_gamedev](https://reddit.com/r/rust_gamedev): + - ["Using WGPU + crates directly or Bevy?"](https://reddit.com/r/rust_gamedev/comments/vrfjw2/using_wgpu_crates_directly_or_bevy) + - ["A 2D, lightweight graphics library, Rust-only?"](https://reddit.com/r/rust_gamedev/comments/w9l1um/a_2d_lightweight_graphics_library_rustonly) + - ["Framework or libraries for developing Android/iOS games"](https://reddit.com/r/rust_gamedev/comments/wbg7xg/framework_or_libraries_for_developing_androidios) + ## Requests for Contribution -## Jobs - - - -## Bonus - - +- ['Are We Game Yet?' wants to know about projects/games/resources that + aren't listed yet][awgy]. +- [Graphite is looking for contributors][graphite-contribute] to help build the + new node graph and 2D rendering systems. +- [winit's "difficulty: easy" issues][winit-issues]. +- [Backroll-rs, a new networking library][backroll-rs]. +- [Embark's open issues][embark-open-issues] ([embark.rs]). +- [wgpu's "help wanted" issues][wgpu-issues]. +- [luminance's "low hanging fruit" issues][luminance-fruits]. +- [ggez's "good first issue" issues][ggez-issues]. +- [Veloren's "beginner" issues][veloren-beginner]. +- [Amethyst's "good first issue" issues][amethyst-issues]. +- [A/B Street's "good first issue" issues][abstreet-issues]. +- [Mun's "good first issue" issues][mun-issues]. +- [SIMple Mechanic's good first issues][simm-issues]. +- [Bevy's "good first issue" issues][bevy-issues]. + +[awgy]: https://github.com/rust-gamedev/arewegameyet#contribute +[graphite-contribute]: https://graphite.rs/contribute +[winit-issues]: https://github.com/rust-windowing/winit/issues?q=is%3Aopen+is%3Aissue+label%3A%22difficulty%3A+easy%22 +[backroll-rs]: https://github.com/HouraiTeahouse/backroll-rs/issues +[embark.rs]: https://embark.rs +[embark-open-issues]: https://github.com/search?q=user:EmbarkStudios+state:open +[wgpu-issues]: https://github.com/gfx-rs/wgpu/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22 +[luminance-fruits]: https://github.com/phaazon/luminance-rs/issues?q=is%3Aissue+is%3Aopen+label%3A%22low+hanging+fruit%22 +[ggez-issues]: https://github.com/ggez/ggez/labels/%2AGOOD%20FIRST%20ISSUE%2A +[veloren-beginner]: https://gitlab.com/veloren/veloren/issues?label_name=beginner +[amethyst-issues]: https://github.com/amethyst/amethyst/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22 +[abstreet-issues]: https://github.com/a-b-street/abstreet/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22 +[mun-issues]: https://github.com/mun-lang/mun/labels/good%20first%20issue +[simm-issues]: https://github.com/mkhan45/SIMple-Mechanics/labels/good%20first%20issue +[bevy-issues]: https://github.com/bevyengine/bevy/labels/E-Good-First-Issue ------ diff --git a/content/news/036/lifecode.jpg b/content/news/036/lifecode.jpg new file mode 100644 index 000000000..8a6fbcfaa Binary files /dev/null and b/content/news/036/lifecode.jpg differ diff --git a/content/news/036/ruggrogue.png b/content/news/036/ruggrogue.png new file mode 100644 index 000000000..82c046a95 Binary files /dev/null and b/content/news/036/ruggrogue.png differ diff --git a/content/news/036/shades-edsl.png b/content/news/036/shades-edsl.png new file mode 100644 index 000000000..58447095b Binary files /dev/null and b/content/news/036/shades-edsl.png differ