diff --git a/content/news/040/cnc.jpg b/content/news/040/cnc.jpg new file mode 100644 index 000000000..58b8e5c57 Binary files /dev/null and b/content/news/040/cnc.jpg differ diff --git a/content/news/040/defold.png b/content/news/040/defold.png new file mode 100644 index 000000000..a6163364b Binary files /dev/null and b/content/news/040/defold.png differ diff --git a/content/news/040/eldiron.png b/content/news/040/eldiron.png new file mode 100644 index 000000000..113110ef2 Binary files /dev/null and b/content/news/040/eldiron.png differ diff --git a/content/news/040/embark-logo.jpg b/content/news/040/embark-logo.jpg new file mode 100644 index 000000000..7d030a707 Binary files /dev/null and b/content/news/040/embark-logo.jpg differ diff --git a/content/news/040/gamedev-meetup.png b/content/news/040/gamedev-meetup.png new file mode 100644 index 000000000..af9706bea Binary files /dev/null and b/content/news/040/gamedev-meetup.png differ diff --git a/content/news/040/iced-cosmic.png b/content/news/040/iced-cosmic.png new file mode 100644 index 000000000..cf588ae0b Binary files /dev/null and b/content/news/040/iced-cosmic.png differ diff --git a/content/news/040/index.md b/content/news/040/index.md index d1def554f..41a38cd44 100644 --- a/content/news/040/index.md +++ b/content/news/040/index.md @@ -1,8 +1,8 @@ +++ title = "This Month in Rust GameDev #40 - November 2022" transparent = true -date = 2022-12-01 -draft = true +date = 2022-12-19 +draft = false +++ @@ -37,11 +37,9 @@ Feel free to send PRs about your own projects! - [Library Updates](#library-updates) - [Other News](#other-news) - [Popular Workgroup Issues in Github](#popular-workgroup-issues-in-github) -- [Meeting Minutes](#meeting-minutes) - [Discussions](#discussions) - [Requests for Contribution](#requests-for-contribution) - [Jobs](#jobs) -- [Bonus](#bonus) +![example app: a manu with hayak's logo, title and 3 buttons: play, options, quit](kayak.png) + +[Kayak UI][kayak_ui] is a WIP declarative UI that features: + +- Easy to use declarative syntax using a custom proc macro. +- Fast and accurate layouts using [morphorm]. +- Style system built to kind of mimic CSS styles. +- Image and Nine patch rendering. + +There's also [a book][kayak-book] that covers the basic concepts; + +[kayak_ui]: https://github.com/StarArawn/kayak_ui +[morphorm]: https://github.com/geom3trik/morphorm +[kayak-book]: https://github.com/StarArawn/kayak_ui/blob/main/book/src/SUMMARY.md + +### [Iced] v0.5 + +![A design demo application showcasing widgets and theming capabilities](iced-cosmic.png) +_System76's COSMIC desktop software_ + +[Iced] is an experimental cross-platform GUI library focused on simplicity and +type-safety, inspired by Elm. + +This month's [v0.5 release][iced-v0-5] features include: + +- Stabilization of stateless widgets: the old widget API has been completely + replaced by stateless widgets. Alongside the new API, there are a bunch + of new helper functions and macros for easily describing view logic + (like `row!` and `column!`). +- First-class theming: a complete overhaul of the styling primitives, + introducing a Theme as a first-class concept of the library. +- Widget operations: an abstraction that can be used to traverse + (and operate on) the widget tree of an application in order + to query or update some widget state. +- Lazy widget that can call some view logic only when some data has changed. +- The Canvas widget can draw linear gradients now. +- Touch support for Canvas. +- iced_glow now is capable of rendering both the Image and Svg widgets. + +> Finally, and deserving a special mention, [System76 has decided to use iced][iced-sys76] +> instead of GTK for Pop!_OS' desktop environment! This is one of the most important +> adoption events since the inception of the library. The engineers at [System76] +> are already contributing a bunch of great improvements to iced, +> as well as breaking ground in long-standing issues that could benefit +> the whole GUI ecosystem in Rust (like proper text rendering!). + +_Discussions: [/r/rust](https://reddit.com/r/rust/comments/yr0oe8/iced_0_5)_ + +[Iced]: https://github.com/hecrj/iced +[iced-v0-5]: https://github.com/iced-rs/iced/pull/1520 +[iced-sys76]: https://www.phoronix.com/news/COSMIC-Desktop-Iced-Toolkit +[System76]: https://system76.com ## Other News -## Meeting Minutes +- Other game updates: + - A free open beta on [Yomi Hustle] - an online turn-based fighting game + and superpowered fight scene simulator by [Ivy Sly] - has begun! + - [@johann] shared a couple of Idu screenshots with + [dynamic global illumination][idu-1] and + [a video of stress-testing the framerate][idu-2] with the whole map + full of vegetation. + - [@crispy_dev posed a video](https://youtube.com/watch?v=QvBinznAYqY) + about making a roguelike from scratch in Rust. + - [@devildahu] posted [two][gssa-1] [gssa-2] about rewriting + ["Generic Space Shooter Advance"][gssa] GBA game in Rust. + - [@Kane_rogers] shared [a video of the latest iteration of The Station][station-vid] + VR survival game being build with the [Hotham][hotham] engine. + - @Tantan shared video devlogs about [improving combat feel][tantan-1] + and working on [a multiplayer networking architecture][tantan-2] + of his voxel game. +- Other engine updates: + - [Anthony Utt] has recently converted the WIP [Alkahest] engine + from C++ to Rust and [released a vlog][alkahest-vid] about it + and its UI render specifically. + - [@markusmoenig] has published [the first public pre-release build][eldiron-pre-release] + of [Eldiron] - a cross-platform RPG engine that draws heavily + on the earlier Ultima games for inspiration. +- Other tooling updates: + - [@Setzer22] shared a couple of posts with feature previews + for the next [Blackjack] release: + [copy&paste](https://mastodon.gamedev.place/@Setzer22/109352818515866403), + [an examples folder with annotated graphs](https://mastodon.gamedev.place/@Setzer22/109360242068079618), + [gizmos](https://mastodon.gamedev.place/@Setzer22/109377500780164246), + and [face selection](https://mastodon.gamedev.place/@Setzer22/109381333034474452). + - [@eurigilberto shared a video][vr-terrain-video] of a cool little + VR terrain generation app made using Rust and WebGL. +- Other library updates: + - [Taffy UI v0.2](https://tech.lgbt/@alice_i_cecile/109399333226449807) + brings improved flexbox and significant performance improvements + - [kopi] by [@hasenbanck] is a small abstraction to easily and safely + embed an ECMAScript runtime inside a Rust based application. + - [dynec] by [@SOF3] is a statically archetyped opinionated ECS-like framework. + - [guiedit] by [@aleokdev] is a WIP library for easily adding + a developer GUI to any graphical application. + - [bevy_tweening v0.6][bevy-tweening-v0-6] features Bevy v0.9 support, + new Duration-based elapsed API, + better looping control with RepeatCount/RepeatStrategy, + and fixed change detection + - [dungeon-generator] by [@MoutonSanglant] is a naive dungeon generator + for rogue-like games, mostly done for education purposes. + - [leafwing_input_playback] by [@alice-i-cecile] is an input recording and + playback library for the [Bevy] game engine. + +[Yomi Hustle]: https://ivysly.itch.io/your-only-move-is-hustle +[Ivy Sly]: https://twitter.com/ivy_sly_ +[@johann]: https://mastodon.gamedev.place/@johann +[idu-1]: https://mastodon.gamedev.place/@johann/109355219994971392 +[idu-2]: https://youtube.com/watch?v=yyicR63hZ0o +[@devildahu]: https://devildahu.ch +[gssa]: https://github.com/devildahu/gssa-rs +[gssa-1]: https://devildahu.ch/devlog/gba-c-to-rust +[gssa-2]: https://devildahu.ch/devlog/gba-c-to-rust-2 +[@Kane_rogers]: https://twitter.com/Kane_rogers +[station-vid]: https://youtube.com/watch?v=C8XzNnhELtk +[hotham]: https://github.com/leetvr/hotham +[tantan-1]: https://youtube.com/watch?v=54D6hgui2Kc +[tantan-2]: https://youtube.com/watch?v=EFzFHrzIiz8 +[Anthony Utt]: https://twitter.com/alkimia_studios +[alkahest-vid]: https://youtube.com/watch?v=OtX_8MD--fc +[Alkahest]: https://github.com/AlkimiaStudios/alkahest-rs +[@markusmoenig]: https://github.com/markusmoenig +[eldiron-pre-release]: https://eldiron.com/blog/prerelease +[Eldiron]: https://eldiron.com +[@Setzer22]: https://mastodon.gamedev.place/@Setzer22 +[Blackjack]: https://github.com/setzer22/blackjack +[vr-terrain-video]: https://mastodon.gamedev.place/@EuriHerasme/109368645008002886 +[kopi]: https://github.com/hasenbanck/kopi +[@hasenbanck]: https://github.com/hasenbanck +[dynec]: https://github.com/SOF3/dynec +[@SOF3]: https://github.com/SOF3 +[guiedit]: https://github.com/aleokdev/guiedit +[@aleokdev]: https://github.com/aleokdev +[@MoutonSanglant]: https://github.com/MoutonSanglant +[bevy-tweening-v0-6]: https://github.com/djeedai/bevy_tweening/blob/main/CHANGELOG.md#060---2022-11-15 +[dungeon-generator]: https://github.com/MoutonSanglant/dungeon-generator +[@alice-i-cecile]: https://github.com/alice-i-cecile +[leafwing_input_playback]: https://github.com/Leafwing-Studios/leafwing_input_playback - +## Popular Workgroup Issues in Github -[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 +- [rust-gamedev/wg](https://github.com/rust-gamedev/wg): + - [#130 "Status of the project "ECS Bench Suite""](https://github.com/rust-gamedev/wg/issues/130) + - [#131 "Official Mastodon Account"](https://github.com/rust-gamedev/wg/issues/131). ## Discussions +- /r/rust_gamedev: + - ["Which graphics crate do you use?"](https://reddit.com/r/rust_gamedev/comments/z1xy53/which_graphics_crate) + - ["WASM For Core Game Loop & Mods"](https://reddit.com/r/rust_gamedev/comments/z5cl93/wasm_core_game_loop_mods)) + ## Requests for Contribution +- ['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]. +- [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 +[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/D-Good-First-Issue + ## Jobs - [DIMS][dims] (Stockholm, Sweden) is building a Rust game engine and creation - platform dedicated to creating large multiplayer open world games and + platform dedicated to creating large multiplayer open-world games and [has a lot of open positions][dims-career], including Game Engine Programmer: > Come build a game engine and creation platform from scratch in Rust! @@ -843,14 +1129,12 @@ useful information --> You can find all of the details in [their job offer page][dims-job]. +- Ultimate Games (London, UK) [is looking for Mid-to-Senior level Rust Graphics engineer][ultimate-games-job]. + [dims]: https://dims.co [dims-career]: https://dims.co/career [dims-job]: https://linkedin.com/jobs/view/3378931463 - -## Bonus - - +[ultimate-games-job]: https://linkedin.com/jobs/view/senior-graphics-engineer-at-ultimate-games-3399850617 ------ diff --git a/content/news/040/kayak.png b/content/news/040/kayak.png new file mode 100644 index 000000000..e600bac16 Binary files /dev/null and b/content/news/040/kayak.png differ diff --git a/content/news/040/rapier-bevy-yt.jpg b/content/news/040/rapier-bevy-yt.jpg new file mode 100644 index 000000000..6b1c17515 Binary files /dev/null and b/content/news/040/rapier-bevy-yt.jpg differ diff --git a/content/news/040/render-pipelines.jpg b/content/news/040/render-pipelines.jpg new file mode 100644 index 000000000..0dcbbbdc2 Binary files /dev/null and b/content/news/040/render-pipelines.jpg differ diff --git a/content/news/040/vangers-voxel-debug.png b/content/news/040/vangers-voxel-debug.png new file mode 100644 index 000000000..2c8fe4431 Binary files /dev/null and b/content/news/040/vangers-voxel-debug.png differ