diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 000000000..951e49ee1 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,3 @@ +[*.{md,mkdn}] +trim_trailing_whitespace = false +indent_style = space diff --git a/.github/create_newsletter_scaffold.sh b/.github/create_newsletter_scaffold.sh new file mode 100755 index 000000000..45184e856 --- /dev/null +++ b/.github/create_newsletter_scaffold.sh @@ -0,0 +1,36 @@ +#!/usr/bin/env bash + +set -euo pipefail + +if [[ -z "${NEWSLETTER_MONTH}" ]]; then + echo "NEWSLETTER_MONTH is not set. Exiting..." + exit 1 +fi + +if [[ -z "${NEWSLETTER_YEAR}" ]]; then + echo "NEWSLETTER_YEAR is not set. Exiting..." + exit 1 +fi + +if [[ -z "${NEWSLETTER_COUNTER}" ]]; then + echo "NEWSLETTER_COUNTER is not set. Exiting..." + exit 1 +fi + +# NEWSLETTER_NEXT_MONTH_NUMBER +if [[ -z "${NEWSLETTER_NEXT_MONTH_NUMBER}" ]]; then + echo "NEWSLETTER_NEXT_MONTH_NUMBER is not set. Exiting..." + exit 1 +fi + +cp .github/newsletter-template.md index.md +sed -i "s/{{\s*NEWSLETTER_MONTH\s*}}/${NEWSLETTER_MONTH}/g" index.md +sed -i "s/{{\s*NEWSLETTER_YEAR\s*}}/${NEWSLETTER_YEAR}/g" index.md +sed -i "s/{{\s*NEWSLETTER_COUNTER\s*}}/${NEWSLETTER_COUNTER}/g" index.md +sed -i "s/{{\s*NEWSLETTER_COUNTER_NEXT\s*}}/$((NEWSLETTER_COUNTER + 1))/g" index.md +sed -i "s/{{\s*NEWSLETTER_NEXT_MONTH_NUMBER\s*}}/${NEWSLETTER_NEXT_MONTH_NUMBER}/g" index.md +# Create a dir in content/news with the counter with 3 digits as name +destination="content/news/$(printf "%03d" ${NEWSLETTER_COUNTER})" +mkdir -p $destination +mv index.md $destination/index.md +git status diff --git a/.github/newsletter-issue-template.md b/.github/newsletter-issue-template.md new file mode 100644 index 000000000..ec9566cd3 --- /dev/null +++ b/.github/newsletter-issue-template.md @@ -0,0 +1,165 @@ +--- +title: "Newsletter {{ env.NEWSLETTER_COUNTER}}: {{ env.NEWSLETTER_MONTH }} {{ env.NEWSLETTER_YEAR }}" +labels: coordination, help wanted +assignees: AngelOnFira, mamaicode, janhohenheim +--- + +**Editors:** @janhohenheim, @AngelOnFira, @mamaicode + +Another month has gone by, so it's time to put together the Rust Gamedev newsletter with {{ env.NEWSLETTER_MONTH }}'s news! + +## Current Schedule + +The deadline for all section PRs is the **28th of {{ env.NEWSLETTER_MONTH}}, {{ env.NEWSLETTER_YEAR }}**. Submissions after this date will be added to the next newsletter. +Our target release date is the **3rd of {{ env.NEWSLETTER_NEXT_MONTH }}, {{ env.NEWSLETTER_YEAR }}**. + +## Current Structure & Status + +Below is our current planned structure for the newsletter, and the status of each PR (which we'll try to keep updated). + +This is **not** an exhaustive list - if you have your own project that you want to write about, just make a comment on this issue and open a PR! + +### Game Updates + +None yet. Feel free to submit yours! + +### Learning Material Updates + +None yet. Feel free to submit yours! + +### Engine Updates + +None yet. Feel free to submit yours! + +### Tooling Updates + +None yet. Feel free to submit yours! + +### Library Updates + +None yet. Feel free to submit yours! + +### Other News + +None yet. Feel free to submit yours! + +### Discussions + +None yet. Feel free to submit yours! + +## Calls for Submissions + +### Social Media + +- [ ] Reddit +- [ ] Lemmy +- [ ] Mastodon +- [ ] Twitter/X +- [ ] Hacker News + +### Discord Servers + +- [ ] Rust GameDev +- [ ] Bevy +- [ ] Blue Engine +- [ ] Macroquad +- [ ] Fyrox +- [ ] LogLogGames (comfy engine) +- [ ] Spicy Lobster +- [ ] Rust Godot + +Let us know if you also want to receive monthly reminders on your Discord server! + +## Publishing Steps + +- [ ] Final review - by everyone +- [ ] Publish - by @janhohenheim +- [ ] Post together with next calls for submissions - by @janhohenheim +- [ ] Pin thread on social media - by @janhohenheim +- [ ] Add comment links - by @janhohenheim + +## How to Contribute + +If you want to help writing the newsletter: + +- **Read [CONTRIBUTING.md](https://github.com/rust-gamedev/rust-gamedev.github.io/blob/source/CONTRIBUTING.md?rgh-link-date=2023-09-12T16%3A17%3A34Z).** +- Choose one or more of the "🆓 **free**" sections listed below, and leave a comment letting us know you want to work on them. + - The links in brackets (like `[1](#), [2](#), [3](#)`) are suggestions of links to include in the section. Feel free to add more! + - The username listed next to the section (like `@janhohenheim?`) is a suggestion of who may want to pick up the work (usually the project's developer, or someone who has expressed interest in the past). + - You are not obligated to write a section if you're tagged or your project is listed! You're welcome to ask someone else to write the section, or to ask for your project to be excluded from this month's post. + - Extra sections not listed in the plan are welcomed - just leave a comment and open a PR! +- Write a short overview in the newsletter's Markdown file, making sure to follow the style guidelines (see below). +- Send a PR [_to the `source` branch_](https://github.com/rust-gamedev/rust-gamedev.github.io/tree/source) (example PR: [N15: A/B Street #336](https://github.com/rust-gamedev/rust-gamedev.github.io/pull/336)). +- Mention this issue in your PR's description to link it all together. + +## Style Guidelines + +The full style guide is in [CONTRIBUTING.md](https://github.com/rust-gamedev/rust-gamedev.github.io/blob/source/CONTRIBUTING.md?rgh-link-date=2023-09-12T16%3A17%3A34Z), +but here are the most important rules: + +- Write in third-person perspective. +- Each line must be 160 characters or less, for ease of reviewing/diffing. +- Only one image per section is allowed. + - The maximum size is 300kb for static images and 2.5mb for GIFs. + - The image should come before the text, and must have alt text for accessibility. + - Prefer static images to GIFs/videos, to keep the page load times down. + - To include a video, encode it as `H.264` in an `mp4` container and use + the `video_figure()` shortcode; videos autoplay in a loop (muted). +- Each section should be under 1000 characters, and under 6 paragraphs. + - This only applies to the rendered text, not the markup. +- Keep formatting minimal - no bold/italics/etc. +- Avoid long/nested bullet point lists - no changelogs! + +Please use these templates as a starting point: + +**Games/apps/libraries:** + +```md +### [Game name] + +{{ image_figure( + alt="image/GIF description", + src="https://github.com/image%20link", + caption="image caption") }} + +OR + +{{ video_figure( + type="video/mp4", + src="https://github.com/my-video.mp4", + caption="optional video caption") }} + +[Game name] ([GitHub], [Discord], [Twitter]) by [@nickname] +is... {short project description in one sentence}. + +{An overview of the recent updates with links to more details}. + +_Discussions: [/r/rust_gamedev](link), [Twitter](link), [etc](link)_ + +[Game name]: http://example.com +``` + +**Articles/blog posts/videos/etc:** + +```md +### [Article name] + +{{ image_figure( + alt="image/GIF description", + src="https://github.com/image%20link", + caption="image caption") }} + +OR + +{{ video_figure( + type="video/mp4", + src="https://github.com/my-video.mp4", + caption="optional video caption") }} + +[@nickname] published an [article] about... +{overview what the resource is about}. + +_Discussions: [/r/rust_gamedev](link), [Twiter](link), [etc](link)_ + +[Article name]: http://example.com +``` diff --git a/newsletter-template.md b/.github/newsletter-template.md similarity index 64% rename from newsletter-template.md rename to .github/newsletter-template.md index 831ecd123..35158343f 100644 --- a/newsletter-template.md +++ b/.github/newsletter-template.md @@ -1,7 +1,7 @@ +++ -title = "This Month in Rust GameDev #{TODO} - {TODO} {TODO}" +title = "This Month in Rust GameDev #{{ NEWSLETTER_COUNTER }} - {{ NEWSLETTER_MONTH }} {{ NEWSLETTER_YEAR }}" transparent = true -date = TODO +date = {{ NEWSLETTER_YEAR }}-{{ NEWSLETTER_NEXT_MONTH_NUMBER }}-03 draft = true +++ @@ -9,7 +9,7 @@ draft = true -Welcome to the {TODO}th issue of the Rust GameDev Workgroup's +Welcome to the {{ NEWSLETTER_COUNTER }}th issue of the Rust GameDev Workgroup's monthly newsletter. [Rust] is a systems language pursuing the trifecta: safety, concurrency, and speed. @@ -35,13 +35,14 @@ 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) -- [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) +- [Future news](#future-news) @@ -112,15 +122,28 @@ useful information --> +## Future news + + + +Editing this newsletter wouldn't be possible without [your contributions][news_current_prs]. +Thanks to everyone who helped us this month! + +If you want something mentioned in the next newsletter, [send us a pull request][pr]. + +You can also get an early look at pending issues for the [next newsletter][news_future_prs]. + +[news_current_prs]: https://github.com/rust-gamedev/rust-gamedev.github.io/pulls?q=is%3Apr+in%3Atitle+%27N{{ NEWSLETTER_COUNTER }}%27 +[news_future_prs]: https://github.com/rust-gamedev/rust-gamedev.github.io/pulls?q=is%3Apr+in%3Atitle+%27N{{ NEWSLETTER_COUNTER_NEXT }}%27 + ------ That's all news for today, thanks for reading! -Want something mentioned in the next newsletter? -[Send us a pull request][pr]. - -Also, subscribe to [@rust_gamedev on Twitter][@rust_gamedev] -or [/r/rust_gamedev subreddit][/r/rust_gamedev] if you want to receive fresh news! +Also, subscribe to our socials if you want to receive fresh news! +- X/Twitter: [@rust_gamedev][@x_rust_gamedev] +- Mastodon: [@rust_gamedev][@mastodon_rust_gamedev] +- Reddit: [/r/rust_gamedev][/r/rust_gamedev] [/r/rust_gamedev]: https://reddit.com/r/rust_gamedev -[@rust_gamedev]: https://twitter.com/rust_gamedev +[@x_rust_gamedev]: https://twitter.com/rust_gamedev +[@mastodon_rust_gamedev]: https://mastodon.gamedev.place/@rust_gamedev diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2396bdd01..7035bdd57 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,7 +2,7 @@ name: Zola on: push: - branches: source + branches: main pull_request: jobs: @@ -10,24 +10,74 @@ jobs: runs-on: ubuntu-latest env: BASE_URL: https://github.com/getzola/zola/releases/download - VERS: v0.15.2 + VERS: v0.19.1 ARCH: x86_64-unknown-linux-gnu # https://github.com/crazy-max/ghaction-github-pages/issues/1#issuecomment-623202206 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Lint uses: avto-dev/markdown-lint@v1 with: args: '.' config: '.markdownlint.json' - name: Install Zola - run: curl -L ${BASE_URL}/${VERS}/zola-${VERS}-${ARCH}.tar.gz | tar -xz - - run: ./zola --version - - run: ./zola build - - name: Deploy - if: github.ref == 'refs/heads/source' - uses: crazy-max/ghaction-github-pages@v1 + run: | + curl -L ${BASE_URL}/${VERS}/zola-${VERS}-${ARCH}.tar.gz | tar -xz + echo "Zola version: $(./zola --version)" + - name: Zola build + run: ./zola build + - name: Upload GitHub Pages artifact + uses: actions/upload-pages-artifact@v3 with: - build_dir: public - target_branch: master + path: public + + links: + name: Check for Broken Links + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: ${{ github.event_name == 'pull_request' && 2 || 0 }} + - name: Get changed files + id: changed-files + # source: https://stackoverflow.com/a/74268200, added filtering for markdown files + run: | + if ${{ github.event_name == 'pull_request' }}; then + changed_files=$(git diff --name-only -r HEAD^1 HEAD -z | grep '\.md$' -zZ | xargs -0) + else + changed_files=$(git diff --name-only ${{ github.event.before }} ${{ github.event.after }} -z | grep '\.md$' -zZ | xargs -0) + fi + echo "changed_files: $changed_files" + echo "changed_files=$changed_files" >> $GITHUB_OUTPUT + - name: Check links + uses: lycheeverse/lychee-action@v1.9.0 + if: ${{ steps.changed-files.outputs.changed_files != '' }} + with: + fail: true + args: >- + --verbose + --no-progress + --accept '100..=103,200..=299,300..=399' + --exclude '[^\w]todo[^\w]?' + --exclude 'https://(www/.|old/.)?reddit\.com' + --exclude 'https://www.patreon.com/' + --exclude 'https://gamedev.social/' + --exclude 'dev.epicgames.com' + --exclude-path 'assets/logo/readme.md' + ${{ steps.changed-files.outputs.changed_files }} + + pages: + needs: zola + permissions: + pages: write + id-token: write + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + if: format('refs/heads/{0}', github.event.repository.default_branch) == github.ref + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/.github/workflows/create-newsletter.yaml b/.github/workflows/create-newsletter.yaml new file mode 100644 index 000000000..888db62aa --- /dev/null +++ b/.github/workflows/create-newsletter.yaml @@ -0,0 +1,45 @@ +name: Create Newsletter +on: + schedule: + # Run on the 3rd of every month at 9 am + - cron: "0 9 3 * *" + workflow_dispatch: + inputs: {} +permissions: + contents: write + issues: write + pull-requests: write +jobs: + create-newsletter: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + ref: main + - name: Set environment variables + run: | + echo "NEWSLETTER_MONTH=$(date +'%B')" >> $GITHUB_ENV + echo "NEWSLETTER_NEXT_MONTH=$(date -d' 1 month ' +'%B')" >> $GITHUB_ENV + echo "NEWSLETTER_NEXT_MONTH_NUMBER=$(date -d' 1 month ' +'%m')" >> $GITHUB_ENV + echo "NEWSLETTER_YEAR=$(date +'%Y')" >> $GITHUB_ENV + # take the amount of months since feb 2024 and add 50 + echo "NEWSLETTER_COUNTER=$(( ( ( $(date +'%Y') - 2024 ) * 12 + $(date +'%m') - 4 ) + 50 ))" >> $GITHUB_ENV + - name: Create newsletter scaffold + run: ./.github/create_newsletter_scaffold.sh + - name: Commit and create pull request + uses: peter-evans/create-pull-request@v3 + with: + commit-message: "Create newsletter N${{ env.NEWSLETTER_COUNTER }} for ${{ env.NEWSLETTER_MONTH }} ${{ env.NEWSLETTER_YEAR }}" + branch: "start-newsletter-${{ env.NEWSLETTER_COUNTER }}" + title: "Newsletter N${{ env.NEWSLETTER_COUNTER }} for ${{ env.NEWSLETTER_MONTH }} ${{ env.NEWSLETTER_YEAR }}" + body: "This PR adds the initial newsletter source file for ${{ env.NEWSLETTER_MONTH }} ${{ env.NEWSLETTER_YEAR }}." + assignees: | + AngelOnFira + janhohenheim + mamaicode + - name: Create tracking issue + uses: JasonEtco/create-an-issue@v2 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + filename: .github/newsletter-issue-template.md diff --git a/.markdownlint.json b/.markdownlint.json index 196cbc370..2254eb4e0 100644 --- a/.markdownlint.json +++ b/.markdownlint.json @@ -1,12 +1,21 @@ { "line-length": { - "line_length": 80, + "line_length": 160, "code_blocks": false }, - "ul-style": { - "style": "dash" - }, - "no-trailing-punctuation": { - "punctuation": ".,;:。,;:" + "blanks-around-lists": false, + "blanks-around-headings": false, + "no-multiple-blanks": false, + "no-trailing-spaces": false, + "no-trailing-punctuation": false, + "no-hard-tabs": false, + "hr-style": false, + "strong-style": false, + "no-bare-urls": false, + "emphasis-style": false, + "no-inline-html": { + "allowed_elements": [ + "abbr" + ] } -} +} \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 769186e3f..ef174b4f2 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,10 +2,13 @@ Thank you for contributing to the newsletter! 💖 -- [Writing Newsletter Sections](#writing-newsletter-sections) - - [Templates](#templates) - - [Style Guidelines](#style-guidelines) -- [Becoming an Editor](#becoming-an-editor) +- [Contributing Guide](#contributing-guide) + - [Writing Newsletter Sections](#writing-newsletter-sections) + - [Templates](#templates) + - [Games, Apps or Libraries](#games-apps-or-libraries) + - [Articles, Blog Posts or Videos](#articles-blog-posts-or-videos) + - [Style Guidelines](#style-guidelines) + - [Becoming an Editor](#becoming-an-editor) ## Writing Newsletter Sections @@ -53,8 +56,17 @@ your GitHub notifications for any further review comments from the editors. ```md ### [Game name] -![alt text](img) -_optional image label_ +{{ image_figure( + alt="image/GIF description", + src="https://github.com/image%20link", + caption="image caption") }} + +OR + +{{ video_figure( + type="video/mp4", + src="https://github.com/my-video.mp4", + caption="optional video caption") }} [Game name] ([GitHub], [Discord], [Twitter]) by [@nickname] is... {short project description in one sentence}. @@ -71,8 +83,17 @@ _Discussions: [/r/rust_gamedev](link), [Twitter](link), [etc](link)_ ```md ### [Article name] -![alt text](img) -_optional image label_ +{{ image_figure( + alt="image/GIF description", + src="https://github.com/image%20link", + caption="image caption") }} + +OR + +{{ video_figure( + type="video/mp4", + src="https://github.com/my-video.mp4", + caption="optional video caption") }} [@nickname] published an [article] about... {overview what the resource is about}. @@ -96,11 +117,13 @@ _Discussions: [/r/rust_gamedev](link), [Twitter](link), [etc](link)_ - Avoid having multiple/nested bullet points. - This guideline may be relaxed if your project has multiple parts that aren't independent enough for their own sections. -- Only include one image (<300kb) or GIF (<2.5mb). +- Only include one image (<300kb), GIF (<2.5mb) or video (<2.5mb). - Images should be placed before text, with an optional caption and mandatory alternate text for accessibility. - Unless essential to demonstrating your project, prefer static images - over GIFs, to keep the file size down. + over GIFs/videos, to keep the file size down. + - To include a video, encode it as `H.264` in an `mp4` container and use + the `video_figure()` shortcode; videos autoplay in a loop (muted). - Use singular 'they' if you’re not sure what someone's pronouns are. - If a project has been featured in previous newsletters, try to focus on what's new rather than repeating previous content. diff --git a/LICENSE-APACHE.txt b/LICENSE-APACHE.txt new file mode 100644 index 000000000..df5035b57 --- /dev/null +++ b/LICENSE-APACHE.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2024 Rust GameDev Working Group + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/LICENSE-MIT.txt b/LICENSE-MIT.txt new file mode 100644 index 000000000..1375ceaa9 --- /dev/null +++ b/LICENSE-MIT.txt @@ -0,0 +1,7 @@ +Copyright 2024 Rust GameDev Working Group + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/README.md b/README.md index f44bb0a7e..d15b1fb88 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ The site is built and deployed automatically from the repo (see To preview/experiment locally: -1) [Install Zola][zola-get]. Make sure to use 0.14.1, to match [our CI config][ci]! +1) [Install Zola][zola-get]. Make sure to use 0.19.1, to match [our CI config][ci]! 2) Run `zola serve --drafts` and open the link. [zola-get]: https://getzola.org/documentation/getting-started/installation @@ -23,9 +23,9 @@ To preview/experiment locally: This project is licensed under either of: -- Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or +- Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE.txt) or ) -- MIT license ([LICENSE-MIT](LICENSE-MIT) or +- MIT license ([LICENSE-MIT](LICENSE-MIT.txt) or ) With the exception of: diff --git a/assets/logo/readme.md b/assets/logo/readme.md new file mode 100644 index 000000000..94cca47c6 --- /dev/null +++ b/assets/logo/readme.md @@ -0,0 +1,12 @@ +# Logo + +The vectorized logo is a re-drawn version based on +[@shmutalov](https://github.com/shmutalov)'s [original, rasterized version](https://github.com/rust-gamedev/wg/issues/4). + +It incorporates the official [rust-logo-gear-only.svg](https://github.com/rust-lang/rust-artwork/blob/master/logo/rust-logo-gear-only.svg). + +## Exporting + +The various exported PNG's in [static](../static/) can be found in [rust-gamedev-logo-raw.svg](./rust-gamedev-logo-raw.svg) as individual (Inkscape) pages. + +After exporting be sure to run `svgo` on the exported SVG and `optipng` on the exported PNGs. diff --git a/assets/logo/rust-gamedev-logo-raw.svg b/assets/logo/rust-gamedev-logo-raw.svg new file mode 100644 index 000000000..12dec1bae --- /dev/null +++ b/assets/logo/rust-gamedev-logo-raw.svg @@ -0,0 +1,622 @@ + +Rust GameDev WG Making Rust a first-class choice for game development diff --git a/config.toml b/config.toml index 3096bb917..5fc7bd5cc 100644 --- a/config.toml +++ b/config.toml @@ -3,11 +3,12 @@ description = "Stay up to date with the progress and recent developments in the base_url = "https://gamedev.rs/" default_language = "en" compile_sass = true -generate_feed = true -feed_filename = "rss.xml" +generate_feeds = true +feed_filenames = ["rss.xml"] [markdown] highlight_code = true +smart_punctuation = true [extra] date_format = "%F" diff --git a/content/blog/2019-08-18-introducing-the-rust-game-development-working-group.md b/content/blog/2019-08-18-introducing-the-rust-game-development-working-group.md index e65c39259..847e8b2c1 100644 --- a/content/blog/2019-08-18-introducing-the-rust-game-development-working-group.md +++ b/content/blog/2019-08-18-introducing-the-rust-game-development-working-group.md @@ -47,7 +47,7 @@ we've already got several projects underway: ## How can I get involved? -Our main hub for co-ordination is our [Github repository](https://github.com/rust-gamedev/wg), +Our main hub for co-ordination is our [GitHub repository](https://github.com/rust-gamedev/wg), where you can (and should!) raise issues calling out your ideas, proposals or problems with the Rust gamedev ecosystem. We also have a `#wg-gamedev` channel on the [official Rust Discord server](https://discord.gg/j6QJsMd), diff --git a/content/blog/newsletter-changes/index.md b/content/blog/newsletter-changes/index.md new file mode 100644 index 000000000..32605c3b2 --- /dev/null +++ b/content/blog/newsletter-changes/index.md @@ -0,0 +1,65 @@ ++++ +title = "Newsletter Changes" +date = 2024-05-02 +transparent = true ++++ + +*Please fill out [this survey][survey] before skipping this section! More info below!* + +Hey everyone, it's been a while! As you've certainly noticed, the newsletter has +been on hiatus for some months. 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]. + +We're back now though! A couple of community members, Jan Hohenheim +([@janhohenheim]) and Thierry Berger ([@Vrixyz]), have led the revival of the +newsletter. This includes making changes requested by the community, and +improving sustainability for the long term. + +### Schedule Changes + +Thierry Berger ([@Vrixyz]), has come up with a new [monthly +schedule][monthly_schedule] that we will try out: + +- 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 the [Rust GameDev Discord][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 2024**. We will be evaluating +the [survey] results in an upcoming blog post, so stay tuned for that. + +### Future Steps + +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. + +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 diff --git a/content/blog/rust-gamedev-meetup-33/blue-engine.png b/content/blog/rust-gamedev-meetup-33/blue-engine.png new file mode 100644 index 000000000..c24907b28 Binary files /dev/null and b/content/blog/rust-gamedev-meetup-33/blue-engine.png differ diff --git a/content/blog/rust-gamedev-meetup-33/bones.png b/content/blog/rust-gamedev-meetup-33/bones.png new file mode 100644 index 000000000..c25afb22c Binary files /dev/null and b/content/blog/rust-gamedev-meetup-33/bones.png differ diff --git a/content/blog/rust-gamedev-meetup-33/galaxion.png b/content/blog/rust-gamedev-meetup-33/galaxion.png new file mode 100644 index 000000000..525d45c72 Binary files /dev/null and b/content/blog/rust-gamedev-meetup-33/galaxion.png differ diff --git a/content/blog/rust-gamedev-meetup-33/gamedev-meetup.png b/content/blog/rust-gamedev-meetup-33/gamedev-meetup.png new file mode 100644 index 000000000..af9706bea Binary files /dev/null and b/content/blog/rust-gamedev-meetup-33/gamedev-meetup.png differ diff --git a/content/blog/rust-gamedev-meetup-33/index.md b/content/blog/rust-gamedev-meetup-33/index.md new file mode 100644 index 000000000..682b2438c --- /dev/null +++ b/content/blog/rust-gamedev-meetup-33/index.md @@ -0,0 +1,84 @@ ++++ +title = "Rust Gamedev Meetup 33" +date = 2023-12-09 +transparent = true +aliases = ["posts/gamedev-meetup-33"] ++++ + + + + + +![Rust Gamedev Meetup](gamedev-meetup.png) + +The 33rd Rust Gamedev Meetup took place on December 9th. You can watch the +recording of the meetup [here on YouTube][meetup-video]. The meetup took +place on the Rust Gamedev [YouTube][youtube-stream] and [Twitch][twitch-stream]. +The meetups take place on the second Saturday of every month via the [Rust +Gamedev Discord server][rust-gamedev-discord] and are also [streamed on +Twitch][rust-gamedev-twitch]. + +[rust-gamedev-discord]: https://discord.gg/yNtPTb2 +[rust-gamedev-twitch]: https://twitch.tv/rustgamedev +[meetup-video]: https://www.youtube.com/watch?v=eItRSKJGV1I +[youtube-stream]: https://www.youtube.com/@RustGameDevelopment +[twitch-stream]: https://www.twitch.tv/RustGameDev + +## Talks + +### [Blue Engine][blue-engine-video] | [@ElhamAryanpur] + +[![Blue Engine](blue-engine.png)][blue-engine-video] + +> Updates about community work for the Blue Engine, as well as future engine +> features coming up. + +**Links:** + +- [Blue Engine GitHub repository] +- [Blue Engine Discord server] + +[@ElhamAryanpur]: https://github.com/ElhamAryanpur +[blue-engine-video]: https://www.youtube.com/watch?v=7u9YrBOnTww +[Blue Engine GitHub repository]: https://github.com/AryanpurTech/BlueEngine +[Blue Engine Discord server]: https://discord.gg/s7xsj9q + +### [Galaxion Trade Wars][galaxion-trade-wars-video] | [@Syn-Nine] + +[![Galaxion Trade Wars](galaxion.png)][galaxion-trade-wars-video] + +> Space Trading Game made in Rust based on the Trade Wars 2002 BBS game. + +**Links:** + +- [Galaxion Trade Wars GitHub repository] +- [Syn-Nine Twitter] +- [Syn-Nine Website] + +[@Syn-Nine]: https://github.com/Syn-Nine +[galaxion-trade-wars-video]: https://www.youtube.com/watch?v=oNx5wqAsvXM +[Galaxion Trade Wars GitHub repository]: https://github.com/Syn-Nine/galaxion-trade-empire/ +[Syn-Nine Twitter]: https://twitter.com/Syn9Dev +[Syn-Nine Website]: https://syn9.thehideoutgames.com/ + +### [Bones Engine][bones-engine-video] | [@zicklag] + +[![Bones Engine](bones.png)][bones-engine-video] + +> A 'meta-engine' framework made to facilitate the development of moddable, +> multiplayer 2D games. + +**Links:** + +- [@zicklag] +- [Bone Engine GitHub repository] +- [Jumpy GitHub repository] +- [Jumpy's Migration to the Bones Framework] +- [Introducing Lua Scripting in Jumpy] + +[@zicklag]: https://github.com/zicklag +[bones-engine-video]: https://www.youtube.com/watch?v=bEyZubAx_oM +[Bone Engine GitHub repository]: https://github.com/fishfolk/bones +[Jumpy GitHub repository]: https://github.com/fishfolk/jumpy +[Jumpy's Migration to the Bones Framework]: https://fishfolk.org/blog/jumpy-migration-to-bones-framework/ +[Introducing Lua Scripting in Jumpy]: https://fishfolk.org/blog/introducing-lua-scripting-in-jumpy/ diff --git a/content/blog/survey-02/ai.png b/content/blog/survey-02/ai.png new file mode 100644 index 000000000..3388c8def Binary files /dev/null and b/content/blog/survey-02/ai.png differ diff --git a/content/blog/survey-02/ai_contributions.png b/content/blog/survey-02/ai_contributions.png new file mode 100644 index 000000000..ab09afa69 Binary files /dev/null and b/content/blog/survey-02/ai_contributions.png differ diff --git a/content/blog/survey-02/comment.png b/content/blog/survey-02/comment.png new file mode 100644 index 000000000..7d2355ead Binary files /dev/null and b/content/blog/survey-02/comment.png differ diff --git a/content/blog/survey-02/content_quantity.png b/content/blog/survey-02/content_quantity.png new file mode 100644 index 000000000..55e1489df Binary files /dev/null and b/content/blog/survey-02/content_quantity.png differ diff --git a/content/blog/survey-02/contributions copy.png b/content/blog/survey-02/contributions copy.png new file mode 100644 index 000000000..849c65bb8 Binary files /dev/null and b/content/blog/survey-02/contributions copy.png differ diff --git a/content/blog/survey-02/contributions.png b/content/blog/survey-02/contributions.png new file mode 100644 index 000000000..849c65bb8 Binary files /dev/null and b/content/blog/survey-02/contributions.png differ diff --git a/content/blog/survey-02/ease.png b/content/blog/survey-02/ease.png new file mode 100644 index 000000000..f8f2a6524 Binary files /dev/null and b/content/blog/survey-02/ease.png differ diff --git a/content/blog/survey-02/ease_contributions.png b/content/blog/survey-02/ease_contributions.png new file mode 100644 index 000000000..9a386555d Binary files /dev/null and b/content/blog/survey-02/ease_contributions.png differ diff --git a/content/blog/survey-02/excitement.png b/content/blog/survey-02/excitement.png new file mode 100644 index 000000000..4b2be800e Binary files /dev/null and b/content/blog/survey-02/excitement.png differ diff --git a/content/blog/survey-02/excitement_contributions.png b/content/blog/survey-02/excitement_contributions.png new file mode 100644 index 000000000..73f05498a Binary files /dev/null and b/content/blog/survey-02/excitement_contributions.png differ diff --git a/content/blog/survey-02/frequency.png b/content/blog/survey-02/frequency.png new file mode 100644 index 000000000..0a4fbc9dd Binary files /dev/null and b/content/blog/survey-02/frequency.png differ diff --git a/content/blog/survey-02/improve.png b/content/blog/survey-02/improve.png new file mode 100644 index 000000000..ff4eadb71 Binary files /dev/null and b/content/blog/survey-02/improve.png differ diff --git a/content/blog/survey-02/index.md b/content/blog/survey-02/index.md new file mode 100644 index 000000000..095abfcd1 --- /dev/null +++ b/content/blog/survey-02/index.md @@ -0,0 +1,214 @@ ++++ +title = "Newsletter Survey Results" +date = 2024-06-03 +transparent = true +draft = false ++++ + +Since we are [rebooting the newsletter](https://gamedev.rs/blog/newsletter-changes/), we wanted to know more about our readers. +52 of you filled out the survey last month. Thank you very much! + +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)! + +We will now go through the results in the same order as the questions were asked. The full analysis and data is open-sourced on [GitHub](https://github.com/janhohenheim/rust-gamedev-statistics/tree/main/jan-hohenheim-2024). + +## Excitement + +![Excitement barplot](excitement.png) + +On average, readers are excited about the newsletter. The mean excitement level is 3.6 out of 5, the median is 4. +Our 95% confidence interval is [3.32, 3.91] using a standard error of 0.15 (sd = 1.05, n = 52). + +These are fairly nice results. Anecdotally, we got a lot of messages about issues with the newsletter and how to improve it, +so we are happy to see that the excitement is still high. Still, the data shows that we have room for improvement. + +## Content Quantity + +![Content quantity barplot](content_quantity.png) + + +When asked about how to change the amount of content per newsletter, the majority of readers (58%) voted to leave the amount as-is or don't care. +On the other hand, this means nearly half of the readers would change something about the content quantity. +17% voted for "less content; keep only the most important news" and 25% for "more content; add sections for minor news". +These two options are luckily not mutually exclusive. +One option we could implement is to have a new section for "minor news" where we don't go into detail, +and a section for "miscellaneous links" where we only list some links without any commentary. + +## Newsletter Frequency + +![Newsletter frequency barplot](frequency.png) + +73% of readers are either happy with the current frequency or don't care. A minority of 21% would like the newsletter to become quarterly. +Arguments we've heard for this are that a lower frequency would allow editors to improve the quality that goes into each newsletter. +Counterarguments include that a lower frequency would make the newsletter less timely. +Things like calls for playtesters or job offers would be less useful if they were only sent out every three months. + +## AI + +![AI barplot](ai.png) + +This question was a catalyst for a lot of discussion on [Discord]. + +If we interpret the answers as a scale of 1-5, where 1 is "not okay at all" and 5 is "I love it", the mean answer was 2.25, the median 2. +Notably, the mode is tied at 1 and 2. The 95% confidence interval is [1.89, 2.61] using a standard error of 0.18 (sd = 1.30, n = 52). +People are generally against using an LLM to generate summaries. 79.2% of readers would prefer not to use AI. + +Viewed from another angle: while a majority of readers (65%) are at least okay with AI-generated summaries, +a significant minority (35%) are not okay at all with this proposal. +These include very active members of the community and +contributors who have announced that they would no longer want their content to be included in the newsletter if AI was used. + +The reasons people gave for not wanting AI-generated summaries were varied. +Among these were: +- Solidarity with the large number of creatives who recently lost their jobs due to AI-generated content, +inside and outside the game development industry. +- Concerns about the quality of AI-generated summaries. +- Skepticism about AI-generated summaries saving time if they still need to be edited by hand. + +## Tone + +![Tone barplot](tone.png) + +A significant majority of readers (86.5%) are happy with the current tone of the newsletter, with a minority of 11.5% wanting a less formal tone. +While votes for the latter did not reach a majority, the written feedback we got included quite a few requests for more "personality" in the newsletter. + +## Contributions + +![Contributions barplot](contributions.png) + +The majority of readers (61.5%) have not yet contributed to the newsletter and 26.9% have contributed 2-5 times. +Only 3.8% contributed exactly once, while the rest (7.7%) are heavy contributors, helping us out more than five times. + +While it might seem weird that more people contributed 2-5 times than exactly once, +keep in mind that the former is the sum of people who contributed twice, thrice, four times, and five times. +The reason we binned these together is that we are interested in the following categories: +- Pure readers +- People who contributed once and then stopped +- People who contributed a few times +- People who are regular contributors + +We are happy to see that people who contributed once seem to continue contributing in the future. + +## Ease + +![Ease barplot](ease.png) + +The mean ease of contributing is 3.0, and the median is 3. The 95% confidence interval is [2.5, 3.6] using a standard error of 0.26 (sd = 1.26, n = 23). + +Readers generally feel neutral about the ease of contributing to the newsletter. + +We can do better here, but we are not sure yet how. +We'd love to hear your ideas on [GitHub](https://github.com/rust-gamedev/rust-gamedev.github.io/issues/1519) or on [Discord] (ping @janhohenheim). + +## Keeping up with the newsletter + +![Keeping up barplot](informed.png) + +This was a multiple-choice question. The most popular source of information about the newsletter is RSS (27.5%). +If we add the choices for the official [Rust GameDev Discord server][Discord] (21.7%) and other Discord servers (11.6%), +Discord in general becomes the leading source of information (33.3%), taking up nearly exactly a third of all votes. + +We can see the shift from X / Twitter to Mastodon reported by many OSS communities in our readers as well. +Lemmy is not looking popular as an alternative to Reddit yet, with no reader reporting it as a source of information. + +The "Email" option in the survey is meant for people who have set up some kind of email alerts manually. + +Per written feedback, a lot of people want to see proper email subscriptions implemented. While this was a goal for this month, +we have not managed to implement it yet. +We will try to [get this done](https://github.com/rust-gamedev/rust-gamedev.github.io/issues/24) for the next newsletter. + +## What is going well + +![What is going well wordcloud](like.png) + +This was a free-text question. The above is a word cloud of the answers with some obvious words like "game" or "newsletter" removed. +Note that the inclusion of the word "AI" is misleading, as it was only mentioned in answers that read similar to +"I like that we don't use AI, please don't use LLMs". + +Going through the feedback by hand, common things readers enjoy about the newsletter are: +- A good mix of content +- Very open to contributions +- Small-scale games are featured, not just success stories or technical articles + +## What needs to be improved + +![What needs to be improved wordcloud](improve.png) + +Another free-text question. The feedback here is fairly diverse. The most common complaints we already mentioned in previous sections are: +- Add an email subscription +- Improve the ease of contributing + +Additionally, many people feel like the "Games" section reads more like an advertisement than an article aimed at other game developers. + +Among the more unique suggestions were: +- Conduct interviews +- Have a stronger sense of personality in the writing +- Make the newsletter more consistent in timing and quantity +- Have more editors to not overburden the current ones +- Have some more clarity of purpose + + +## Comments + +![Comments wordcloud](comment.png) + +This last free-text question was meant for any additional comments readers might have. +The word cloud above is dominated by one sentence: "Thank you for your work". Thank you very very much for your kind words! +We are working on this newsletter in our free time because we love the community and Rust game development, so reading this means a lot to us. + +## Correlations + +We were interested in how the responses to some questions correlated with how much people had already contributed to the newsletter. +Long story short: it seems like there is no significant correlation between how much people contributed and how they answered the other questions. + +Let's look at the correlations in turn now. +Note that all the following plots are jittered to make the data more readable. + + +### Excitement By Contributions + +![Excitement correlation](excitement_contributions.png) + +We hypothesized that people who contributed more to the newsletter would be more excited about it. +We found no evidence for this (the p-value of a Jonckheere-Terpstra test for increasing trend is 0.986). +Based on the plot above, we then hypothesized that the opposite might be true, namely that frequent contributors are less excited about the newsletter. +This actually might be the case (p-value is 0.021), but do not take this as a strong result. +It is a posthoc hypothesis and the resulting p-value is not very low considering the number of tests we run in this analysis. +For these reasons, we do not consider this result to be significant. + +### Feelings About AI By Contributions + +![AI correlation](ai_contributions.png) + +We hypothesized that there would be a correlation between how much people contributed to the newsletter and how they felt about AI-generated summaries. +We found no evidence for this (the p-value of a Jonckheere-Terpstra test for a two-sided alternative is 0.57). + +### Ease of Contributing By Contributions + +![Ease correlation](ease_contributions.png) + +We hypothesized that there would be a correlation between how much people contributed to the newsletter and how easily they found it to contribute. + +We found no evidence for this (the p-value of a Jonckheere-Terpstra test for a two-sided alternative is 0.25). + +## Conclusion + +All in all, we are happy with the results of the survey. +It seems like our readers are generally happy with the newsletter, and have good ideas on how to improve it. +We will discuss how to implement these ideas in the future and keep you updated on our progress. + +If you are interested in helping us out, we are always looking for new editors and contributors. Just leave us a message on [Discord] or [GitHub]. + +Again, thank you very much for your feedback. Rebooting the newsletter was a big ordeal for us, +and we are happy to see such an active interest in the community. We hope that we can continue to provide you with a newsletter you enjoy. + +Until next time! + +~ The Rust GameDev Newsletter Team, and Jan Hohenheim in particular + +[Discord]: https://discord.gg/yNtPTb2 +[GitHub]: https://github.com/rust-gamedev/rust-gamedev.github.io diff --git a/content/blog/survey-02/informed.png b/content/blog/survey-02/informed.png new file mode 100644 index 000000000..3616d4a7a Binary files /dev/null and b/content/blog/survey-02/informed.png differ diff --git a/content/blog/survey-02/like.png b/content/blog/survey-02/like.png new file mode 100644 index 000000000..d17610ac1 Binary files /dev/null and b/content/blog/survey-02/like.png differ diff --git a/content/blog/survey-02/tone.png b/content/blog/survey-02/tone.png new file mode 100644 index 000000000..6a4c4b6dd Binary files /dev/null and b/content/blog/survey-02/tone.png differ diff --git a/content/news/001/index.md b/content/news/001/index.md index f0d53f4a2..d4bc25734 100644 --- a/content/news/001/index.md +++ b/content/news/001/index.md @@ -115,8 +115,11 @@ Also, check out ### Way of Rhea [Trailer][rhea trailer] and [Steam Wishlist][rhea steam] Announced -[![Part of the trailer](way-of-rhea.gif)][rhea trailer] -_click on the GIF to see [the full trailer][rhea trailer]_ +{{ image_figure( + alt="Part of the trailer" + src="https://github.com/way-of-rhea.gif" + caption="click on the GIF to see [the full trailer](https://youtube.com/watch?v=VIzqlI-gbAY)", + link="https://youtube.com/watch?v=VIzqlI-gbAY") }} [A new trailer][rhea trailer] and the [Steam wishlist][rhea steam] were published for "Way of Rhea" by [Anthropic Studios]. @@ -464,7 +467,7 @@ Special section for other news (up to 15) in a one-liner format: [Alex Butler]: https://twitter.com/bigabgames [roboinstructus 1.0]: https://reddit.com/r/rust/comments/cdw1ct/robo_instructus_is_out_now_programming_puzzle -## Popular Workgroup Issues in Github +## Popular Workgroup Issues in GitHub @@ -520,8 +523,11 @@ by [Michael Fairley] was released: > Clear a path to get to the hole, eat some eggs along the way, > and make sure to press all the buttons. -[![Part of A snake's Tail's trailer](a-snakes-tail.gif)][snake trailer] -_click on the GIF to see [the full release trailer][snake trailer]_ +{{ image_figure( + alt="Part of A snake's Tail's trailer" + src="https://github.com/a-snakes-tail.gif" + caption="click on the GIF to see [the full release trailer](https://www.youtube.com/watch?v=23pQmEuueNw)", + link="https://www.youtube.com/watch?v=23pQmEuueNw") }} A few posts about the game and how it was developed: diff --git a/content/news/002/index.md b/content/news/002/index.md index e6601dc3f..3b75a4a87 100644 --- a/content/news/002/index.md +++ b/content/news/002/index.md @@ -461,11 +461,11 @@ _Discussions: ![Live2D Piston demo](live2d-cubism.png) -- ["Github Actions CI with Rust and SDL2"] - +- ["GitHub Actions CI with Rust and SDL2"] - [Alexandru Ene] wrote a post about CI with [github actions] for [their hobby game project][after-hours] that uses Rust and SDL2. - ![Github Actions with SDL2 screencast demo](github_actions_ci.gif) + ![GitHub Actions with SDL2 screencast demo](github_actions_ci.gif) - [@phaazon] released [luminance] 0.33 that [brings geometry instancing support](https://reddit.com/r/rust/comments/d0us73/announcement_luminance033); @@ -527,7 +527,7 @@ but I'm too tired to this atm and it will be rendered correctly anyway. --> [Alexandru Ene]: https://twitter.com/_AlexEne_ -["Github Actions CI with Rust and SDL2"]: https://alexene.dev/2019/09/04/Github-actions-CI-rust-SDL2.html +["GitHub Actions CI with Rust and SDL2"]: https://alexene.dev/2019/09/04/Github-actions-CI-rust-SDL2.html [github actions]: https://github.com/features/actions [after-hours]: https://alexene.dev/2019/01/15/After-hours-game-development.html [Xprite]: https://pickitup247.com/xprite.html @@ -568,7 +568,7 @@ but I'm too tired to this atm and it will be rendered correctly anyway. [imgui-inspect]: https://github.com/aclysma/imgui-inspect [minimum]: https://github.com/aclysma/minimum -## Popular Workgroup Issues in Github +## Popular Workgroup Issues in GitHub diff --git a/content/news/003/index.md b/content/news/003/index.md index b6ab52045..74851e5c5 100644 --- a/content/news/003/index.md +++ b/content/news/003/index.md @@ -523,8 +523,10 @@ Also, see this GameDev WG tracker/complaint issue: ### [RLSL][rlsl]: a Rust to SPIR-V Compiler -![RLSL code sample](rlsl-example.png) -_a simple fragment shader that renders a red circle (temporary syntax)_ +{{ image_figure( + alt="RLSL code sample" + src="https://github.com/rlsl-example.png" + caption="a simple fragment shader that renders a red circle (temporary syntax)") }} This month, [@MaikKlein_DEV] gave a talk at [The Khronos Group](https://www.khronos.org)'s meetup in Munich @@ -557,8 +559,10 @@ _Discussions: ### [gfx-rs v0.4][gfx-v0-4] -![sailor screenshot: vector terrain map and some basic UI](sailor.png) -_a screenshot from [Yatekii/sailor] - a wgpu-based sailing navigation application_ +{{ image_figure( + alt="sailor screenshot: vector terrain map and some basic UI" + src="https://github.com/sailor.png" + caption="a screenshot from [Yatekii/sailor](https://github.com/Yatekii/sailor) - a wgpu-based sailing navigation application") }} [gfx-rs v0.4 was released](https://reddit.com/r/rust/comments/dm89t2/gfxhal_version_04_release): major changes were described in [the last blog post](https://gfx-rs.github.io/2019/10/01/update.html), @@ -683,8 +687,11 @@ _Discussions: ### [cyclone-physics-rs] -[![cyclone physics demo](cyclone-physics-demo.gif)][cyclone-video-demo] -_a little demo of "particle" simulation_ +{{ image_figure( + alt="cyclone physics demo", + src="https://github.com/cyclone-physics-demo.gif", + caption='a little demo of "particle" simulation', + link="https://twitter.com/heyrutvik/status/1180072669250834432") }} [cyclone-physics-rs] by [@heyrutvik] a new WIP game physics engine based on the ["Game Physics Engine Development" book][cyclone-physics-book]. @@ -793,7 +800,7 @@ _Discussions: [Amethyst organization]: https://github.com/amethyst [@_AndreaCatania]: https://twitter.com/_AndreaCatania -## Popular Workgroup Issues in Github +## Popular Workgroup Issues in GitHub diff --git a/content/news/004/index.md b/content/news/004/index.md index d8d959bc3..e97bf85aa 100644 --- a/content/news/004/index.md +++ b/content/news/004/index.md @@ -201,8 +201,11 @@ about the implementation of a drop table system to handle monster loot. ### [Recall Singularity: November Progress][recall-s-nov-text] -[![Demo of the basic ship collision](recall-sing.gif)][recall-s-nov-video] -_Demo of the basic ship collision._ +{{ image_figure( + alt="Demo of the basic ship collision" + src="https://github.com/recall-sing.gif" + caption="Demo of the basic ship collision.", + link="https://youtube.com/watch?v=AoPSAoqmTCk") }} [Tom Leys] is working on a "The Recall Singularity" game about designing autonomous factory ships and stations @@ -721,7 +724,7 @@ Check out the [online Demo][rust-nes-demo]. [Blaine Price]: https://blaineprice.me [@mvlabat]: https://github.com/mvlabat -## Popular Workgroup Issues in Github +## Popular Workgroup Issues in GitHub @@ -777,8 +780,11 @@ and highlight events from the past. --> Just an interesting Rust gamedev link from the past. :) -[![Pascal Penguin logo](penguin.png)][penguin-video] -_click to see the [release trailer][penguin-video]_ +{{ image_figure( + alt="Pascal Penguin logo" + src="https://github.com/penguin.png" + caption="click to see the [release trailer](https://youtube.com/watch?v=EgFr73AUwps)", + link="https://youtube.com/watch?v=EgFr73AUwps") }} ["Adventures of Pascal Penguin"][penguin-about] by [Matthew Michelotti](http://luduminis.com) diff --git a/content/news/005/index.md b/content/news/005/index.md index 3146d799d..25e14d6d6 100644 --- a/content/news/005/index.md +++ b/content/news/005/index.md @@ -258,8 +258,11 @@ _Discussions: ### [Garden Devlog: December][garden-dec] -[![Playing with dirt](garden.gif)][garden-video] -_new smooth soil editing demo_ +{{ image_figure( + alt="Playing with dirt" + src="https://github.com/garden.gif" + caption="new smooth soil editing demo", + link="https://youtube.com/watch?v=xU93FGrk1d8") }} [Garden][garden] is an upcoming game centered around growing realistic plants. @@ -802,7 +805,7 @@ Here're some of the Rust news from it: [inside-rust]: https://medium.com/embarkstudios/inside-rust-at-embark-b82c06d1d9f4 [cargo-about]: https://github.com/embarkstudios/cargo-about -## Popular Workgroup Issues in Github +## Popular Workgroup Issues in GitHub @@ -855,8 +858,11 @@ and highlight events from the past. --> Just an interesting Rust gamedev link from the past. :) -[![Modulator video](modulator_youtube.gif)][modulator-video] -_click to see [the tutorial video][modulator-video]_ +{{ image_figure( + alt="Modulator video" + src="https://github.com/modulator_youtube.gif" + caption="click to see [the tutorial video][modulator-video]", + link="modulator-video") }} In the November of 2018, [@AndreaPessino] (Founder/CTO of [Ready At Dawn] Studios) diff --git a/content/news/006/index.md b/content/news/006/index.md index 0b62ad87f..1c06e7994 100644 --- a/content/news/006/index.md +++ b/content/news/006/index.md @@ -838,8 +838,10 @@ Btw, [@resinten] continues working on a luminance-based game: ### [SPIR-Q][spir-q] v0.4.1 -![Example walking an entry point of a SPIR-V file](spir-q.png) -_Example walking an entry point of a SPIR-V file_ +{{ image_figure( + alt="Example walking an entry point of a SPIR-V file" + src="https://github.com/spir-q.png" + caption="Example walking an entry point of a SPIR-V file") }} [SPIR-Q][spir-q] is a lightweight [SPIR-V] query library. This month v0.2..v0.4.1 versions were released: @@ -962,7 +964,7 @@ _Discussions: [nestur]: https://github.com/spieglt/nestur -## Popular Workgroup Issues in Github +## Popular Workgroup Issues in GitHub diff --git a/content/news/007/index.md b/content/news/007/index.md index 2c4c7e8e5..3d168d99a 100644 --- a/content/news/007/index.md +++ b/content/news/007/index.md @@ -177,8 +177,10 @@ This month an alpha version was published on itch: [check it out here][colony-it ### [Veloren][veloren] -![Rolling mountain landscape](veloren1.png) -_Rolling mountain landscape_ +{{ image_figure( + alt="Rolling mountain landscape" + src="https://github.com/veloren1.png" + caption="Rolling mountain landscape") }} [Veloren][veloren] is an open world, open-source voxel RPG inspired by Dwarf Fortress and Cube World. @@ -214,8 +216,11 @@ Here is the February changelog: - Added music system ``` -[![veloren development](veloren3.gif)](https://youtube.com/watch?v=1ldHQfxCT24) -_1 year of Veloren development. Click for the full video!_ +{{ image_figure( + alt="veloren development" + src="https://github.com/veloren3.gif" + caption="1 year of Veloren development. Click for the full video!" + link="https://youtube.com/watch?v=1ldHQfxCT24") }} You can read more about some specific topics: @@ -243,8 +248,11 @@ February's full weekly devlogs: "This Week In Veloren...": ### [Oxidator][oxidator] -[![Gameplay demo: two giant tank armies clashing](oxidator-play.gif)][oxidator-video-play] -_gameplay demo (35000 units)_ +{{ image_figure( + alt="Gameplay demo: two giant tank armies clashing" + src="https://github.com/oxidator-play.gif" + caption="gameplay demo (35000 units)", + link="https://streamable.com/499j0") }} [Oxidator][oxidator] by [@Ruddle] is a real-time strategy game/engine written with Rust and WebGPU. @@ -270,11 +278,17 @@ Some of the current features: - Unit editor: basic editor with joint & mesh selection and parameter editing (speed, turn rate, health, etc); -[![Unit editor demo: move agent's parts](oxidator-unit-editor.gif)][oxidator-video-unit-editor] -_Demo of the unit editor_ +{{ image_figure( + alt="Unit editor demo: move agent's parts" + src="https://github.com/oxidator-unit-editor.gif" + caption="Demo of the unit editor", + link="https://streamable.com/ywr44") }} -[![Map editor demo: use pencil tool to instantly create a lake and mountains](oxidator-map-editor.gif)][oxidator-video-map-editor] -_Demo of the map editor_ +{{ image_figure( + alt="Map editor demo: use pencil tool to instantly create a lake and mountains" + src="https://github.com/oxidator-map-editor.gif" + caption="Demo of the map editor", + link="https://github.com/Ruddle/oxidator/blob/be4863e74/etc/map_editor.gif") }} [oxidator]: https://github.com/Ruddle/oxidator [@Ruddle]: https://github.com/Ruddle @@ -485,9 +499,11 @@ Tetra itself also received two small updates recently: ### [Akigi][akigi] -![High detail terrain chunk with PRR](akigi.png) -_Sampling a heightmap in the vertex shader and also computing the normal, -tangent and bitangent vectors in the vertex shader._ +{{ image_figure( + alt="High detail terrain chunk with PRR" + src="https://github.com/akigi.png" + caption="Sampling a heightmap in the vertex shader and also computing the normal, +tangent and bitangent vectors in the vertex shader.") }} [Akigi][akigi] is a multiplayer online world where most believe that humans are inferior. @@ -590,8 +606,10 @@ Check them out in the [latest winter devlog][grumpy_visitors]. ### [Make China Great Again][china-great] -![cities, planes and keys](china.png) -_Turn back planes to the port, by clicking right keys to the virus beat._ +{{ image_figure( + alt="cities, planes and keys" + src="https://github.com/china.png" + caption="Turn back planes to the port, by clicking right keys to the virus beat.") }} [Make China Great Again][china-great] ([source][china-great-src]) by [@PsichiX] is a GlobalGameJam game written using [Oxygengine]. @@ -633,8 +651,10 @@ dependency updates, bugfixes and performance optimizations. ### [Recall Singularity: February Progress][recall-s-feb] -![Harvesting and refining some Gold](recall-singularity.png) -_Harvesting and refining some Gold._ +{{ image_figure( + alt="Harvesting and refining some Gold" + src="https://github.com/recall-singularity.png" + caption="Harvesting and refining some Gold.") }} [Tom Leys] is working on a "The Recall Singularity" game about designing autonomous factory ships and stations. @@ -905,8 +925,10 @@ A showcase game is [being developed](https://github.com/lcnr/akari) with crow. ### miniquad: ["Rust 2D Engine 2020 Roadmap"][fedor-road] -![mainloop async/await experiment in macroquad](miniquad-sample.png) -_mainloop async/await experiment in macroquad_ +{{ image_figure( + alt="mainloop async/await experiment in macroquad" + src="https://github.com/miniquad-sample.png" + caption="mainloop async/await experiment in macroquad") }} [miniquad] by [@fedor_games] is a safe cross-platform rendering library focused on portability and low-end platforms support. @@ -1160,7 +1182,7 @@ It uses vulkan and skia for rendering. [neovide]: https://github.com/Kethku/neovide -## Popular Workgroup Issues in Github +## Popular Workgroup Issues in GitHub diff --git a/content/news/008/index.md b/content/news/008/index.md index 417f9993d..0af92e25e 100644 --- a/content/news/008/index.md +++ b/content/news/008/index.md @@ -334,8 +334,10 @@ Some of this month's updates: ### [Veloren][veloren] -![LoD](veloren1.png) -_Work on Level of Detail_ +{{ image_figure( + alt="LoD" + src="https://github.com/veloren1.png" + caption="Work on Level of Detail") }} [Veloren][veloren] is an open world, open-source voxel RPG inspired by Dwarf Fortress and Cube World. @@ -433,8 +435,10 @@ Main updates: ### gfx-rs and wgpu news -![Deeper game](deeper.png) -_[deeper] uses wgpu for rendering_ +{{ image_figure( + alt="Deeper game" + src="https://github.com/deeper.png" + caption="[deeper](https://github.com/arnfaldur/deeper) uses wgpu for rendering") }} [gfx-hal-0.5](https://github.com/gfx-rs/gfx/) was released! Improvements done in March: @@ -517,8 +521,10 @@ Some of this month's updates: ### [Nannou v0.13][nannou-post] -![Daily Sketch 0114 by Mactuitui](nannou.png) -_Daily Sketch 0114 by Mactuitui_ +{{ image_figure( + alt="Daily Sketch 0114 by Mactuitui" + src="https://github.com/nannou.png" + caption="Daily Sketch 0114 by Mactuitui") }} [Nannou][nannou] is a creative coding framework that aims to make it easy for artists to express themselves with simple, fast, reliable code. @@ -760,7 +766,7 @@ Full documentation is available at the [rectangle-pack docs.rs section][rectangl [rectangle-pack-homepage]: https://github.com/chinedufn/rectangle-pack [rectangle-pack-docs]: https://crates.io/crates/rectangle-pack/0.1.5 -## Popular Workgroup Issues in Github +## Popular Workgroup Issues in GitHub diff --git a/content/news/009/index.md b/content/news/009/index.md index 648a2a32a..a3bb90147 100644 --- a/content/news/009/index.md +++ b/content/news/009/index.md @@ -247,8 +247,10 @@ Follow [@seratonik] on Twitter for updates. ### [Akigi][akigi] -![shadows demo](akigi-shadows.jpeg) -_new shadows_ +{{ image_figure( + alt="shadows demo" + src="https://github.com/akigi-shadows.jpeg" + caption="new shadows") }} > [Akigi][akigi] is a multiplayer online world where humans > aren't the only intelligent animals. @@ -479,8 +481,10 @@ Here's a roundup of some of them: ### [Veloren][veloren] -![Buildings](veloren1.png) -_Early procedural building generation_ +{{ image_figure( + alt="Buildings" + src="https://github.com/veloren1.png" + caption="Early procedural building generation") }} [Veloren][veloren] is an open world, open-source voxel RPG inspired by Dwarf Fortress and Cube World. @@ -517,8 +521,10 @@ Here is the April changelog: - You can start the game by pressing "enter" from the character selection menu ``` -![Hanging out](veloren2.png) -_Early procedural building generation_ +{{ image_figure( + alt="Hanging out" + src="https://github.com/veloren2.png" + caption="Early procedural building generation") }} You can read more about some specific topics from April: @@ -632,9 +638,11 @@ explaining why they've chosen Rust for their project's backend. ### [Symmetric Matrices & Triangle Numbers][matrices-post] -![an example of a multi-layered game level](rhea-player-orb.jpeg) -_The pink orb should not collide with the player, -but it should collide with the ground._ +{{ image_figure( + alt="an example of a multi-layered game level" + src="https://github.com/rhea-player-orb.jpeg" + caption="The pink orb should not collide with the player, + but it should collide with the ground.") }} [Anthropic Studios][anthropic] has [shared a post][matrices-post] about implementing a layer system to ["Way of Rhea"'s][rhea] physics engine @@ -738,8 +746,10 @@ and additional information about contributing are available on the [github repos ### `gfx-rs` and `wgpu` News -![hectic screenshot: graveyard and vampires](hectic.png) -_[hectic-rs] - Rust/wgpu/specs re-write of hectic by [@expenses]_ +{{ image_figure( + alt="hectic screenshot: graveyard and vampires" + src="https://github.com/hectic.png" + caption="[hectic-rs](https://github.com/expenses/hectic-rs) - Rust/wgpu/specs re-write of hectic by [@expenses](https://github.com/expenses)") }} wgpu-0.5 release happened! See the [changelog][wgpu-0-5]. It's based on `gfx-hal-0.5` (which was covered in the [March newsletter][gfx-march]), @@ -883,8 +893,10 @@ in an eternally sprawling office complex. ### [miniquad] -![miniquad logo](miniquad_logo.png) -_`miniquad` project got a logo_ +{{ image_figure( + alt="miniquad logo" + src="https://github.com/miniquad_logo.png" + caption="`miniquad` project got a logo") }} [miniquad] is a safe and cross-platform rendering library focused on portability and low-end platforms support. @@ -1075,7 +1087,7 @@ _Discussions: [Godot]: https://godotengine.org @@ -1124,8 +1136,10 @@ and highlight events from the past. --> Just an interesting Rust gamedev link from the past. :) -![example](valora-example.jpeg) -_"dead end" by turnage, 2019_ +{{ image_figure( + alt="example" + src="https://github.com/valora-example.jpeg" + caption=""dead end" by turnage, 2019") }} A few months ago a generative art library ["valora"][valora-src] was released by [@turnage]. diff --git a/content/news/010/index.md b/content/news/010/index.md index 49237a5f1..241bfb18f 100644 --- a/content/news/010/index.md +++ b/content/news/010/index.md @@ -30,7 +30,7 @@ Table of contents: - [Game Updates](#game-updates) - [Learning Material Updates](#learning-material-updates) - [Library & Tooling Updates](#library-tooling-updates) -- [Popular Workgroup Issues in Github](#popular-workgroup-issues-in-github) +- [Popular Workgroup Issues in GitHub](#popular-workgroup-issues-in-github) - [Meeting Minutes](#meeting-minutes) - [Requests for Contribution](#requests-for-contribution) - [Jobs](#jobs) @@ -64,8 +64,10 @@ If needed, a section can be split into subsections with a "------" delimiter. ### [Veloren][veloren] -![Buildings](veloren1.png) -_The new repo banner_ +{{ image_figure( + alt="Buildings" + src="https://github.com/veloren1.png" + caption="The new repo banner") }} [Veloren][veloren] is an open world, open-source voxel RPG inspired by Dwarf Fortress and Cube World. @@ -79,8 +81,11 @@ release as well. Veloren also now has an [Open Collective account][veloren-opencollective], and you can donate towards our infrastructure costs. GamingOnLinux [wrote an article][gamingonlinux] on Veloren's development. -[![0.6 release trailer](veloren_trailer.gif)](https://www.youtube.com/watch?v=kjDFVgWYMd4) -_0.6 release trailer. Click for the full video!_ +{{ image_figure( + alt="0.6 release trailer" + src="https://github.com/veloren_trailer.gif" + caption="0.6 release trailer. Click for the full video!" + link="https://www.youtube.com/watch?v=kjDFVgWYMd4") }} Here is the May changelog: @@ -113,8 +118,10 @@ of 0.7, and what they wanted to achieve: > clashing together. I want to be able to add people to my combat party and > interact with the game UI to do this. -![Welcome to Veloren](veloren2.png) -_Welcome to Veloren! From the 0.6 release party_ +{{ image_figure( + alt="Welcome to Veloren" + src="https://github.com/veloren2.png" + caption="Welcome to Veloren! From the 0.6 release party") }} You can read more about some specific topics from May: @@ -213,8 +220,11 @@ Some of the updates: ### [Sandbox] -[![Sandbox gameplay demo](sandbox.jpeg)](https://streamable.com/0bhbol#) -_click to see a gameplay demo_ +{{ image_figure( + alt="Sandbox gameplay demo" + src="https://github.com/sandbox.jpeg" + caption="click to see a gameplay demo" + link="https://streamable.com/0bhbol#") }} [Sandbox] is a falling sand game by JMS55 that provides a variety of fun particle types to place, and then you get to watch the resulting interactions! @@ -320,8 +330,11 @@ Follow [@seratonik] on Twitter for updates. ### [Crate Before Attack][cratebeforeattack-site] -[![screenshot: decision tree and goal distance map in the background](crate_before_attack.png)][cratebeforeattack-site] -_Decision tree and goal distance map in the background_ +{{ image_figure( + alt="screenshot: decision tree and goal distance map in the background" + src="https://github.com/crate_before_attack.png" + caption="Decision tree and goal distance map in the background", + link="https://cratebeforeattack.com/") }} [Crate Before Attack][cratebeforeattack-site] by [koalefant (@CrateAttack)][@CrateAttack] is a realtime/turn-based multiplayer game where frogs combat their friends @@ -377,7 +390,7 @@ Dig Escape is a simple puzzle game written in Rust. You can play it in the browser [here][digescape-game]. The developer has released [some videos][digescape-progress-video] about the development of the game. They also [did a review][digescape-rust-review] on what it was like working with Rust for -the first time. Be sure to check out the [Github repo][digescape-github]. +the first time. Be sure to check out the [GitHub repo][digescape-github]. [digescape-game]: https://tantandev.itch.io/digescape [digescape-progress-video]: https://www.youtube.com/watch?v=q6-f63vZW8Y @@ -386,8 +399,10 @@ the first time. Be sure to check out the [Github repo][digescape-github]. ### [Akigi][akigi] -![cat model](akigi1.png) -_Completed cat model with rigging_ +{{ image_figure( + alt="cat model" + src="https://github.com/akigi1.png" + caption="Completed cat model with rigging") }} > [Akigi][akigi] is a magical multiplayer online world where humans aren't the > only intelligent animals. Akigi is a solo project, and the developer hopes to @@ -420,8 +435,10 @@ Full devlogs: ### Nox Futura: Rust Edition -![worldgen menu](nox-f.png) -_Worldgen menu_ +{{ image_figure( + alt="worldgen menu" + src="https://github.com/nox-f.png" + caption="Worldgen menu") }} [Herbert Wolverson][thebracket] (the author of [bracket-lib] and [the Rust Roguelike Tutorial][rl-book]) @@ -639,8 +656,11 @@ _Discussions: ### NodeFX -[![NodeFX](nodefx.png)][NodeFXTweet] -_Click the image to see the animated version_ +{{ image_figure( + alt="NodeFX" + src="https://github.com/nodefx.png" + caption="Click the image to see the animated version", + link="https://twitter.com/MrVallentin/status/1256805858022998016") }} Project "NodeFX" by [Christian Vallentin (@MrVallentin)][@MrVallentin] is an unnamed node-based tool for creating GLSL shaders in real-time, @@ -964,7 +984,7 @@ Robo Instructus][otf-font-robo]. [gdnative-release]: https://twitter.com/toast_dev/status/1267071886040555520 [@toast_dev]: https://twitter.com/toast_dev -## Popular Workgroup Issues in Github +## Popular Workgroup Issues in GitHub diff --git a/content/news/011/index.md b/content/news/011/index.md index 81fb9bffb..7bb64bd71 100644 --- a/content/news/011/index.md +++ b/content/news/011/index.md @@ -31,7 +31,7 @@ Table of contents: - [Game Updates](#game-updates) - [Learning Material Updates](#learning-material-updates) - [Library & Tooling Updates](#library-tooling-updates) -- [Popular Workgroup Issues in Github](#popular-workgroup-issues-in-github) +- [Popular Workgroup Issues in GitHub](#popular-workgroup-issues-in-github) - [Meeting Minutes](#meeting-minutes) - [Requests for Contribution](#requests-for-contribution) - [Bonus](#bonus) @@ -93,8 +93,11 @@ Also, participants are encouraged to ### [Way of Rhea][rhea-site] -[![Way of Rhea Trailer](way-of-rhea.jpeg)][rhea-trailer] -_Click to see the latest version of the game's trailer_ +{{ image_figure( + alt="Way of Rhea Trailer" + src="https://github.com/way-of-rhea.jpeg" + caption="Click to see the latest version of the game's trailer", + link="https://youtube.com/watch?v=eVrbZss_B3g") }} [Way of Rhea][rhea-site] ([steam][rhea-steam]) is an upcoming puzzle platformer that takes place in a world @@ -129,8 +132,10 @@ or [subscribe to its newsletter][rhea-newsletter]. ### [A/B Street][abstreet] - Adjust Traffic Patterns in Real Cities -![Measuring the effects of changes](abstreet-evaluating-impacts.gif) -_Measuring the effects of some changes_ +{{ image_figure( + alt="Measuring the effects of changes" + src="https://github.com/abstreet-evaluating-impacts.gif" + caption="Measuring the effects of some changes") }} [A/B Street][abstreet] is a traffic simulation game exploring how small changes to roads affect cyclists, transit users, pedestrians, and drivers. @@ -160,8 +165,11 @@ A/B Street uses a [custom GUI library][ezgui], leveraging `glium`, `usvg`, and ### [Crate Before Attack][cba-site] -[![In-game visual scripting prototype](crate_before_attack.gif)][cba-youtube-scripting] -_In-game visual scripting prototype_ +{{ image_figure( + alt="In-game visual scripting prototype" + src="https://github.com/crate_before_attack.gif" + caption="In-game visual scripting prototype", + link="https://youtu.be/LLAc9_cOR9o") }} [Crate Before Attack][cba-site] by [koalefant (@CrateAttack)][@CrateAttack] is a skill-based grappling hook multiplayer game where frogs combat their friends @@ -211,8 +219,10 @@ Some of the updates from [the June devlog][garden-devlog]: ### [Veloren][veloren] -![Animation improvements](veloren-wolf.gif) -_Animation improvements_ +{{ image_figure( + alt="Animation improvements" + src="https://github.com/veloren-wolf.gif" + caption="Animation improvements") }} [Veloren][veloren] is an open world, open-source voxel RPG inspired by Dwarf Fortress and Cube World. @@ -281,8 +291,10 @@ Also, check out [a talk about open source and Veloren][veloren-talk]: ### [Zero to Game][zerotoga.me] -![ships with greater thrust explode](zerotogame-destruction.gif) -_The initial destruction prototype applied across different thrust levels_ +{{ image_figure( + alt="ships with greater thrust explode" + src="https://github.com/zerotogame-destruction.gif" + caption="The initial destruction prototype applied across different thrust levels") }} [Zero to Game][zerotoga.me] is a project that documents the creation of an independent space game from zero. @@ -329,7 +341,7 @@ without any Javascript (besides a small shim). It can be played online [here][pont-online]! The system architecture is described in a [blog post][pont-blog] -and the source is available [on Github][pont-source] +and the source is available [on GitHub][pont-source] _Discussions: [/r/rust](https://www.reddit.com/r/rust/comments/gu1bq5/pont_a_board_game_in_rust_webassembly/), @@ -379,8 +391,10 @@ Web, Mac, Linux, Windows (untested) & possible even iOS & Android. ### [Animal Chess][AnimalChess] -![Part of the game map](animal-chess.jpeg) -_Part of the game map_ +{{ image_figure( + alt="Part of the game map" + src="https://github.com/animal-chess.jpeg" + caption="Part of the game map") }} [Animal Fight Chess][AnimalChess] (斗兽棋, "Doe Show Chee") by [@netcan] is a Rust implementation of a popular Chinese game. @@ -463,8 +477,11 @@ Two devlogs were released this month: ### [Weegames][weegames-itch] -[![Weegames](weegames.jpg)][weegames-video] -_Click to see [a demo video][weegames-video]_ +{{ image_figure( + alt="Weegames" + src="https://github.com/weegames.jpg" + caption="Click to see [a demo video](https://youtube.com/watch?v=A_GqhZ_7EIw)", + link="https://youtube.com/watch?v=A_GqhZ_7EIw") }} [Weegames][weegames-itch] is a fast-paced minigame collection. There are 23 odd games all made using free images and sounds. @@ -502,8 +519,11 @@ The demo's source code [could be found here][hypervis]. ### [Boids in Rust][rboids-post-1] -[![Boids demo](rboids-video.jpeg)][rboids-video] -_Click to watch [the video demo][rboids-video]_ +{{ image_figure( + alt="Boids demo" + src="https://github.com/rboids-video.jpeg" + caption="Click to watch [the video demo](https://drive.google.com/file/d/1ri4x-jCX8SA9oX8OqDIKtXhYIrEKlGjO/view)", + link="https://drive.google.com/file/d/1ri4x-jCX8SA9oX8OqDIKtXhYIrEKlGjO/view") }} [@twitu] has published a three-part blog series about simulating a group of virtual agents (boids) @@ -624,8 +644,10 @@ seemed like now is the time to address such issues in the API. ### [This Month in Mun][mun-june] -![Language Server Diagnostics in action](mun-languageserver.gif) -_Mun language server diagnostics in action_ +{{ image_figure( + alt="Language Server Diagnostics in action" + src="https://github.com/mun-languageserver.gif" + caption="Mun language server diagnostics in action") }} [Mun] is a scripting language for gamedev focused on quick iteration times that is written in Rust. @@ -658,7 +680,7 @@ different projects. A reference guide is also [available][glisp-reference] as well as [API documentation][glisp-docsrs] for integration into Rust. The crate has had its [initial release][glisp-cratesio], a roadmap and ways -to contribute are available on GameLisp's [Github Respository][glisp-github]. +to contribute are available on GameLisp's [GitHub Respository][glisp-github]. [gamelisp]: https://gamelisp.rs/ [glisp-playground]: https://gamelisp.rs/playground/ @@ -902,7 +924,7 @@ that allows you to play classic Nintendo Entertainment System games in the brows [gc-nes-src]: https://github.com/GarettCooper/gc_nes_emulator [garettcooper.com]: https://garettcooper.com/ -## Popular Workgroup Issues in Github +## Popular Workgroup Issues in GitHub diff --git a/content/news/012/index.md b/content/news/012/index.md index e1e79143f..bd2b863b6 100644 --- a/content/news/012/index.md +++ b/content/news/012/index.md @@ -64,8 +64,11 @@ If needed, a section can be split into subsections with a "------" delimiter. ### [ochre][4k-post] - 4K Intro -[![Youtube preview: mountains & spheres](4k-into-youtube.jpeg)][4k-video] -_Click to [watch the demo on Youtube][4k-video]._ +{{ image_figure( + alt="Youtube preview: mountains & spheres" + src="https://github.com/4k-into-youtube.jpeg" + caption="Click to [watch the demo on Youtube](https://youtube.com/watch?v=SIkkYRQ07tU).", + link="https://youtube.com/watch?v=SIkkYRQ07tU") }} Jani Peltonen has recently released a [4K intro][4k-src] which is completely written in Rust and GLSL @@ -116,8 +119,11 @@ _Discussions: ### [Crate Before Attack][cba-site] -[![Golf Club in Crate Before Attack](crate-before-attack.gif)][cba-site] -_A new weapon: the Golf Club_ +{{ image_figure( + alt="Golf Club in Crate Before Attack" + src="https://github.com/crate-before-attack.gif" + caption="A new weapon: the Golf Club", + link="https://cratebeforeattack.com/") }} [Crate Before Attack][cba-site] by [koalefant (@CrateAttack)][@CrateAttack] is a skill-based grappling hook multiplayer game where frogs combat their friends @@ -471,8 +477,11 @@ The game is in an early stage of development, ### [On FPS Game Progress \#2][on-fps-game-2] -[![fps-game-screenshot](fps-game-2.jpeg)][on-fps-game-2-youtube] -_Click to watch [footage from the game's current state][on-fps-game-2-youtube]._ +{{ image_figure( + alt="fps-game-screenshot" + src="https://github.com/fps-game-2.jpeg" + caption="Click to watch [footage from the game's current state](https://youtu.be/NIJNgr9zeXk).", + link="https://youtu.be/NIJNgr9zeXk") }} On this update, [@pingFromHeaven] talks about the lighting implementation that sets the tone for the game, how Rust is good at shortening the debugging @@ -509,8 +518,10 @@ Some of the recent updates: ### [Veloren][veloren] -![Sunrise](veloren-sunrise.gif) -_Sunrise_ +{{ image_figure( + alt="Sunrise" + src="https://github.com/veloren-sunrise.gif" + caption="Sunrise") }} [Veloren][veloren] is an open world, open-source voxel RPG inspired by Dwarf Fortress and Cube World. @@ -524,8 +535,10 @@ fast quadruped movement. Particle systems are being implemented and optimized. A crafting GUI has been added. Translations have stabilized significantly, and there is a framework for translators to know what needs to be done. -![Fire particles](veloren-fire.gif) -_Progress on the particle system_ +{{ image_figure( + alt="Fire particles" + src="https://github.com/veloren-fire.gif" + caption="Progress on the particle system") }} You can read more about some specific topics from July: @@ -549,8 +562,10 @@ In August, 0.7 will be released. Work will continue on castle and cave generation. The inaugural episode of the Rust Game Dev podcast will be released, which features an interview by Veloren developers. -![Quadrupeds](veloren-quadrupeds.png) -_Quadruped overhaul_ +{{ image_figure( + alt="Quadrupeds" + src="https://github.com/veloren-quadrupeds.png" + caption="Quadruped overhaul") }} [veloren]: https://veloren.net @@ -599,8 +614,11 @@ read the book at [sokoban.iolivia.me][sokoban_book]. ### [Make Pong with Rust][tantan-video] -[![youtube preview](video-pong-tutorial.jpeg)][tantan-video] -_Click to [watch the tutorial][tantan-video]._ +{{ image_figure( + alt="youtube preview" + src="https://github.com/video-pong-tutorial.jpeg" + caption="Click to [watch the tutorial][tantan-video].", + link="tantan-video") }} [TanTan] released a [video tutorial][tantan-video] that guides you through all the step of making a pong game in Rust @@ -638,8 +656,11 @@ The full article is available [here][dod]. ### ["Rust'N'Games" Talk][rust-n-games] -[![youtube preview: a slide with Tower Rangers game](rust-n-games-youtube.jpeg)][rust-n-games] -_Click to [watch the talk][rust-n-games]._ +{{ image_figure( + alt="youtube preview: a slide with Tower Rangers game" + src="https://github.com/rust-n-games-youtube.jpeg" + caption="Click to [watch the talk](https://youtu.be/0Bj-5C2Zfqs?t=1404).", + link="https://youtu.be/0Bj-5C2Zfqs?t=1404") }} During the recent ["Rust and Tell"][rust-n-tell] online event [Stephan @extrawurst Dilly][@extrawurst] gave a ["Rust'N'Games" talk][rust-n-games] @@ -810,8 +831,10 @@ Linux, macOS and Windows! ### [wgpu][wgpu-site] -![procgen dynamic "grass field"](tuitui-grass-field.jpeg) -_[@MacTuitui]'s everyday [nannou] experiment #1274_ +{{ image_figure( + alt='procgen dynamic "grass field"' + src="https://github.com/tuitui-grass-field.jpeg" + caption="[@MacTuitui](https://twitter.com/MacTuitui)'s everyday [nannou](https://nannou.cc) experiment #1274") }} The work is ongoing to validate all the incoming commands and guarantee API safety. Special thanks to [@GabrielMajeri] for helping to convert assertions @@ -931,8 +954,11 @@ You can follow progress on [GitHub][graphene] or on [Twitter][apoorvaj]. ### Vulkan Renderer (Name TBD) -[![Vulkan renderer on iOS prototype](vulkan-renderer-prototype.jpeg)][vulkan-renderer-prototype-video] -_Click to watch [the video demo][vulkan-renderer-prototype-video] running on iOS._ +{{ image_figure( + alt="Vulkan renderer on iOS prototype" + src="https://github.com/vulkan-renderer-prototype.jpeg" + caption="Click to watch [the video demo][vulkan-renderer-prototype-video] running on iOS.", + link="vulkan-renderer-prototype-video") }} [@aclysma] published a [new vulkan-based renderer][renderer-prototype] that uses [atelier-assets] to load 3D scenes exported from blender. @@ -1014,7 +1040,7 @@ You can watch a [video of Rust interpreter running Fizzbuzz][langcraft-video]: [Langcraft]: https://github.com/SuperTails/langcraft [langcraft-video]: https://youtube.com/watch?v=Cx0w5Wn9pPU - + ## Meeting Minutes @@ -1089,8 +1115,11 @@ and highlight events from the past. --> Just an interesting Rust gamedev link from the past. :) -[![youtube preview](shar-youtube.jpeg)][shar-trailer] -_Click to watch [SHAR's Greenlight trailer][shar-trailer]_ +{{ image_figure( + alt="youtube preview" + src="https://github.com/shar-youtube.jpeg" + caption="Click to watch [SHAR's Greenlight trailer][shar-trailer]", + link="shar-trailer") }} [SHAR][shar-itch] (Russian "Шар" - ball) by [@fedor_games] (author of [miniquad]/[macroquad]) is a 3rd-person online action game that aims to create unique experience diff --git a/content/news/013/index.md b/content/news/013/index.md index 85a677516..822545c21 100644 --- a/content/news/013/index.md +++ b/content/news/013/index.md @@ -31,7 +31,7 @@ Table of contents: - [Game Updates](#game-updates) - [Learning Material Updates](#learning-material-updates) - [Library & Tooling Updates](#library-tooling-updates) -- [Popular Workgroup Issues in Github](#popular-workgroup-issues-in-github) +- [Popular Workgroup Issues in GitHub](#popular-workgroup-issues-in-github) - [Meeting Minutes](#meeting-minutes) - [Requests for Contribution](#requests-for-contribution) @@ -113,8 +113,11 @@ for you to listen and subscribe: ### [Crate Before Attack][cba-site] -[![Camera debugging in Crate Before Attack](crate-before-attack.jpeg)][cba-site] -_Debugging camera motion: highlighted areas are points of interest_ +{{ image_figure( + alt="Camera debugging in Crate Before Attack" + src="https://github.com/crate-before-attack.jpeg" + caption="Debugging camera motion: highlighted areas are points of interest", + link="https://cratebeforeattack.com/") }} [Crate Before Attack][cba-site] by [koalefant (@CrateAttack)][@CrateAttack] is a skill-based multiplayer game where frogs combat their friends @@ -144,8 +147,10 @@ More details are in [August DevLog-entry][cba-august-update]. ### [Veloren][veloren] -![Landscape](veloren-landscape1.jpeg) -_Landscape with new LoD and lighting_ +{{ image_figure( + alt="Landscape" + src="https://github.com/veloren-landscape1.jpeg" + caption="Landscape with new LoD and lighting") }} [Veloren][veloren] is an open world, open-source voxel RPG inspired by Dwarf Fortress and Cube World. @@ -163,8 +168,10 @@ UX front. Animations for movement and combat were added and improved. Work continued on particle systems, which have been added to Veloren in places like campfires, fireworks, and weapons. -![Healing sceptre](veloren-sceptre.gif) -_Healing sceptre with the new particle system_ +{{ image_figure( + alt="Healing sceptre" + src="https://github.com/veloren-sceptre.gif" + caption="Healing sceptre with the new particle system") }} You can read more about some specific topics from August: @@ -262,8 +269,11 @@ It can be played in the browser or downloaded at [itch.io][Cary]. ### [Way of Rhea] -[![Anthropic's virtual booth at Play NYC](way-of-rhea-play-nyc.png)][Way of Rhea] -_Anthropic's virtual booth at [Play NYC]_ +{{ image_figure( + alt="Anthropic's virtual booth at Play NYC" + src="https://github.com/way-of-rhea-play-nyc.png" + caption="Anthropic's virtual booth at [Play NYC](https://www.play-nyc.com/)", + link="https://store.steampowered.com/app/1110620/Way_of_Rhea/") }} [Way of Rhea] is a puzzle platformer that takes place in a world where you can only interact with items that match your current color. @@ -351,8 +361,11 @@ Chillscapes is written using an early-in-development 2d engine, ### [Dwarf Seeks Fortune][dsf-github] -[![Dwarf Seeks Fortune](dwarf_seeks_fortune.png)][dsf-github] -_Collect all keys to unlock the door to the next level_ +{{ image_figure( + alt="Dwarf Seeks Fortune" + src="https://github.com/dwarf_seeks_fortune.png" + caption="Collect all keys to unlock the door to the next level", + link="https://github.com/amethyst/dwarf_seeks_fortune") }} [Dwarf Seeks Fortune][dsf-github] is a puzzle-platformer made with the Amethyst game engine. Its developer, Jazarro, has partnered with the Amethyst organization @@ -396,8 +409,11 @@ Full devlogs: ### [SIMple Physics][simple-physics-site] -[![SIMple Mechanics wave preset](simple-physics-wave.gif)][simple-physics-gifs] -_One of SIMple Mechanic's Lua presets, a colorful wave of bouncing circles_ +{{ image_figure( + alt="SIMple Mechanics wave preset" + src="https://github.com/simple-physics-wave.gif" + caption="One of SIMple Mechanic's Lua presets, a colorful wave of bouncing circles", + link="https://mkhan45.github.io/SIMple-Physics/posts/Gifs/") }} [SIMple Physics][simple-physics-site] by [@mkhan45] is a set of educational physics simulators meant to help students and teachers conduct labs without expensive equipment @@ -443,8 +459,11 @@ work with graphics in Rust using [SDL2][sdl2] library. ### [Beginning Game Development with Amethyst][rustconf-talk-video] -[![youtube preview](rustconf-amethyst-talk.png)][rustconf-talk-video] -_Click to [watch the talk][rustconf-talk-video]_ +{{ image_figure( + alt="youtube preview" + src="https://github.com/rustconf-amethyst-talk.png" + caption="Click to [watch the talk](https://www.youtube.com/watch?v=GFi_EdS_s_c)", + link="https://www.youtube.com/watch?v=GFi_EdS_s_c") }} Getting started with Rust + gamedev can be intimidating. At [RustConf 2020][rust-conf-2020], [Micah Tigley] gave a talk about their experience @@ -515,8 +534,10 @@ game development are planned. ### [ecs_bench_suite] -![Summary results table](ecs-bench.png) -_The full benchmark report is available [here][ecs_report]_ +{{ image_figure( + alt="Summary results table" + src="https://github.com/ecs-bench.png" + caption="The full benchmark report is available [here](https://rust-gamedev.github.io/ecs_bench_suite/target/criterion/report/index.html)") }} This month [@TomGillen] (author of the [Legion][legion] ECS) released [ecs_bench_suite] - a suite of benchmarks designed to test and compare @@ -759,8 +780,10 @@ also built. ### [gfx-rs][gfx-repo] and [wgpu][wgpu-site] -![wgpu-rs water](wgpu-water.gif) -_wgpu-rs's [water example][wgpu-water]_ +{{ image_figure( + alt="wgpu-rs water" + src="https://github.com/wgpu-water.gif" + caption="wgpu-rs's [water example](https://github.com/gfx-rs/wgpu-rs/tree/master/examples/water)") }} gfx-rs project and wgpu ecosystem have observed the release of 0.6 versions! 🎉 @@ -900,7 +923,7 @@ These last few weeks have been big for the Bevy project: - Rapier, a new pure-rust physics engine, released an [official Bevy plugin][bevy-rapier]. - Thanks to the generosity of individuals and companies, they quickly met - their first two funding goals on @cart's [Github Sponsors page][bevy-spnsors]: + their first two funding goals on @cart's [GitHub Sponsors page][bevy-spnsors]: "sustainable development" and "@cart makes minimum wage working on Bevy". - Bevy received a glowing review from the Amethyst Engine team and they agreed to collaborate in certain areas. @@ -1171,8 +1194,11 @@ The collected profile data can be viewed ingame with [imgui-rs]. ### [Optick][optick] Profiler -[![A screenshot from the video](optick-video.jpg)][optic-video] -_Click to watch a [video tutorial / features overview][optic-video]_ +{{ image_figure( + alt="A screenshot from the video" + src="https://github.com/optick-video.jpg" + caption="Click to watch a [video tutorial / features overview](https://youtube.com/watch?v=p57TV5342fo)", + link="https://youtube.com/watch?v=p57TV5342fo") }} [Optick][optick] by [@bombomby] is a lightweight C++ profiler for games that provides access for all the necessary tools required for @@ -1253,7 +1279,7 @@ Amongst them: [football-manager]: https://en.wikipedia.org/wiki/Football_Manager [Football Manager Tools]: https://github.com/Stromberg90/football-manager-tools -## Popular Workgroup Issues in Github +## Popular Workgroup Issues in GitHub - [rust-gamedev/wg](https://github.com/rust-gamedev/wg): - [#89 "Moving ecs_bench to GDWG"](https://github.com/rust-gamedev/wg/issues/89); diff --git a/content/news/014/index.md b/content/news/014/index.md index ffd2a544a..b34c86bba 100644 --- a/content/news/014/index.md +++ b/content/news/014/index.md @@ -30,7 +30,7 @@ Table of contents: - [Game Updates](#game-updates) - [Learning Material Updates](#learning-material-updates) - [Library & Tooling Updates](#library-tooling-updates) -- [Popular Workgroup Issues in Github](#popular-workgroup-issues-in-github) +- [Popular Workgroup Issues in GitHub](#popular-workgroup-issues-in-github) - [Requests for Contribution](#requests-for-contribution) diff --git a/content/news/016/index.md b/content/news/016/index.md index 0942022b5..0b7c57d10 100644 --- a/content/news/016/index.md +++ b/content/news/016/index.md @@ -35,7 +35,7 @@ Table of contents: - [Game Updates](#game-updates) - [Learning Material Updates](#learning-material-updates) - [Library & Tooling Updates](#library-tooling-updates) -- [Popular Workgroup Issues in Github](#popular-workgroup-issues-in-github) +- [Popular Workgroup Issues in GitHub](#popular-workgroup-issues-in-github) - [Requests for Contribution](#requests-for-contribution) diff --git a/content/news/017/index.md b/content/news/017/index.md index 86b38a51c..7d9240fe3 100644 --- a/content/news/017/index.md +++ b/content/news/017/index.md @@ -34,7 +34,7 @@ Table of contents: - [Game Updates](#game-updates) - [Learning Material Updates](#learning-material-updates) - [Library & Tooling Updates](#library-tooling-updates) -- [Popular Workgroup Issues in Github](#popular-workgroup-issues-in-github) +- [Popular Workgroup Issues in GitHub](#popular-workgroup-issues-in-github) - [Requests for Contribution](#requests-for-contribution) diff --git a/content/news/018/index.md b/content/news/018/index.md index ddbe2e0d7..bb8243516 100644 --- a/content/news/018/index.md +++ b/content/news/018/index.md @@ -35,7 +35,7 @@ Table of contents: - [Learning Material Updates](#learning-material-updates) - [Engine Updates](#engine-updates) - [Library & Tooling Updates](#library-tooling-updates) -- [Popular Workgroup Issues in Github](#popular-workgroup-issues-in-github) +- [Popular Workgroup Issues in GitHub](#popular-workgroup-issues-in-github) - [Requests for Contribution](#requests-for-contribution) diff --git a/content/news/019/index.md b/content/news/019/index.md index fa2aa10f6..687358873 100644 --- a/content/news/019/index.md +++ b/content/news/019/index.md @@ -33,7 +33,7 @@ Table of contents: - [Learning Material Updates](#learning-material-updates) - [Engine Updates](#engine-updates) - [Library & Tooling Updates](#library-tooling-updates) -- [Popular Workgroup Issues in Github](#popular-workgroup-issues-in-github) +- [Popular Workgroup Issues in GitHub](#popular-workgroup-issues-in-github) - [Requests for Contribution](#requests-for-contribution) diff --git a/content/news/020/index.md b/content/news/020/index.md index 84ea7b82b..4fcc925cf 100644 --- a/content/news/020/index.md +++ b/content/news/020/index.md @@ -162,8 +162,10 @@ Some of the recent updates: ### [Aladin Lite] -![Mars with a RdBu colormap](aladin_lite_mars_RdBu_cm.gif) -_Mars heightmap with a RdBu colormap rendered with Aladin Lite v3_ +{{ image_figure( + alt="Mars with a RdBu colormap" + src="https://github.com/aladin_lite_mars_RdBu_cm.gif" + caption="Mars heightmap with a RdBu colormap rendered with Aladin Lite v3") }} [Aladin Lite] is a spatial image survey visualizer developed by the [Astronomical Observatory of Strasbourg] in France. Since its first release in 2013, @@ -191,8 +193,10 @@ on the project's github. ### [Portal Explorer][portal-explorer] -!["Portal in portal" scene](portal-explorer.png) -_"Portal in portal" scene_ +{{ image_figure( + alt='"Portal in portal" scene' + src="https://github.com/portal-explorer.png" + caption='"Portal in portal" scene') }} [Portal Explorer][portal-explorer] by [@optozorax][optozorax-twitter] is a web visualizator of mind-blowing portals. @@ -213,8 +217,10 @@ interface is [egui][egui-git]. ### [Name Needed][name-needed] -![Wandering agents hauling items around and digging](name-needed.gif) -_Agents wandering around, hauling items and digging blocks_ +{{ image_figure( + alt="Wandering agents hauling items around and digging" + src="https://github.com/name-needed.gif" + caption="Agents wandering around, hauling items and digging blocks") }} [Name Needed][name-needed] by [@DomWilliams0][domwilliams-github] is a one man effort to produce an open source, intuitive and high performance Dwarf @@ -237,8 +243,10 @@ which so far include: ### [Orbital Decay][orbital-decay] -![Orbital Decay](orbital-decay.gif) -_Orbital Decay gameplay_ +{{ image_figure( + alt="Orbital Decay" + src="https://github.com/orbital-decay.gif" + caption="Orbital Decay gameplay") }} [Orbital Decay][orbital-decay] by [@stevebob] is an [open-source][orbital-decay-source] turn-based tactical roguelike with a focus @@ -309,8 +317,11 @@ at [Rust Meetup Linz on April 22][rust-linz]. ### [Bounty Bros.][bounty_bros] -[![bounty-bros-character-on-map](bounty_bros.png)][bounty_bros_webgame] -_Click the image to play the game in your browser!_ +{{ image_figure( + alt="bounty-bros-character-on-map" + src="https://github.com/bounty_bros.png" + caption="Click the image to play the game in your browser!", + link="https://skipngo.katharostech.com/?asset_url=https://bounty-bros.skipngo.katharostech.com/") }} [Bounty Bros.][bounty_bros] is a prototype game similar to the old Legend of Zelda® games developed by [Katharos Technology][katharostech] as a testing @@ -391,8 +402,11 @@ the project's internals. ### Stellary 2 -[![Stellary 2 Anti-Missile Laser](stellary2-centered-view.gif)][stellary2-ppcv-tweet] -_▶️ Click to [watch the full video][stellary2-ppcv-tweet]_ +{{ image_figure( + alt="Stellary 2 Anti-Missile Laser" + src="https://github.com/stellary2-centered-view.gif" + caption="▶️ Click to [watch the full video](https://twitter.com/CoffeJunkStudio/status/1378719827347509249)", + link="https://twitter.com/CoffeJunkStudio/status/1378719827347509249") }} Stellary 2 by [@CoffeJunkStudio][coffe-junk-studio] is a 3D real-time space shooter in which the player has to control his spaceship to colonize each planet @@ -473,8 +487,10 @@ of the 1990 [Gameboy platformer][gargoyle-wiki] built using [wgpu]. ### [Fishgame][fishgame] -![Fishgame](fishgame.gif) -_Game footage with the new weapon._ +{{ image_figure( + alt="Fishgame" + src="https://github.com/fishgame.gif" + caption="Game footage with the new weapon.") }} [Fishgame][fishgame] [(web build)][fishgame-itch] is an online multiplayer game, created in a collaboration between [Nakama][nakama], an open-source scalable @@ -493,8 +509,10 @@ This month: ### [Veloren][veloren] -![Airship](veloren.jpg) -_Waiting for the airship to land_ +{{ image_figure( + alt="Airship" + src="https://github.com/veloren.jpg" + caption="Waiting for the airship to land") }} [Veloren][veloren] is an open world, open-source voxel RPG inspired by Dwarf Fortress and Cube World. @@ -527,8 +545,11 @@ March's full weekly devlogs: "This Week In Veloren...": ### [Theta Wave] -[![Enemy Formations](theta-wave.gif)][Theta Wave] -_Enemies can now be easily spawned in formations_ +{{ image_figure( + alt="Enemy Formations" + src="https://github.com/theta-wave.gif" + caption="Enemies can now be easily spawned in formations", + link="https://github.com/amethyst/theta-wave") }} [Theta Wave] is an open-source space shooter game by developers [@micah_tigley] and [@carlosupina]. It is one of the showcase games for the [Amethyst Engine]. In @@ -580,8 +601,11 @@ Updates: ### [Station Iapetus] -[![Station Iapetus Youtube](station-iapetus-youtube.png)][si-youtube] -_Click on the iamge to see the gameplay video on YouTube_ +{{ image_figure( + alt="Station Iapetus Youtube" + src="https://github.com/station-iapetus-youtube.png" + caption="Click on the iamge to see the gameplay video on YouTube", + link="https://youtube.com/watch?v=O_ETjSkVBME") }} [Station Iapetus][Station Iapetus] by [@mrDIMAS] is a 3rd person shooter on the prison Iapetus near the Saturn. @@ -749,8 +773,10 @@ the recent engine updates: ### [Oxygengine v0.16.0][oxygengine-git] -![Oxygengine + RAUI integration](oxygengine-raui-integration.gif) -_Integration of RAUI (UI/UX) crate with Oxygengine game engine_ +{{ image_figure( + alt="Oxygengine + RAUI integration", + src="https://github.com/oxygengine-raui-integration.gif", + caption="Integration of RAUI (UI/UX) crate with Oxygengine game engine") }} [Oxygengine][oxygengine-git] by [@PsichiX][psichix-twitter] is the hottest HTML5 + WASM game engine for games written in Rust with web-sys. @@ -776,8 +802,10 @@ one highly modular toolset. ### [Bevy v0.5][bevy-blog] -![PBR material example](bevy_pbr.png) -_Material grid with varying PBR properties_ +{{ image_figure( + alt="PBR material example" + src="https://github.com/bevy_pbr.png" + caption="Material grid with varying PBR properties") }} [Bevy][bevy] is a refreshingly simple data-driven game engine built in Rust. It is [free and open source][bevy-git] forever! @@ -861,8 +889,10 @@ The repository includes a GitHub workflow for Linux, MacOS, and Windows builds ### [Reverse-Engineering NES Tetris to Add Hard Drop][tetris-hard-drop] -![NES Tetris with Hard Drop and Ghost Piece](tetris-hard-drop.gif) -_NES Tetris with Hard Drop and Ghost Piece_ +{{ image_figure( + alt="NES Tetris with Hard Drop and Ghost Piece" + src="https://github.com/tetris-hard-drop.gif" + caption="NES Tetris with Hard Drop and Ghost Piece") }} A [blog post][tetris-hard-drop] describing the process of reverse-engineering the rendering and input-handling logic in the NES version of Tetris, and using @@ -1135,8 +1165,10 @@ SMAA S2x likely to be added depending on interest. ### [wgpu] -![voxel bunny on wgpu](wgpu-conservative-bunny.png) -_Voxel Bunny rendering with conservative rasterization_ +{{ image_figure( + alt="voxel bunny on wgpu" + src="https://github.com/wgpu-conservative-bunny.png" + caption="Voxel Bunny rendering with conservative rasterization") }} [wgpu] is a [WebGPU] implementation in Rust. It is safe, efficient, and portable: can target both native (Vulkan/D3D/Metal) and the Web. @@ -1168,9 +1200,11 @@ _Discussions: ### [rust-gpu v0.3][rust-gpu-v0-3] -![A Sci-Fi helmet model](grr-gltf.jpg) -_The Khronos Sci-Fi helmet model in a [glTF model viewer][grr-gltf] -created by [@msiglreith] using rust-gpu_ +{{ image_figure( + alt="A Sci-Fi helmet model" + src="https://github.com/grr-gltf.jpg" + caption="The Khronos Sci-Fi helmet model in a [glTF model viewer](https://github.com/msiglreith/grr-gltf) +created by [@msiglreith](https://github.com/msiglreith) using rust-gpu") }} [rust-gpu] is a new codegen backend by Embark Studios for Rust, aimed at making Rust a first class language for writing GPU shaders! @@ -1200,8 +1234,10 @@ _Discussions: ### [rafx] -![rafx tilemap rendering](rafx-tilemap-rendering.png) -_Rafx rendering an example tilemap from [LDTK level editor][rafx-ldtk]_ +{{ image_figure( + alt="rafx tilemap rendering" + src="https://github.com/rafx-tilemap-rendering.png" + caption="Rafx rendering an example tilemap from [LDTK level editor](https://ldtk.io)") }} Rafx is a multi-backend renderer that optionally integrates with the [distill][rafx-distill] asset pipeline. This month, a fourth layer @@ -1266,8 +1302,10 @@ can get glimpses of its development by following the author on [Twitter][h3r2tic ### [Bevy Retro][bevy_retro] -![pixel-perfect-collision-demo](bevy_retro.gif) -_Pixel-perfect collision [example][bevy_retro_collision_example]_ +{{ image_figure( + alt="pixel-perfect-collision-demo" + src="https://github.com/bevy_retro.gif" + caption="Pixel-perfect collision [example](https://github.com/katharostech/bevy_retro/tree/master/examples#collisions)") }} [Bevy Retro][bevy_retro] is a new [Bevy] plugin designed for making pixel-perfect games. @@ -1299,8 +1337,10 @@ Feel free to discuss the project and provide feedback ### [RAUI v0.28.1][raui-git] -![RAUI + Tetra TODO app](raui-tetra-todo-app-material-ui.gif) -_RAUI + Tetra TODO app demo_ +{{ image_figure( + alt="RAUI + Tetra TODO app" + src="https://github.com/raui-tetra-todo-app-material-ui.gif" + caption="RAUI + Tetra TODO app demo") }} [RAUI][raui-git] by [@PsichiX][psichix-twitter] is a Renderer Agnostic User Interface crate that is based on declarative mode UI composition similar to @@ -1324,8 +1364,10 @@ This month's updates: ### [egui-macroquad] -![Code example of usage of this library.](egui-macroquad.png) -_Code example of usage of this library._ +{{ image_figure( + alt="Code example of usage of this library." + src="https://github.com/egui-macroquad.png" + caption="Code example of usage of this library.") }} [egui-macroquad] is a small library to use [egui][egui-git] inside of [macroquad][macroquad-git]. It consists only of two functions. @@ -1385,8 +1427,10 @@ cleanup, tweaks, optimization, and finally packaging the GUI up. ### [Bitmapflow] -![Bitmapflow interpolating a walking mech animation](bitmapflow.gif) -_Bitmapflow interpolating a walking mech animation_ +{{ image_figure( + alt="Bitmapflow interpolating a walking mech animation" + src="https://github.com/bitmapflow.gif" + caption="Bitmapflow interpolating a walking mech animation") }} Bitmapflow ([GitHub][Bitmapflow-GitHub]) by [@bauxitedev] is a tool to help you generate [inbetweens] for animated sprites. In other words, it makes your @@ -1420,9 +1464,10 @@ _Discussions: [/r/rust_gamedev][Bitmapflow-Reddit]_ ### [Graphite][graphite-repo] -!["Graphite" drawn using the circles and rectangles of the new tool drawing system](graphite-tool-system-progress.png) -_"Graphite" drawn using the circles and rectangles of the new tool drawing -system_ +{{ image_figure( + alt='"Graphite" drawn using the circles and rectangles of the new tool drawing system' + src="https://github.com/graphite-tool-system-progress.png" + caption='"Graphite" drawn using the circles and rectangles of the new tool drawing system') }} Graphite ([GitHub][graphite-repo], [Discord][graphite-discord], [Twitter](https://twitter.com/GraphiteEditor)) is an in-progress vector and diff --git a/content/news/021/index.md b/content/news/021/index.md index 8ad32733e..84236eeb4 100644 --- a/content/news/021/index.md +++ b/content/news/021/index.md @@ -100,8 +100,11 @@ _Discussions: ### [LD48: Micronaut][micronaut-itch] -[![GIF showing Micronaut's primary level recursion mechanic](micronaut.gif)][micronaut-itch] -_Micronaut features a deep recursive level layout_ +{{ image_figure( + alt="GIF showing Micronaut's primary level recursion mechanic" + src="https://github.com/micronaut.gif" + caption="Micronaut features a deep recursive level layout", + link="https://healthire.itch.io/micronaut") }} Micronaut is a small puzzle platformer by [@Healthire] made in 48 hours for the Ludum Dare 48 Compo. Run and jump your way through a recursive level layout to @@ -216,8 +219,10 @@ if you want to try it out. ### [The Process] -![Animated image showcasing the test map in The Process](the_process.gif) -_The new test map in The Process_ +{{ image_figure( + alt="Animated image showcasing the test map in The Process" + src="https://github.com/the_process.gif" + caption="The new test map in The Process") }} [The Process] by @setzer22 is an upcoming game about factory building, process management and carrot production, built @@ -269,8 +274,11 @@ Recent updates include: ### [Taipo][taipo-itch] -[![Screenshot of Taipo showing a variety of towers and enemies](taipo.png)][taipo-itch] -_Click the image to play the game in your desktop browser!_ +{{ image_figure( + alt="Screenshot of Taipo showing a variety of towers and enemies" + src="https://github.com/taipo.png" + caption="Click the image to play the game in your desktop browser!", + link="https://euclidean-whale.itch.io/taipo") }} Taipo ([itch.io][taipo-itch], [GitHub][taipo-github]) by [@rparrett] is a Tower Defense game that's controlled solely by typing words and phrases. @@ -341,8 +349,10 @@ Rhea developments: ### [Veloren][veloren] -![Airship](veloren.jpg) -_A mist rolling over the land_ +{{ image_figure( + alt="Airship" + src="https://github.com/veloren.jpg" + caption="A mist rolling over the land") }} [Veloren][veloren] is an open world, open-source voxel RPG inspired by Dwarf Fortress and Cube World. @@ -402,8 +412,11 @@ _Discussions: ### [Theta Wave] -[![Enemy Formations](theta-wave.gif)][Theta Wave] -_Mobs may now be spawned in predefined formations_ +{{ image_figure( + alt="Enemy Formations" + src="https://github.com/theta-wave.gif" + caption="Mobs may now be spawned in predefined formations", + link="https://github.com/amethyst/theta-wave") }} [Theta Wave] is an open-source space shooter game by developers [@micah_tigley] and [@carlosupina]. It is one of the showcase games for the [Amethyst Engine]. In @@ -482,8 +495,10 @@ framework - additions are welcomed! ### [Oxygengine v0.19.1][oxygengine-git] -![Oxygengine UI splash screen](oxygengine-ui-splash-screen.gif) -_Making splash screens in Oxygengine with RAUI_ +{{ image_figure( + alt="Oxygengine UI splash screen" + src="https://github.com/oxygengine-ui-splash-screen.gif" + caption="Making splash screens in Oxygengine with RAUI") }} [Oxygengine][oxygengine-git] by [@PsichiX][psichix-twitter] is the hottest HTML5 + WASM game engine for games written in Rust with web-sys. @@ -524,8 +539,10 @@ the recent engine updates: ### [Arcana] -![arcana](tanks.gif) -_A demo Arcana game_ +{{ image_figure( + alt="arcana" + src="https://github.com/tanks.gif" + caption="A demo Arcana game") }} [Arcana] is a new game engine built with focus on ease of use without compromising on level of control. @@ -610,8 +627,11 @@ The water & transition shader is open source and can be found ### [Rust Linz: Learning Rust with Game Development][rust-linz] -[![Rust Linz talk screenshot](rust-linz.png)][rust-linz] -_Click on the image to watch the talk_ +{{ image_figure( + alt="Rust Linz talk screenshot" + src="https://github.com/rust-linz.png" + caption="Click on the image to watch the talk", + link="https://www.youtube.com/watch?v=79GyLlXAk-0") }} As part of April's Rust Linz meetup, [Herbert Wolverson][rust-linz-hw] gave a talk about using game development as a means of learning @@ -627,8 +647,11 @@ posted on the [author's twitter][rust-linz-coupon]. ### [Rust LA Meetup: Happiness in Rust][rust-la] -[![Rust LA talk screenshot](rust-la.png)][rust-la] -_Click on the image to watch the talk_ +{{ image_figure( + alt="Rust LA talk screenshot" + src="https://github.com/rust-la.png" + caption="Click on the image to watch the talk", + link="https://www.youtube.com/watch?v=TJ3w-pZ7FMI") }} As part of April's Rust LA meetup, [Andrea Pessino][rad-andrea] from [Ready at Dawn][rad] gave a talk examining how to increase Rust adoption @@ -721,8 +744,10 @@ _Discussions: [/r/rust], [Twitter]_ ### [opensubdiv-petite] -![Low poly car model](opensubdiv-petite.jpg) -_Low poly car with three levels of Catmull-Clark subdivision applied._ +{{ image_figure( + alt="Low poly car model" + src="https://github.com/opensubdiv-petite.jpg" + caption="Low poly car with three levels of Catmull-Clark subdivision applied.") }} [Opensubdiv-petite] is a high level, selective, oxidized wrapper around Pixar’s [OpenSubdiv] [sudivison surface] meshing and evaluation library. OpenSubdiv allows @@ -864,9 +889,11 @@ It has never been easier to add an in-game flamegraph profiler to your game! ### [rafx] -[![Rafx WebGL 1.0 Demo](rafx-webgl1-demo.png)][rafx-webgl-demo] -_Rafx WebGL 1.0 support, [click for live demo][rafx-webgl-demo]!_ - +{{ image_figure( + alt="Rafx WebGL 1.0 Demo" + src="https://github.com/rafx-webgl1-demo.png" + caption="Rafx WebGL 1.0 support, [click for live demo](https://aclysma.github.io/rafx/demo-web/index.html)!", + link="[rafx-webgl-demo](https://aclysma.github.io/rafx/demo-web/index.html)") }} Rafx is a multi-backend renderer that optionally integrates with the [distill][rafx-distill] asset pipeline. This month, frustum culling and a new OpenGL ES 2.0/WebGL 1.0 backend were added. @@ -891,8 +918,10 @@ or browser ([~98% web coverage][rafx-webgl-caniuse].) ### [RAUI v0.34.0][raui-git] -![RAUI Scroll Box](raui-scroll-box.gif) -_RAUI Scroll Box_ +{{ image_figure( + alt="RAUI Scroll Box" + src="https://github.com/raui-scroll-box.gif" + caption="RAUI Scroll Box") }} [RAUI][raui-git] by [@PsichiX][psichix-twitter] is a Renderer Agnostic User Interface crate that is based on declarative mode UI composition similar to @@ -912,8 +941,10 @@ This month's changes include: ### [Graphite][graphite-repo] -![Ferris drawn in Graphite using the new drawing tools - Art credit: Uriopass](graphite-ferris.png) -_Ferris drawn in Graphite using the new drawing tools - Art credit: Uriopass_ +{{ image_figure( + alt="Ferris drawn in Graphite using the new drawing tools - Art credit: Uriopass" + src="https://github.com/graphite-ferris.png" + caption="Ferris drawn in Graphite using the new drawing tools - Art credit: Uriopass") }} Graphite ([GitHub][graphite-repo], [Discord][graphite-discord], [Twitter](https://twitter.com/GraphiteEditor)) is an in-progress vector and @@ -962,8 +993,10 @@ GUI. ### [chip-8-rs] -![Screenshot of Pong with debugger](chip-8-rs.jpg) -_Debugging Pong_ +{{ image_figure( + alt="Screenshot of Pong with debugger" + src="https://github.com/chip-8-rs.jpg" + caption="Debugging Pong") }} [Chip-8-rs][chip-8-rs] by @jonathanmurray is a CHIP-8 emulator with some basic debugging functionality. diff --git a/content/news/022/index.md b/content/news/022/index.md index b015d1b43..43dcab00e 100644 --- a/content/news/022/index.md +++ b/content/news/022/index.md @@ -70,8 +70,10 @@ working on in a future meetup, fill out [this form][gamedev-meetup-form]. ### Flesh -![flesh preview](flesh.gif) -_a new enemy_ +{{ image_figure( + alt="flesh preview" + src="https://github.com/flesh.gif" + caption="a new enemy") }} Flesh by [@im_oab] is a 2D-horizontal shmup game with hand-drawn animation and organic/fleshy theme. It is implemented using [Tetra]. This month's updates @@ -86,7 +88,10 @@ include: ### [Veloren][veloren] -![Airship](veloren.jpg) _The beginning of an exciting journey_ +{{ image_figure( + alt="Airship" + src="https://github.com/veloren.jpg" + caption="The beginning of an exciting journey") }} [Veloren][veloren] is an open world, open-source voxel RPG inspired by Dwarf Fortress and Cube World. @@ -137,8 +142,10 @@ multiple turn lanes, U-turns, and stop signs much better. ### [The Process] -![Animated image showing a small factory in the middle of the game island](the_process.gif) -_This factory has never looked livelier!_ +{{ image_figure( + alt="Animated image showing a small factory in the middle of the game island" + src="https://github.com/the_process.gif" + caption="This factory has never looked livelier!") }} [The Process] by @setzer22 is an upcoming game about factory building, process management and carrot production, built with Rust using the Godot game engine! @@ -200,8 +207,11 @@ if you want to try it out. ### [Bounty Bros.][bounty_bros] -[![bounty-bros-title-screen](bounty-bros.png)][bounty_bros_webgame] -_Click the image to play the game in your browser!_ +{{ image_figure( + alt="bounty-bros-title-screen" + src="https://github.com/bounty-bros.png" + caption="Click the image to play the game in your browser!", + link="https://katharostech.github.io/skipngo_pre-releases/refs/tags/pre-release-1/?asset_url=https://katharostech.github.io/bounty-bros_pre-releases/1") }} [Bounty Bros.][bounty_bros] is a prototype game, similar to the old Legend of Zelda® games, developed by [Katharos Technology][katharostech] as a testing @@ -319,8 +329,11 @@ _Discussions: ### [Theta Wave] -[![Blast Repeller](theta-wave.gif)][Theta Wave] -_The Blast Repeller item pushes blasts away from the player_ +{{ image_figure( + alt="Blast Repeller" + src="https://github.com/theta-wave.gif" + caption="The Blast Repeller item pushes blasts away from the player", + link="https://github.com/amethyst/theta-wave") }} [Theta Wave] is an open-source space shooter game by developers [@micah_tigley] and [@carlosupina]. It is one of the showcase games for the [Amethyst Engine]. In @@ -525,8 +538,10 @@ _Discussion: [Twitter][2048-bevy-twitter]_ ### [Graphite][graphite-repo] -![Piet Mondrian's artwork replicated in Graphite using the new color picker](graphite-piet.png) -_Piet Mondrian's artwork replicated in Graphite using the new color picker_ +{{ image_figure( + alt="Piet Mondrian's artwork replicated in Graphite using the new color picker" + src="https://github.com/graphite-piet.png" + caption="Piet Mondrian's artwork replicated in Graphite using the new color picker") }} Graphite ([GitHub][graphite-repo], [Discord][graphite-discord], [Twitter](https://twitter.com/GraphiteEditor)) is an in-development vector and @@ -624,8 +639,10 @@ done by [naga], roughly 4x as fast as the C++ alternative ### [rafx] -![Rafx Wireframe Demo](rafx-wireframe-demo.jpg) -_Demo with wireframes enabled_ +{{ image_figure( + alt="Rafx Wireframe Demo" + src="https://github.com/rafx-wireframe-demo.jpg" + caption="Demo with wireframes enabled") }} Rafx is a multi-backend renderer that optionally integrates with the [distill][rafx-distill] asset pipeline. @@ -654,8 +671,10 @@ instead of imgui. ### [Bevy Retro][bevy_retro] -![ui-example](bevy-retro.gif) -_Bevy Retro UI example_ +{{ image_figure( + alt="ui-example" + src="https://github.com/bevy-retro.gif" + caption="Bevy Retro UI example") }} [Bevy Retro][bevy_retro] is a [Bevy] plugin designed for making pixel-perfect games as easily as possible. @@ -685,8 +704,10 @@ You can ask questions or give feedback for Bevy Retro ### [Texture Generator] -![A tilemap with procedural textures](texture-generator.png) -_A preview to version 0.5 with furniture_ +{{ image_figure( + alt="A tilemap with procedural textures" + src="https://github.com/texture-generator.png" + caption="A preview to version 0.5 with furniture") }} [Texture Generator] by [Orchaldir] is a library to generate textures, and a library to use those textures to render tilemaps. @@ -774,8 +795,10 @@ F-reps can also be sliced into polylines/vectors or bitmaps – e.g. for derivin ### [nvtx-rs] -![A screenshot of NVIDIA NSight Systems with only one sections measured](nvtx.png) -_Watching the profile in NVIDIA NSight Systems_ +{{ image_figure( + alt="A screenshot of NVIDIA NSight Systems with only one sections measured" + src="https://github.com/nvtx.png" + caption="Watching the profile in NVIDIA NSight Systems") }} NVIDIA® Tools Extension SDK (NVTX) is a C-based API for annotating events, code ranges, and resources in your applications. diff --git a/content/news/023/index.md b/content/news/023/index.md index d8dc3794a..075f3fee4 100644 --- a/content/news/023/index.md +++ b/content/news/023/index.md @@ -175,9 +175,11 @@ telnet protocols, and TLS connections to name a few. ### [The Hat Chooses the Wizard][hatchooseswizard] -![Level 1-4 of the game "The Hat Chooses the Wizard" running on a Game Boy -Advance](hatchooseswizard.jpg) -_Runs on real hardware!_ +{{ image_figure( + alt='Level 1-4 of the game "The Hat Chooses the Wizard" running on a Game Boy +Advance' + src="https://github.com/hatchooseswizard.jpg" + caption="Runs on real hardware!") }} The Hat Chooses the Wizard is a 2D platformer for the Game Boy Advance. @@ -202,10 +204,12 @@ feedback is welcome. ### [Themengi] -![User highlighting objects in the game world and parsing the phrase +{{ image_figure( + alt='User highlighting objects in the game world and parsing the phrase "dang puru rupuu kythengi" into the action "open", object "door", and mods -"red" and "left".](themengi.gif) -_Demonstration of natural language parser with temporary words and grammar._ +"red" and "left".' + src="https://github.com/themengi.gif" + caption="Demonstration of natural language parser with temporary words and grammar.") }} [Themengi] ([Discord][themengi-discord], [Twitter][themengi-twitter]) is a puzzle adventure game where you learn an alien language, @@ -225,8 +229,11 @@ outline shader in the Bevy render pipeline. ### [Dango] -[![Dango bouncing and jumping around](dango.gif)][Dango] -_Cute rice dumplings_ +{{ image_figure( + alt="Dango bouncing and jumping around" + src="https://github.com/dango.gif" + caption="Cute rice dumplings", + link="http://ernestwong.nz/dango-tribute/server/") }} [Dango] ([GitHub][dango-github]) is a little multiplayer blob physics sandbox made by [@ErnWong] as a tribute to the [Dango Daikazoku][dango-daikazoku] from @@ -321,8 +328,10 @@ downloadable Windows version. ### Flesh -![flesh preview](flesh.gif) -_demo build_ +{{ image_figure( + alt="flesh preview" + src="https://github.com/flesh.gif" + caption="demo build") }} Flesh by [@im_oab] is a 2D-horizontal shmup game with hand-drawn animation and organic/fleshy theme. It is implemented using [Tetra]. This month, an internal @@ -335,7 +344,10 @@ demo build was released, with a development journal available on ### [Veloren][veloren] -![Cave run](veloren.png) _Turns out the cave wasn't empty_ +{{ image_figure( + alt="Cave run" + src="https://github.com/veloren.png" + caption="Turns out the cave wasn't empty") }} [Veloren][veloren] is an open world, open-source voxel RPG inspired by Dwarf Fortress and Cube World. @@ -387,8 +399,10 @@ scoreboard, increasing fall speed, game over, JUICE. ### [The Process] -![The new terrain editor in The Process](the_process.gif) -_Building the world, one voxel at a time_ +{{ image_figure( + alt="The new terrain editor in The Process" + src="https://github.com/the_process.gif" + caption="Building the world, one voxel at a time") }} [The Process] by @setzer22 is an upcoming game about factory building, process management, and carrot production, @@ -625,7 +639,7 @@ currently features a fully functional finite automaton editor and simulator, and many other models, editing features and simulations are planned. You can check out a [live WASM demo here][Sugarcubes], -or the [source code on Github][Sugarcubes source]. +or the [source code on GitHub][Sugarcubes source]. [Sugarcubes]: https://henryksloan.github.io/sugarcubes/ [Sugarcubes source]: https://github.com/henryksloan/sugarcubes @@ -633,8 +647,10 @@ or the [source code on Github][Sugarcubes source]. ### [Rusty Slider] -![Rusty Slider code block example](rustyslider.png) -_Supports syntax highlighting of code blocks_ +{{ image_figure( + alt="Rusty Slider code block example" + src="https://github.com/rustyslider.png" + caption="Supports syntax highlighting of code blocks") }} [Rusty Slider] by [@ollej] is a markdown slideshow viewer written with macroquad. @@ -661,9 +677,11 @@ demo purposes, to show actual results of commands. ### [Graphite][graphite-repo] -![Geometric cherry tree](graphite-cherry-tree.png) -_Geometric cherry tree artwork by BillyDM, winner of last month's first -Graphite art contest_ +{{ image_figure( + alt="Geometric cherry tree" + src="https://github.com/graphite-cherry-tree.png" + caption="Geometric cherry tree artwork by BillyDM, winner of last month's first +Graphite art contest") }} Graphite ([GitHub][graphite-repo], [Discord][graphite-discord], [Twitter](https://twitter.com/GraphiteEditor)) is an in-development vector and @@ -694,8 +712,10 @@ code and how you can help! ### [texture_generator] v0.5 -![A black&white top-down image of some building](texture_generator.png) -_An depth image example_ +{{ image_figure( + alt="A black&white top-down image of some building" + src="https://github.com/texture_generator.png" + caption="An depth image example") }} [texture_generator] by [Orchaldir] is a library to generate textures, and a library to use those textures to render tilemaps. @@ -726,9 +746,11 @@ _Discussions: [GGRS]([crates.io](https://crates.io/crates/ggrs)) by [@g_schup] are pure Rust implementations of the [GGPO] rollback networking library. -![Evo Moment 37](rollback.jpg) -_[Evo Moment 37](https://www.youtube.com/watch?v=JzS96auqau0): -Only offline or with rollback!_ +{{ image_figure( + alt="Evo Moment 37" + src="https://github.com/rollback.jpg" + caption="[Evo Moment 37](https://www.youtube.com/watch?v=JzS96auqau0): +Only offline or with rollback!") }} Rollback networking is a peer-to-peer network technique designed to hide network latency in fast-paced games with precise inputs. Traditional techniques @@ -771,8 +793,11 @@ check out the [GGPO Developers Discord]! ### [CrystalOrb] -[![CrystalOrb demo animation](crystalorb.gif)][crystalorb-demo] -_Interactive [demo][crystalorb-demo] that uses the [Rapier] physics engine._ +{{ image_figure( + alt="CrystalOrb demo animation" + src="https://github.com/crystalorb.gif" + caption="Interactive [demo](https://ernestwong.nz/crystalorb/demo) that uses the [Rapier](https://rapier.rs) physics engine.", + link="https://ernestwong.nz/crystalorb/demo") }} [CrystalOrb] by [@ErnWong] is a new networking library that aims to help fast-paced client-server games synchronize their game state across multiple @@ -801,8 +826,10 @@ There is an [interactive demo][crystalorb-demo] of CrystalOrb that features the ### [glutin] (and [winit]) -![Animated image showing a window that is opened with a spinning cursor on top](winit-bug-1.gif) -_This cursor may be waiting [in vain], but your patience shall be rewarded._ +{{ image_figure( + alt="Animated image showing a window that is opened with a spinning cursor on top" + src="https://github.com/winit-bug-1.gif" + caption="This cursor may be waiting [in vain], but your patience shall be rewarded.") }} [glutin] is a low-level library for OpenGL context creation, written in pure Rust. [glutin] uses and re-exports [winit], which handles window creation and management, @@ -934,8 +961,11 @@ This includes automatic testing using software adapters on CI. ### [rafx] -[![Rafx Flythrough Demo](rafx-flythrough-demo.jpg)][rafx-youtube-video] -_A scene exported via blender with animated camera motion, [watch the demo on youtube][rafx-youtube-video]!_ +{{ image_figure( + alt="Rafx Flythrough Demo" + src="https://github.com/rafx-flythrough-demo.jpg" + caption="A scene exported via blender with animated camera motion, [watch the demo on youtube](https://www.youtube.com/watch?v=HlJsgbGyl0I)!", + link="https://www.youtube.com/watch?v=HlJsgbGyl0I") }} [Rafx][rafx] is a multi-backend renderer that optionally integrates with the [distill][rafx-distill] asset pipeline. diff --git a/content/news/024/index.md b/content/news/024/index.md index c5ae10139..fb22ab7d5 100644 --- a/content/news/024/index.md +++ b/content/news/024/index.md @@ -82,7 +82,10 @@ out [this form][gamedev-meetup-form]. ### [Veloren][veloren] -![Llama ride](veloren.png) _Out for a llama ride_ +{{ image_figure( + alt="Llama ride" + src="https://github.com/veloren.png" + caption="Out for a llama ride") }} [Veloren][veloren] is an open world, open-source voxel RPG inspired by Dwarf Fortress and Cube World. @@ -147,8 +150,10 @@ if you'll be there! ### [Shroom Kingdom][shroom-kingdom] -![Shroom Kingdom Asset Extractor](shroom-kingdom.gif) -_Extracting the game assets_ +{{ image_figure( + alt="Shroom Kingdom Asset Extractor" + src="https://github.com/shroom-kingdom.gif" + caption="Extracting the game assets") }} Shroom Kingdom ([GitHub][shrm-github], [Discord][shrm-discord], [Twitter][shrm-twitter]) is an upcoming play-to-earn video game built with web technologies @@ -186,8 +191,10 @@ Next steps include developing a Proof of Concept. ### [Wicked Potions][wicked_potions] -![Screenshot of the game](wicked_potions.png) -_Match ingredients to brew wicked potions_ +{{ image_figure( + alt="Screenshot of the game" + src="https://github.com/wicked_potions.png" + caption="Match ingredients to brew wicked potions") }} [Wicked Potions][wicked_potions] is a match-three game developed by [@nikl_me] and [jennifervphan] for the [Bored Pixels Jam 8][bored-pixels-jam-8]. @@ -209,8 +216,10 @@ and story a bit more. ### [The Process] -![Showcase image for the new inventory UI in The Process](the_process.gif) -_The godot_egui backend powering a new inventory UI for The Process_ +{{ image_figure( + alt="Showcase image for the new inventory UI in The Process" + src="https://github.com/the_process.gif" + caption="The godot_egui backend powering a new inventory UI for The Process") }} [The Process] by @setzer22 is an upcoming game about factory building, process management, and carrot production, @@ -293,8 +302,11 @@ Changes and improvements from the last month: ### [Theta Wave] -[![Amethyst to Bevy](theta-wave.gif)][Bevy Theta Wave] -_Left: Theta Wave with Amethyst, Right: Theta Wave with Bevy (so far)_ +{{ image_figure( + alt="Amethyst to Bevy" + src="https://github.com/theta-wave.gif" + caption="Left: Theta Wave with Amethyst, Right: Theta Wave with Bevy (so far)", + link="https://github.com/thetawavegame/thetawave") }} [Theta Wave] is an open-source space shooter game by developers [@micah_tigley] and [@carlosupina]. It is one of the showcase games for the [Amethyst Engine]. In @@ -315,8 +327,11 @@ the port [here][Bevy Port Issue]. ### [Bounty Bros.][bounty_bros] -[![bounty-bros-title-screen](bounty-bros.jpg)][bounty_bros_webgame] -_Click the image to play the game in your browser!_ +{{ image_figure( + alt="bounty-bros-title-screen" + src="https://github.com/bounty-bros.jpg" + caption="Click the image to play the game in your browser!", + link="https://katharostech.github.io/skipngo_pre-releases/refs/tags/pre-release-2/?asset_url=https://katharostech.github.io/bounty-bros_pre-releases/2") }} [Bounty Bros.][bounty_bros] is a prototype, top-down adventure game, developed by [Katharos Technology][katharostech] as a testing ground for a future @@ -380,8 +395,10 @@ issue](https://github.com/ggez/ggez/issues/875). ### [Macroquad] -![Zemeroth running on Android](macroquad.jpg) -_A Macroquad game ([Zemeroth](#zemeroth)) running on Android!_ +{{ image_figure( + alt="Zemeroth running on Android" + src="https://github.com/macroquad.jpg" + caption="A Macroquad game ([Zemeroth](#zemeroth)) running on Android!") }} [Macroquad] is a cross-platform game framework, inspired heavily by Raylib. @@ -465,8 +482,11 @@ animated sprites. ### [Writing an RPG using rg3d][writing-an-rpg-using-rg3d] -[![rg3d RPG screenshot](rg3d.jpg)][rg3d-video] -_[Click here][rg3d-video] to see a video of the character controller in action!_ +{{ image_figure( + alt="rg3d RPG screenshot" + src="https://github.com/rg3d.jpg" + caption="[Click here](https://www.youtube.com/watch?v=l2ZbDpoIdqk) to see a video of the character controller in action!", + link="https://www.youtube.com/watch?v=l2ZbDpoIdqk") }} Dimitry Stepanov (aka @mrDIMAS) published a [tutorial series][writing-an-rpg-using-rg3d] about @@ -481,8 +501,10 @@ it's still a great way to learn the basics of rg3d and Rust gamedev in general! ### [Graphite][graphite-repo] -![Graphite logo](graphite_scream.png) -_A recreation of "The Scream" in Graphite by Norgate_ +{{ image_figure( + alt="Graphite logo" + src="https://github.com/graphite_scream.png" + caption="A recreation of "The Scream" in Graphite by Norgate") }} Graphite ([GitHub][graphite-repo], [Discord][graphite-discord], [Twitter](https://twitter.com/GraphiteEditor)) is an in-development vector and @@ -639,8 +661,10 @@ now features a [tutorial] and full game [examples] for every type of session. ### [Bevy Retrograde][bevy_retrograde] -![physics example](./bevy-retrograde.gif) -_Bevy Retrograde Physics Map example_ +{{ image_figure( + alt="physics example" + src="https://github.com/bevy-retrograde.gif" + caption="Bevy Retrograde Physics Map example") }} [Bevy Retrograde][bevy_retrograde] (formerly Bevy Retro) is a [Bevy] plugin designed for making pixel-perfect games as easily as possible. diff --git a/content/news/025/index.md b/content/news/025/index.md index 126ed8408..a6ca90674 100644 --- a/content/news/025/index.md +++ b/content/news/025/index.md @@ -33,7 +33,7 @@ Feel free to send PRs about your own projects! - [Engine Updates](#engine-updates) - [Tooling Updates](#tooling-updates) - [Library Updates](#library-updates) -- [Popular Workgroup Issues in Github](#popular-workgroup-issues-in-github) +- [Popular Workgroup Issues in GitHub](#popular-workgroup-issues-in-github) - [Requests for Contribution](#requests-for-contribution) diff --git a/content/news/026/index.md b/content/news/026/index.md index 63f9d0efb..6d2d73dca 100644 --- a/content/news/026/index.md +++ b/content/news/026/index.md @@ -37,7 +37,7 @@ Feel free to send PRs about your own projects! - [Engine Updates](#engine-updates) - [Tooling Updates](#tooling-updates) - [Library Updates](#library-updates) -- [Popular Workgroup Issues in Github](#popular-workgroup-issues-in-github) +- [Popular Workgroup Issues in GitHub](#popular-workgroup-issues-in-github) - [Requests for Contribution](#requests-for-contribution) - [Discussions](#discussions) @@ -166,14 +166,17 @@ _Discussions: [Twitter][bitgun-inventory]_ The Windows version of the game has been rewritten to use Macroquad, so now the web and downloadable versions of the game share the same codebase. Development for the web version has moved to the -[Weegames Github][weegames-github] repository. +[Weegames GitHub][weegames-github] repository. [weegames-itch]: https://yeahross.itch.io/weegames [weegames-github]: https://github.com/yeahross0/weegames ### [Veloren][veloren] -![An odd structure in the woods](veloren.jpg) _An odd structure in the woods_ +{{ image_figure( + alt="An odd structure in the woods" + src="https://github.com/veloren.jpg" + caption="An odd structure in the woods") }} [Veloren][veloren] is an open world, open-source voxel RPG inspired by Dwarf Fortress and Cube World. @@ -211,8 +214,10 @@ September's full weekly devlogs: "This Week In Veloren...": ### [Harvest Hero Origins][hho] @ PAX West 2021 -![hho @ pax](hho_pax.jpg) -_Gemdrop Games booth at PAX West 2021_ +{{ image_figure( + alt="hho @ pax" + src="https://github.com/hho_pax.jpg" + caption="Gemdrop Games booth at PAX West 2021") }} [Harvest Hero Origins][hho] ([Discord](https://discord.gg/CJRbxQn3d9), @@ -323,8 +328,10 @@ at [Idu's Discord server's #demo-download channel][idu-discord]! ### [Antorum Online] -![Some players fishing at the beach](antorum.jpg) -_It's a good day for fishing..._ +{{ image_figure( + alt="Some players fishing at the beach" + src="https://github.com/antorum.jpg" + caption="It's a good day for fishing...") }} [Antorum Online] is a micro-multiplayer online role-playing game by [@dooskington]. The game server is written in Rust, and the official client is being developed @@ -433,8 +440,10 @@ As the godot-rust community keeps growing, the project can now be found ### [Emerald] -![hotreload](emd_texture_hotreload.gif) -_Built in texture hot reloading, just call `emd.loader().hotreload()`_ +{{ image_figure( + alt="hotreload" + src="https://github.com/emd_texture_hotreload.gif" + caption="Built in texture hot reloading, just call `emd.loader().hotreload()`") }} [Emerald] by [@bombfuse][bombfuse_twi] is a 2D game engine focused on being super portable and easy-to-use. @@ -462,8 +471,10 @@ fork and PR! ### [Starframe] -![physically-connected groups of primitives are framed with rectangles](starframe-islands.jpeg) -_Grouping bodies into disjoint "islands"_ +{{ image_figure( + alt="physically-connected groups of primitives are framed with rectangles" + src="https://github.com/starframe-islands.jpeg" + caption='Grouping bodies into disjoint "islands"') }} [Starframe] by [@molentum] is a work-in-progress game engine for physics-y sidescrolling 2D games. @@ -486,9 +497,11 @@ More details to be shown soonish! ### [Arcana] -![two synchronized views on tanks players-controlled tanks shooting each other -](arcana-tanks-multiplayer.gif) -_Two clients connected to the same server_ +{{ image_figure( + alt="two synchronized views on tanks players-controlled tanks shooting each other +" + src="https://github.com/arcana-tanks-multiplayer.gif" + caption="Two clients connected to the same server") }} [Arcana] is ECS based game engine focused on simplicity and performance. @@ -515,8 +528,11 @@ out-of-the-box atm, but stability improvements are expected next month. ### [rg3d] v0.23 -[![rg3d 0.23 feature highlights video](rg3d_video.jpg)][rg3d_0_23_video] -_A feature highlights [video][rg3d_0_23_video]_ +{{ image_figure( + alt="rg3d 0.23 feature highlights video" + src="https://github.com/rg3d_video.jpg" + caption="A feature highlights [video](https://youtube.com/watch?v=3tOdwmRWLKw)", + link="https://youtube.com/watch?v=3tOdwmRWLKw") }} [rg3d] ([Discord][rg3d_discord], [Twitter][rg3d_twitter], [Patreon][rg3d_patreon]) is a game engine that aims to be easy to use and provide a large @@ -545,8 +561,10 @@ _Discussions: [/r/rust](https://reddit.com/r/rust/comments/pnhbe4/media_rg3d_023 ### [Rust RPG Toolkit][rpg_rk] -![A dialogue window](capstone.png) -_[Capstone] - a WIP game that uses Rust RPG Toolkit_ +{{ image_figure( + alt="A dialogue window" + src="https://github.com/capstone.png" + caption="[Capstone](https://www.reddit.com/r/rust_gamedev/comments/paz35s/capstone) - a WIP game that uses Rust RPG Toolkit") }} [Rust RPG Toolkit][rpg_rk] by [@olefasting] is an engine for creating highly customizable and user modable action 2D action RPG's using Rust amd JSON. @@ -625,8 +643,10 @@ It supports modifying PC saves as well as decrypted PS4 saves ### [wgpu] -![Deno with wgpu crown](deno-wgpu.png) -_deno-wgpu_ +{{ image_figure( + alt="Deno with wgpu crown" + src="https://github.com/deno-wgpu.png" + caption="deno-wgpu") }} [wgpu] is a cross-platform, safe, pure-rust graphics API that runs natively on Vulkan, Metal, D3D12, D3D11, and OpenGLES; and on top of WebGPU on wasm. @@ -760,8 +780,10 @@ ktx2 writing support will come a future release. ### [rend3][rend3-github] -![rend3 sci-fi base scene](rend3-scifi.jpg) -_rend3 rendering a complex scene_ +{{ image_figure( + alt="rend3 sci-fi base scene" + src="https://github.com/rend3-scifi.jpg" + caption="rend3 rendering a complex scene") }} rend3 is a new 3D rendering library that focuses on having an easy to user interface without sacrificing performance or customizability. @@ -798,8 +820,10 @@ the new APIs, including the new Tables API. ### [Emergent AI][emergent-git] -![Utility AI](emergent-ai.gif) -_Example of game behavior using Utility AI_ +{{ image_figure( + alt="Utility AI" + src="https://github.com/emergent-ai.gif" + caption="Example of game behavior using Utility AI") }} [Emergent AI][emergent-git] by [@PsichiX][psichix-twitter] is a new crate designed to provide modern AI solutions for games written in Rust. Its highly modularized @@ -869,8 +893,10 @@ _Discussions: ### [KAS] GUI v0.10 -![a window with many widgets and tabs](kas-demo.gif) -_Widget gallery demo_ +{{ image_figure( + alt="a window with many widgets and tabs" + src="https://github.com/kas-demo.gif" + caption="Widget gallery demo") }} [KAS] by [@dhardy] is a general-purpose retained UI toolkit. This month v0.10 was released: @@ -893,7 +919,7 @@ _Discussions: [/r/rust](https://reddit.com/r/rust/comments/pjlb92/kas_gui_v010)_ [KAS]: https://github.com/kas-gui/kas [@dhardy]: https://github.com/dhardy -## Popular Workgroup Issues in Github +## Popular Workgroup Issues in GitHub diff --git a/content/news/027/index.md b/content/news/027/index.md index a3769c6b5..cc6efb8a0 100644 --- a/content/news/027/index.md +++ b/content/news/027/index.md @@ -107,8 +107,10 @@ Early Access release on Steam is expected in mid 2022. ### [The Process] -![An animated gif showing an engineer shooting rockets](the_process.gif) -_Firing Carrockets™!_ +{{ image_figure( + alt="An animated gif showing an engineer shooting rockets" + src="https://github.com/the_process.gif" + caption="Firing Carrockets™!") }} [The Process] by @setzer22 is an upcoming game about factory building, process management, and carrot production, built with Rust using the Godot game engine! @@ -172,8 +174,10 @@ is available [here][chaos-theory-src] and ### [Me And My Unicycle] -![Me And My Unicycle screenshot](me_and_my_unicycle_cover.png) -_Can you handle this unstable ride?_ +{{ image_figure( + alt="Me And My Unicycle screenshot" + src="https://github.com/me_and_my_unicycle_cover.png" + caption="Can you handle this unstable ride?") }} [Me And My Unicycle] is a 2D physics game by [@nikl_me] submitted to Ludum Dare 49. It is build with [Bevy] and [the code can be found on GitHub][mamu-source]. @@ -273,8 +277,10 @@ The developer have also written a blog post: ### [Graph Game] -![image/gameplay of the game: circle and triangles](graph_game.gif) -_Navigating the graph map can be stressful_ +{{ image_figure( + alt="image/gameplay of the game: circle and triangles" + src="https://github.com/graph_game.gif" + caption="Navigating the graph map can be stressful") }} [Graph Game] ([GitHub][graph-game-github]) uses [Bevy](https://bevyengine.org/) as its engine. You can play it from your @@ -323,8 +329,10 @@ You can stay up to date on the latest developments of Way of Rhea by ### [PaddlePunks][paddlepunks-itch] -![Animated gameplay that looks like pong mixed with an anime fighting game](paddlepunks-gameplay.gif) -_A round between a player and the AI set to Hard_ +{{ image_figure( + alt="Animated gameplay that looks like pong mixed with an anime fighting game" + src="https://github.com/paddlepunks-gameplay.gif" + caption="A round between a player and the AI set to Hard") }} PaddlePunks is a versus tennis game by [Felix Windström][paddlepunks-twitter] with a diverse cast of characters and playstyles and online play with rollback @@ -342,8 +350,10 @@ players. Updates are also posted to [Twitter][paddlepunks-twitter]. ### [Veloren][veloren] -![An early-morning sunrise](veloren.jpg) -_An early-morning sunrise_ +{{ image_figure( + alt="An early-morning sunrise" + src="https://github.com/veloren.jpg" + caption="An early-morning sunrise") }} [Veloren][veloren] is an open world, open-source voxel RPG inspired by Dwarf Fortress and Cube World. @@ -441,8 +451,11 @@ For more details, see the [changelog][tetra-changelog]. ### [GameDev Mini Symposium][gms-talk] -[![An early-morning sunrise](gms-talk.png)][gms-talk] -_Click the image to watch the talk_ +{{ image_figure( + alt="An early-morning sunrise" + src="https://github.com/gms-talk.png" + caption="Click the image to watch the talk", + link="https://www.youtube.com/watch?v=OzUsPi4kHes") }} Back in September, the University of Glasgow's GameLab held a 'GameDev Mini Symposium' online. One of the featured speakers was @@ -487,8 +500,10 @@ or [GitHub][spv]. ### [wgpu]-0.11 release -![bevy webgl2 via wgpu](bevy-webgl2.png) -_experimental Bevy branch running on WebGL2 via wgpu_ +{{ image_figure( + alt="bevy webgl2 via wgpu" + src="https://github.com/bevy-webgl2.png" + caption="experimental Bevy branch running on WebGL2 via wgpu") }} The team is happy to announce the release of wgpu-0.11 and naga-0.7. Details can be found on the [gfx-rs blog]. The most exciting feature @@ -506,8 +521,10 @@ and the history of processing shaders with Rust. ### [rend3]-0.2 Release -![rend3-scifi](rend3-scifi.jpg) -_Improved shadows and rendering with rend3 0.2_ +{{ image_figure( + alt="rend3-scifi" + src="https://github.com/rend3-scifi.jpg" + caption="Improved shadows and rendering with rend3 0.2") }} rend3 is a 3D rendering library that focuses on having an easy to use interface without sacrificing performance or customizability. diff --git a/content/news/028/index.md b/content/news/028/index.md index 425ede7a6..f7ad574d6 100644 --- a/content/news/028/index.md +++ b/content/news/028/index.md @@ -79,8 +79,10 @@ working on at the next meetup on [December 11th][rust-meetup-dec-time], fill out ### Flesh -![flesh preview](flesh.gif) -_The melee weapon in action_ +{{ image_figure( + alt="flesh preview" + src="https://github.com/flesh.gif" + caption="The melee weapon in action") }} [Flesh] by [@im_oab] is a 2D-horizontal shmup game with hand-drawn animation and an organic/fleshy theme. It is implemented using [Tetra]. This month's updates @@ -95,8 +97,10 @@ include: ### [One-Click Ninja] -![Screenshot of One-Click Ninja](one-click-ninja.png) -_Screenshot of One-Click Ninja_ +{{ image_figure( + alt="Screenshot of One-Click Ninja" + src="https://github.com/one-click-ninja.png" + caption="Screenshot of One-Click Ninja") }} One-Click Ninja is a rhythm game made in 10 days for [1-Button Jam 2021], written in Rust using the [Bevy] engine. @@ -148,8 +152,10 @@ tunnel full of spiders and other enemies! They also worked on a ### [Halloween Mahjong Solitaire][mahjong-github] -![Halloween Mahjong Solitaire screenshot](mahjong-screenshot.png) -_Screenshot of Halloween Mahjong Solitaire_ +{{ image_figure( + alt="Halloween Mahjong Solitaire screenshot" + src="https://github.com/mahjong-screenshot.png" + caption="Screenshot of Halloween Mahjong Solitaire") }} Halloween Mahjong Solitaire ([GitHub][mahjong-github]) by [@Syn-Nine][synnine-twitter] is a game created for the [Game Developers @@ -193,8 +199,10 @@ You can follow the development of Country Slice on ### [Veloren][veloren] -![Travelling merchant](veloren.jpg) -_A merchant paused in their travels_ +{{ image_figure( + alt="Travelling merchant" + src="https://github.com/veloren.jpg" + caption="A merchant paused in their travels") }} [Veloren][veloren] is an open world, open-source voxel RPG inspired by Dwarf Fortress and Cube World. @@ -234,8 +242,11 @@ November's full weekly devlogs: "This Week In Veloren...": ### [BENDYWORM] -![An animation of a platformer where the entire world bends around -you](bendyworm.gif) _Watch out! The entire world bends around you!_ +{{ image_figure( + alt="An animation of a platformer where the entire world bends around +you" + src="https://github.com/bendyworm.gif" + caption="Watch out! The entire world bends around you!") }} BENDYWORM ([GitHub][BENDYWORM-github], [Twitter][BENDYWORM-twitter]) by [@bauxitedev][BENDYWORM-bauxitedev] is a platformer with a twist: the entire @@ -347,10 +358,13 @@ _Discussions: ### [PaddlePunks][paddlepunks-itch] -![Pong, but one of the characters rewinds time to figure out which of the other -player's ballusions is actually real](paddlepunks-rewind.gif) _One of the -characters can spend super meter to rewind time, this is strong but pretty -situational._ +{{ image_figure( + alt="Pong, but one of the characters rewinds time to figure out which of the other + player's ballusions is actually real" + src="https://github.com/paddlepunks-rewind.gif" + caption="One of the + characters can spend super meter to rewind time, this is strong but pretty + situational.") }} PaddlePunks is a versus tennis game by [Felix Windström][paddlepunks-twitter] with a diverse cast of characters and playstyles and online play with rollback @@ -524,8 +538,10 @@ to write compute shaders in a "real language". ### [Rust Roguelike Tutorial][rl-tut] -![ascii map and ui](rl-tut.jpg) -_A nasty demon monster at the exit to Abyss_ +{{ image_figure( + alt="ascii map and ui" + src="https://github.com/rl-tut.jpg" + caption="A nasty demon monster at the exit to Abyss") }} [The Roguelike Tutorial][rl-tut] by [@herberticus] got a [new 75th (!) chapter][rl-tut-new] that shows how to generate a chaotic Voronoi-based city @@ -543,8 +559,10 @@ portal. ### [Hands-on Rust][hor] -![A screenshot of a game in a browser](hor-bonus.jpg) -_A Dungeon Crawler running in a browser_ +{{ image_figure( + alt="A screenshot of a game in a browser" + src="https://github.com/hor-bonus.jpg" + caption="A Dungeon Crawler running in a browser") }} Another update from [@herberticus] is a bonus article for the [Hands-on Rust][hor] book: ["Run Your Rust Games in a Browser"][hor-bonus] that guides the @@ -636,8 +654,11 @@ Discord][graphite-discord] and get involved! ### [Solid Editor][solid] -[![youtube preview: modelling tree's branches using ball as a cursor](solid-editor.jpg)][solid-video] -_A [demo video][solid-video] of using the editor_ +{{ image_figure( + alt="youtube preview: modelling tree's branches using ball as a cursor" + src="https://github.com/solid-editor.jpg" + caption="A [demo video][solid-video] of using the editor", + link="https://youtube.com/watch?v=GuVM3W9Pfdg") }} [Solid Editor][solid] is [Solid Engine][solid-engine]'s custom-built voxel graphics editor. It is designed to be a key part of the engine's asset pipeline, diff --git a/content/news/029/index.md b/content/news/029/index.md index a7d72a992..23e9dd691 100644 --- a/content/news/029/index.md +++ b/content/news/029/index.md @@ -80,8 +80,10 @@ Twitch][rust-gamedev-twitch]. ### [Tet-Rust][tetrust-github] -![Tet-Rust screenshot](tet-rust-1-sm.gif) -_Screenshot of Tet-Rust_ +{{ image_figure( + alt="Tet-Rust screenshot" + src="https://github.com/tet-rust-1-sm.gif" + caption="Screenshot of Tet-Rust") }} Tet-Rust ([GitHub][tetrust-github]) by [@Syn-Nine][synnine-twitter] is a mini game based on the famous falling puzzle @@ -98,8 +100,10 @@ that use this framework. ### The Beast of Monte Carlo -![The Beast of Monte Carlo Screenshot](bomc-shots.png) -_Screenshot of The Beast of Monte Carlo_ +{{ image_figure( + alt="The Beast of Monte Carlo Screenshot" + src="https://github.com/bomc-shots.png" + caption="Screenshot of The Beast of Monte Carlo") }} The Beast of Monte Carlo by [@Syn-Nine][synnine-twitter] is a mini role-playing game in development to help work out new features for Syn9's @@ -163,8 +167,10 @@ it gives us a glimpse into 3 different bioms, bosses, enemies and more. ### [Veloren][veloren] -![Winter in a town](veloren.jpg) -_A peaceful winter night_ +{{ image_figure( + alt="Winter in a town" + src="https://github.com/veloren.jpg" + caption="A peaceful winter night") }} [Veloren][veloren] is an open world, open-source voxel RPG inspired by Dwarf Fortress and Cube World. @@ -342,8 +348,10 @@ Main highlights of the latest [@dooskington's devlog][antorum-post]: ### [Rusty Engine 3.0] -![An example Rusty Engine game](rusty_engine3.png) -_The "Road Race" game prototype running under Rusty Engine 3.0_ +{{ image_figure( + alt="An example Rusty Engine game" + src="https://github.com/rusty_engine3.png" + caption="The "Road Race" game prototype running under Rusty Engine 3.0") }} [Rusty Engine] by [Nathan Stocks] is a game engine built on top of Bevy for people who are learning Rust. @@ -553,8 +561,10 @@ use of assets_manager with ggez engine! ### [wgpu]-0.12 release -![albedo pathtracer](wgpu-pathtracer.png) -_experimental pathtracer on wgpu from @llamajestic_ +{{ image_figure( + alt="albedo pathtracer" + src="https://github.com/wgpu-pathtracer.png" + caption="experimental pathtracer on wgpu from @llamajestic") }} The team concluded 2021 with the release of wgpu-0.12 and naga-0.8. Details can be found on the [gfx-rs blog] and [wgpu reddit discussion]. diff --git a/content/news/030/index.md b/content/news/030/index.md index 3501900e4..653eefaa5 100644 --- a/content/news/030/index.md +++ b/content/news/030/index.md @@ -83,8 +83,10 @@ Twitch][rust-gamedev-twitch]. ### Flesh -![flesh preview](flesh.gif) -_the second level's background + new enemy_ +{{ image_figure( + alt="flesh preview" + src="https://github.com/flesh.gif" + caption="the second level's background + new enemy") }} [Flesh] by [@im_oab] is a 2D-horizontal shmup game with hand-drawn animation and an organic/fleshy theme. It is implemented using [Tetra]. This month's updates @@ -99,8 +101,10 @@ include: ### [Rusty Vangers] -![Rust engine powering original game](vangers-integrated.jpg) -_Rusty Vangers engine in action within the original game_ +{{ image_figure( + alt="Rust engine powering original game" + src="https://github.com/vangers-integrated.jpg" + caption="Rusty Vangers engine in action within the original game") }} [Rusty Vangers] by [@kvark] is a modern re-implementation of the original [Vangers] game from the last century. @@ -158,8 +162,10 @@ or joining [their Discord][wor-discord]. ### [Garden of the Centaur][centaur-github] -![Garden of the Centaur screenshot](centaur-screenshot.png) -_Screenshot of Garden of the Centaur_ +{{ image_figure( + alt="Garden of the Centaur screenshot" + src="https://github.com/centaur-screenshot.png" + caption="Screenshot of Garden of the Centaur") }} Garden of the Centaur ([GitHub][centaur-github]) by [@Syn-Nine][synnine-twitter] is an action-puzzle mini game where you navigate a @@ -197,8 +203,10 @@ The latest version includes: ### [Veloren][veloren] -![Bright lantern](veloren.jpg) -_A light to keep the night away_ +{{ image_figure( + alt="Bright lantern" + src="https://github.com/veloren.jpg" + caption="A light to keep the night away") }} [Veloren][veloren] is an open world, open-source voxel RPG inspired by Dwarf Fortress and Cube World. @@ -392,8 +400,10 @@ a sizable list! ([#845][gd-845]) ### [Rusty Engine 4.0] -![An example Rusty Engine game](rusty_engine4.png) -_The updated collider visualization (white outlines) in Rusty Engine 4.0_ +{{ image_figure( + alt="An example Rusty Engine game" + src="https://github.com/rusty_engine4.png" + caption="The updated collider visualization (white outlines) in Rusty Engine 4.0") }} [Rusty Engine] by [Nathan Stocks] is a game engine built on top of Bevy for people who are learning Rust. @@ -416,8 +426,10 @@ _Discussions: ### [Bevy v0.6][bevy-blog] -![bevy bistro night](bevy_bistro_night.jpg) -_The Lumberyard Bistro scene rendered in the new Bevy Renderer._ +{{ image_figure( + alt="bevy bistro night" + src="https://github.com/bevy_bistro_night.jpg" + caption="The Lumberyard Bistro scene rendered in the new Bevy Renderer.") }} [Bevy][bevy] is a refreshingly simple data-driven game engine built in Rust. It is [free and open source][bevy-git] forever! @@ -457,8 +469,10 @@ _Discussions: ### [`three-d` 0.10][three-d] -![three-d example of environment lighting](three-d.jpg) -_Environment lighting example_ +{{ image_figure( + alt="three-d example of environment lighting" + src="https://github.com/three-d.jpg" + caption="Environment lighting example") }} [`three-d`][three-d] is a 2D/3D renderer targeting both desktop and web @@ -544,7 +558,7 @@ You can read it [here][rflb-post]. [![AH scanner workflow](ah-scanner.png)][trimoq-post] -Trimoq ([Github][trimoq-github], [Twitter][trimoq-twitter]) wrote [a blog +Trimoq ([GitHub][trimoq-github], [Twitter][trimoq-twitter]) wrote [a blog post][trimoq-post] about writing a game client for a popular MMORPG. It focuses on some negative parts of Rust and its ecosystem. There are three key takeaways from this post: @@ -680,8 +694,11 @@ and handles chords! ### [rafx] -[![Rafx Screenshot](rafx-screenshot.jpg)][rafx-youtube-video] -_Sci-fi base demo scene, [watch TAA demo on youtube][rafx-youtube-video]!_ +{{ image_figure( + alt="Rafx Screenshot" + src="https://github.com/rafx-screenshot.jpg" + caption="Sci-fi base demo scene, [watch TAA demo on youtube](https://www.youtube.com/watch?v=iWYpX7RGUSA)!", + link="https://www.youtube.com/watch?v=iWYpX7RGUSA") }} [Rafx][rafx] is a multi-backend renderer that optionally integrates with the [distill][rafx-distill] asset pipeline. @@ -790,8 +807,10 @@ _Discussions: ### [Bevy Smud][bevy-smud] -![Bevy Smud screenshot](bevy-smud.png) -_A bevy drawn with Bevy Smud_ +{{ image_figure( + alt="Bevy Smud screenshot" + src="https://github.com/bevy-smud.png" + caption="A bevy drawn with Bevy Smud") }} [Bevy Smud][bevy-smud] is a new [Bevy][bevy-smud-bevy] plugin for drawing 2D shapes using signed distance fields. diff --git a/content/news/031/index.md b/content/news/031/index.md index b2e279d8a..02eb8744d 100644 --- a/content/news/031/index.md +++ b/content/news/031/index.md @@ -105,7 +105,7 @@ Twitch][rust-gamedev-twitch]. The Rust Gamedev Working Group is working on a showcase of games made in Rust! If you're interested in submitting your own footage, fill out [this form][showcase-form]. You can also read more about the process of creating the -showcase in the [showcase discussion on Github][showcase-discussion]. The +showcase in the [showcase discussion on GitHub][showcase-discussion]. The deadline for submissions has been extended until the 19th of March 2022. Hope to see your game in there! @@ -116,10 +116,11 @@ see your game in there! ### [Name Needed][name-needed] -![The player orders a selection of blocks to be broken, and a brick wall to be -built.](name-needed.gif) -_The player orders a selection of blocks to be broken, and a brick wall to be -built._ +{{ image_figure( + alt="The player orders a selection of blocks to be broken, and a brick wall to be built." + src="https://github.com/name-needed.gif" + caption="The player orders a selection of blocks to be broken, and a brick wall to be built.") }} + [Name Needed][name-needed] by [@DomWilliams0][domwilliams-github] is a one-man effort to produce an open source, intuitive, and high-performance Dwarf @@ -141,8 +142,10 @@ superb `async`/`await` support, which is documented in the most recent devlog. ### [This is Fine Sokoban][sokoban-github] -![This is Fine Sokoban screenshot](sokoban_screenshot.gif) -_Screenshot of This is Fine Sokoban_ +{{ image_figure( + alt="This is Fine Sokoban screenshot" + src="https://github.com/sokoban_screenshot.gif" + caption="Screenshot of This is Fine Sokoban") }} This is Fine Sokoban ([GitHub][sokoban-github]) by [@Syn-Nine][synnine-twitter] is a Sokoban game inspired by the This is Fine @@ -236,8 +239,10 @@ check out its gameplay on [youtube][youtube-molecoole], or on the Steam page. ### [Veloren][veloren] -![Gnarling looking out over a fort](veloren.jpg) -_Looking out over the Gnarling fort_ +{{ image_figure( + alt="Gnarling looking out over a fort" + src="https://github.com/veloren.jpg" + caption="Looking out over the Gnarling fort") }} [Veloren][veloren] is an open world, open-source voxel RPG inspired by Dwarf Fortress and Cube World. @@ -284,7 +289,7 @@ February's full weekly devlogs: "This Week In Veloren...": [![dims screenshot](dims.jpg)][DIMS-first-look] -@jfnoren ([Twitter][@jfnoren-twitter], [Github][@jfnoren-github]) posted a +@jfnoren ([Twitter][@jfnoren-twitter], [GitHub][@jfnoren-github]) posted a [video][DIMS-first-look] about a first look into their engine, DIMS. DIMS allows you to create open worlds, script gameplay, and mess around with physics. DIMS has been in the works for several months, but you can now sign up for early @@ -303,8 +308,10 @@ _Discussions: [Reddit][DIMS-reddit-discussion], [Twitter][DIMS-twitter-discussio ### [Bevy Minesweeper] -![screenshot](bevy_minesweeper.png) -_Demo Screenshot_ +{{ image_figure( + alt="screenshot" + src="https://github.com/bevy_minesweeper.png" + caption="Demo Screenshot") }} [@ManevilleF] published a 12 step [course][Bevy Minesweeper] on how to make a simple 2D Minesweeper using [bevy][bevy] 0.6. @@ -345,7 +352,7 @@ process: ### [Actor Pattern with Async Rust] -@Sorokya ([Twitter][sorokya-twitter], [Github][sorokya-github]) [published a blog +@Sorokya ([Twitter][sorokya-twitter], [GitHub][sorokya-github]) [published a blog post][Actor Pattern with Async Rust] about how they improved their game server by switching over to an actor pattern approach. This method allowed the server to be refactored to be more modular and cleaner. @@ -356,8 +363,10 @@ to be refactored to be more modular and cleaner. ### [Godot-Rust to Android without Android Studio][godot-rust-to-android] -![working godot-rust on an android phone](godot-rust-android-via-windows.jpg) -_Proof of concept Godot app running on Android_ +{{ image_figure( + alt="working godot-rust on an android phone" + src="https://github.com/godot-rust-android-via-windows.jpg" + caption="Proof of concept Godot app running on Android") }} [@coffeecodechem] published a [blog post][godot-rust-to-android] on how to export godot-rust as an Android APK on Windows without using Android Studio. It diff --git a/content/news/032/index.md b/content/news/032/index.md index 41a86aef9..8c9396c8e 100644 --- a/content/news/032/index.md +++ b/content/news/032/index.md @@ -164,7 +164,7 @@ Mechaburro, giving them an unfair advantage. A postmortem devlog detailing the process of making the game during the jam can be found [here][mechaburro-postmortem], a trailer for the game is [viewable on YouTube][mechaburro-youtube] and the source code for the game -is available [on Github][mechaburro-github]. +is available [on GitHub][mechaburro-github]. [mechaburro-itchio]: https://ramirezmike2.itch.io/quien-es-el-mechaburro [mechaburro-github]: https://github.com/ramirezmike/quien_es_el_mechaburro @@ -201,7 +201,7 @@ and added great code documentation (including a flow diagram demonstrating the game state changes). The game code is licensed under MIT or Apache-2 and is [available on -Github][warlocks-gambit-github]. +GitHub][warlocks-gambit-github]. [warlocks-gambit-itchio]: https://gibonus.itch.io/warlocks-gambit [warlocks-gambit-github]: https://github.com/team-plover/warlocks-gambit @@ -225,8 +225,10 @@ The source for this game is available on [GitHub][cnw-source]. ### [V-Racer][vracer-github] -![VRacer screenshot](vracer_screenshot.gif) -_Screenshot of V-Racer_ +{{ image_figure( + alt="VRacer screenshot" + src="https://github.com/vracer_screenshot.gif" + caption="Screenshot of V-Racer") }} V-Racer ([GitHub][vracer-github]) by [@Syn-Nine][synnine-twitter] is a retro @@ -266,8 +268,10 @@ in the new [Spring Fever expansion][spring-fever]! ### [Veloren][veloren] -![Veloren on the Steam Deck](veloren-steamdeck.jpg) -_Veloren on the Steam Deck!_ +{{ image_figure( + alt="Veloren on the Steam Deck" + src="https://github.com/veloren-steamdeck.jpg" + caption="Veloren on the Steam Deck!") }} [Veloren][veloren] is an open world, open-source voxel RPG inspired by Dwarf Fortress and Cube World. @@ -275,9 +279,9 @@ Fortress and Cube World. In March, Veloren was tested on the SteamDeck, which you can read about in detail in [the weekly devblog][veloren-steamdeck-section]. Lots of work was done with Airshipper, Veloren's launcher, including some bug fixes, but mainly the -switch to Github Releases as the download backend. This will make game updates +switch to GitHub Releases as the download backend. This will make game updates significantly faster and more reliable for players. Work is also being done to -make use of Github's HTTP range requests to do partial patches where possible. +make use of GitHub's HTTP range requests to do partial patches where possible. Audio work was done to improve swimming sounds playing unevenly, and more sounds to gliding. @@ -446,7 +450,7 @@ Tetra, as [the developer has decided to move onto other projects][tetra-retro]. ![Bevy video series title](bevy-video-series.jpg) Matthew Bryant ([Youtube][matthew-bryant-youtube], -[Github][matthew-bryant-github]) has been working on a video series on using +[GitHub][matthew-bryant-github]) has been working on a video series on using Bevy to create a Pokemon-style RPG, and just released four episodes. The goal is to show and explain all the core features of Bevy while creating a real game over ten 10-15 minute videos, currently releasing once per week. There is also diff --git a/content/news/033/index.md b/content/news/033/index.md index b42745b30..8beb70774 100644 --- a/content/news/033/index.md +++ b/content/news/033/index.md @@ -149,8 +149,10 @@ joining [their Discord][wor-discord]. ### BITGUN -![BITGUN gameplay](bitgun-release-optimized.gif) -_BITGUN gameplay_ +{{ image_figure( + alt="BITGUN gameplay" + src="https://github.com/bitgun-release-optimized.gif" + caption="BITGUN gameplay") }} [BITGUN] ([Discord], [Twitter]) by [@darth] and [@shosanna] is an action roguelite zombie shooter with difficult and satisfying combat you can learn and @@ -181,8 +183,10 @@ _Discussion: [/r/rust](https://www.reddit.com/r/rust/comments/uepde7/after_worki ### [Veloren][veloren] -![Riding at night](veloren.jpg) -_Out for a ride at night_ +{{ image_figure( + alt="Riding at night" + src="https://github.com/veloren.jpg" + caption="Out for a ride at night") }} [Veloren][veloren] is an open world, open-source voxel RPG inspired by Dwarf Fortress and Cube World. @@ -278,8 +282,10 @@ _Discussions: [/r/rust_gamedev][ees-reddit]_ ### [Bevy v0.7][bevy-blog] -![bevy mushroom](bevy_mushroom.jpg) -_Creative Commons 'Stylized mushrooms' scene by QumoDone rendered in Bevy._ +{{ image_figure( + alt="bevy mushroom" + src="https://github.com/bevy_mushroom.jpg" + caption="Creative Commons 'Stylized mushrooms' scene by QumoDone rendered in Bevy.") }} [Bevy][bevy] is a refreshingly simple data-driven game engine built in Rust. It is [free and open source][bevy-git] forever! @@ -331,8 +337,10 @@ _Discussions: ### Dims -![dims foliage](dims.jpg) -_Foliage rendering in Dims_ +{{ image_figure( + alt="dims foliage" + src="https://github.com/dims.jpg" + caption="Foliage rendering in Dims") }} Dims is an open-world creation platform. @@ -359,8 +367,10 @@ _Discussions: ### [Eldiron] -![Eldiron Image](eldiron_screen.png) -_Behavior Nodes of Eldiron_ +{{ image_figure( + alt="Eldiron Image" + src="https://github.com/eldiron_screen.png" + caption="Behavior Nodes of Eldiron") }} [Eldiron] ([GitHub][eldiron-github], [Discord][eldiron-discord], [Twitter][eldiron-twitter]) by [@markusmoenig] is a creator for classic role @@ -390,9 +400,10 @@ the classical Ultima series. ### [Hotham][hotham] -![Hotham Image](hotham.png) -_Screenshot from The Station, an upcoming space station simulation game, built -with Hotham_ +{{ image_figure( + alt="Hotham Image" + src="https://github.com/hotham.png" + caption="Screenshot from The Station, an upcoming space station simulation game, built with Hotham") }} [Hotham][hotham] is a game engine for standalone VR devices, trying to make VR development just a little bit less painful. @@ -452,7 +463,7 @@ _Discussions: [r/rust_gamedev][why-article]_ ![devlog logo](brontefy-me.jpg) -@hedgein ([Github][hedgein-github], [Twitch][hedgein-twitch]) started a devlog +@hedgein ([GitHub][hedgein-github], [Twitch][hedgein-twitch]) started a devlog series called Brontefy Me. This series walks through the development of games in the [Bevy engine][bevy]. There are two episodes released so far. The [first episode][brontefy-me-episode-1] focuses on getting up and running with the diff --git a/content/news/034/index.md b/content/news/034/index.md index 66127c8af..4a8bfbc5c 100644 --- a/content/news/034/index.md +++ b/content/news/034/index.md @@ -38,7 +38,7 @@ Feel free to send PRs about your own projects! - [Tooling Updates](#tooling-updates) - [Library Updates](#library-updates) - [Other News](#other-news) -- [Popular Workgroup Issues in Github](#popular-workgroup-issues-in-github) +- [Popular Workgroup Issues in GitHub](#popular-workgroup-issues-in-github) - [Discussions](#discussions) - [Requests for Contribution](#requests-for-contribution) - [Jobs](#jobs) @@ -127,7 +127,7 @@ provide a more detailed look: [Ferris dancing][raymarch-twitter-dance]. Once the model is finished, it will be published under a permissive license on -[Github][raymarch-github], so you can use it in your 3D game, +[GitHub][raymarch-github], so you can use it in your 3D game, rendering demo, v-tuber avatar, you name it! If you have any feedback feel free to share on [Discord][raymarch-gamedev-discord]. @@ -290,8 +290,10 @@ is over, you can still find the ### [Veloren][veloren] -![Flying down a mountain](veloren.jpg) -_A glorious flight to distant lands_ +{{ image_figure( + alt="Flying down a mountain" + src="https://github.com/veloren.jpg" + caption="A glorious flight to distant lands") }} [Veloren][veloren] is an open world, open-source voxel RPG inspired by Dwarf Fortress and Cube World. @@ -347,8 +349,11 @@ The source code of the game is [available on GitHub][hug-src]. ### [Combine&Conquer][cnc-logs] -[![Preview: a factory](cnc-preview.png)][cnc-video] -_[Connect factories on different planets via spaceships][cnc-video]_ +{{ image_figure( + alt="Preview: a factory" + src="https://github.com/cnc-preview.png" + caption="[Connect factories on different planets via spaceships](https://reddit.com/r/IndieDev/comments/uxcc7v/connect_different_planets)", + link="https://reddit.com/r/IndieDev/comments/uxcc7v/connect_different_planets") }} [Combine&Conquer][cnc-itch] by [Martin Buck][@I3ck] is a WIP strategy game about automation similar to Satisfactory or Factorio. @@ -825,7 +830,7 @@ that showcases bevy-pigeon and carrier-pigeon. [pigeon-bong]: https://github.com/MitchellMarinoDev/bong [@MitchellMarinoDev]: https://github.com/MitchellMarinoDev -## Popular Workgroup Issues in Github +## Popular Workgroup Issues in GitHub diff --git a/content/news/035/index.md b/content/news/035/index.md index 520593002..e912e5e85 100644 --- a/content/news/035/index.md +++ b/content/news/035/index.md @@ -123,8 +123,10 @@ form][gamedev-meetup-form]. ### [Rusty Jam 2][rusty-jam-ann] -![Aaron: a drawing of a humanoid fox](aaron.png) -_Aaron, [the mascot of the jam][rusty-jam-ann]_ +{{ image_figure( + alt="Aaron: a drawing of a humanoid fox" + src="https://github.com/aaron.png" + caption="Aaron, [the mascot of the jam](https://gamedev.rs/blog/rustyjam-02)") }} The [second Rusty Jam][rusty-jam-ann] just ended! [17 games][rusty-jam-entries] were completed and submitted @@ -252,8 +254,10 @@ announced in this newsletter. ### vetovoima -![vetovoima gravity manipulation GIF](vetovoima.gif) -_vetovoima gravity manipulation_ +{{ image_figure( + alt="vetovoima gravity manipulation GIF" + src="https://github.com/vetovoima.gif" + caption="vetovoima gravity manipulation") }} [vetovoima][vetovoima_itch] by [@MatiasKlemola][vetovoima_twitter] is an arcade game where you control gravity! @@ -329,8 +333,10 @@ network games. ### [Veloren][veloren] -![Gliding above a forest](veloren.jpg) -_A glider ride above the woods at night_ +{{ image_figure( + alt="Gliding above a forest" + src="https://github.com/veloren.jpg" + caption="A glider ride above the woods at night") }} [Veloren][veloren] is an open world, open-source voxel RPG inspired by Dwarf Fortress and Cube World. diff --git a/content/news/036/index.md b/content/news/036/index.md index c3b587173..b547b200a 100644 --- a/content/news/036/index.md +++ b/content/news/036/index.md @@ -205,8 +205,10 @@ Other recent updates: ### Flesh -![flesh preview](flesh.gif) -_3rd area_ +{{ image_figure( + alt="flesh preview" + src="https://github.com/flesh.gif" + caption="3rd area") }} [Flesh] by [@im_oab] is a 2D-horizontal shmup game with hand-drawn animation and an organic/fleshy theme. It is implemented using [Tetra]. This month's updates @@ -225,9 +227,10 @@ include: ### [CyberGate][cybergate-yt] -![hundreds of colliding colored balls in the air](cybergate.jpg) -_The server and clients are able to smoothly handle -over a thousand balls rained from above_ +{{ image_figure( + alt="hundreds of colliding colored balls in the air" + src="https://github.com/cybergate.jpg" + caption="The server and clients are able to smoothly handle over a thousand balls rained from above") }} CyberGate ([YouTube][cybergate-yt], [Discord][cybergate-dis]) by CyberSoul is a new multiplayer project that aims at procedurally generating distinct @@ -268,7 +271,7 @@ and increasing the total number of bots you can control. Bots can also use antennas to store resources. Interested in contributing? Head over to the -[Github discussion page][botnet_ideas] and suggest some ideas! +[GitHub discussion page][botnet_ideas] and suggest some ideas! [Botnet]: https://github.com/JMS55/botnet [botnet_ideas]: https://github.com/JMS55/botnet/discussions/categories/ideas @@ -312,8 +315,10 @@ platform/country/OS, player feedback, reviews & game updates. ### [Simon Arcade] -![Simon arcade gameplay with arrows and buttons in different colors](simon.gif) -_a Simon Arcade gameplay with cheats enabled_ +{{ image_figure( + alt="Simon arcade gameplay with arrows and buttons in different colors" + src="https://github.com/simon.gif" + caption="a Simon Arcade gameplay with cheats enabled") }} Based on [Simon (Original)], made with [Bevy], the goal of this game is to push buttons in the correct order, @@ -330,8 +335,10 @@ and was showcased at [RustConf Portland] on August 5th 2022. ### [Veloren][veloren] -![Gliding above a forest](veloren.jpg) -_New cave systems to explore_ +{{ image_figure( + alt="Gliding above a forest" + src="https://github.com/veloren.jpg" + caption="New cave systems to explore") }} [Veloren][veloren] is an open world, open-source voxel RPG inspired by Dwarf Fortress and Cube World. @@ -364,8 +371,10 @@ July's full weekly devlogs: "This Week In Veloren...": ### [Agma] -![an animated black-colored character runs around and attacks anoter one](agma.gif) -_Moving around_ +{{ image_figure( + alt="an animated black-colored character runs around and attacks anoter one" + src="https://github.com/agma.gif" + caption="Moving around") }} [Agma] by [@TuckerBMorgan] is a 3D game built in the [Storm Engine] that is based on games like Lost Ark and Diablo. The author has been writing about their experience @@ -380,8 +389,10 @@ and a custom-skinned mesh renderer to maximize what the author could learn. ### [Combine&Conquer][cnc-logs] -![zoomin gout from individual tiles to the whole space system](cnc.gif) -_Seamless transition between planet and space views_ +{{ image_figure( + alt="zoomin gout from individual tiles to the whole space system" + src="https://github.com/cnc.gif" + caption="Seamless transition between planet and space views") }} [Combine&Conquer][cnc-itch] by [Martin Buck][@I3ck] is a WIP strategy game about automation similar to Satisfactory or Factorio. @@ -423,9 +434,10 @@ coding game "Life Code": ### [Bevy v0.8][bevy-blog] -![bevy terrain](bevy_terrain.jpg) -_Bevy-shaped mountains in a Bevy-based Witcher 3 terrain texturing tool built by -rmemr_ +{{ image_figure( + alt="bevy terrain" + src="https://github.com/bevy_terrain.jpg" + caption="Bevy-shaped mountains in a Bevy-based Witcher 3 terrain texturing tool built by rmemr") }} [Bevy][bevy] is a refreshingly simple data-driven game engine built in Rust. It is [free and open source][bevy-git] forever! @@ -538,10 +550,12 @@ Nevertheless, several improvements have been integrated to godot-rust since ### [Gamercade] -![Gamercade preview](gamercade.gif) -_WASM 3d CPU Rendering On a 2d Fantasy Console?_ +{{ image_figure( + alt="Gamercade preview" + src="https://github.com/gamercade.gif" + caption="WASM 3d CPU Rendering On a 2d Fantasy Console?") }} -[Gamercade] ([Discord][Gamercade-Discord], [Github][Gamercade-Github]) +[Gamercade] ([Discord][Gamercade-Discord], [GitHub][Gamercade-GitHub]) by @RobDavenport is a WASM-powered fantasy console focused on building multiplayer neo-retro games. @@ -562,7 +576,7 @@ palettes with up to 64 colors each. The community around the project is small, but is looking to expand. Come on over to the [subreddit][Gamercade-Subreddit], or hang out and chat on [Discord][Gamercade-Discord], where the developers interact with members -and post updates daily. The project is newly [open source][Gamercade-Github] +and post updates daily. The project is newly [open source][Gamercade-GitHub] and looking for contributors, suggestions, as well as awesome game demos. _Discussions: @@ -573,14 +587,16 @@ _Discussions: [Gamercade-Console]: https://github.com/gamercade-io/gamercade_console [Gamercade-Editor]: https://github.com/gamercade-io/gamercade_editor [Gamercade-Discord]: https://discord.gg/Qafv2Fpt5j -[Gamercade-Github]: https://github.com/gamercade-io +[Gamercade-GitHub]: https://github.com/gamercade-io ## Learning Material Updates ### [Sand Fall With Compute Shaders in Rust][sandfall-tutorial] -![sandfall_8k](draw_sand.gif) -_Drawing Sand_ +{{ image_figure( + alt="sandfall_8k" + src="https://github.com/draw_sand.gif" + caption="Drawing Sand") }} [@hakolao] published a [tutorial][sandfall-tutorial] about creating [cellular automata][wiki-cgol] sand fall simulations with compute shaders. @@ -618,8 +634,11 @@ crate to do breadth-first, Dijkstra's, and A* search. It links to the ### [Creating Mountains From Planes with Vertex Shaders and Bevy][chrisbiscardi-vid1] -[![vertex shaders example](creating-mountains-from-planes-with-vertex-shaders-and-bevy.png)][chrisbiscardi-vid1] -_Creating mountains from planes with vertex shaders and Bevy_ +{{ image_figure( + alt="vertex shaders example" + src="https://github.com/creating-mountains-from-planes-with-vertex-shaders-and-bevy.png" + caption="Creating mountains from planes with vertex shaders and Bevy", + link="https://youtube.com/watch?v=85uJc81SQZ4") }} [@chrisbiscardi] published a [video][chrisbiscardi-vid1] about using the new Material shader APIs in Bevy 0.8 to transform the @@ -632,8 +651,11 @@ _Discussions: [Twitter](https://twitter.com/chrisbiscardi/status/154908959997193 ### [What's in a wgsl fragment shader? ft Bevy][chrisbiscardi-vid2] -[![vertex shaders example](whats-in-a-wgsl-fragment-shader-with-bevy.png)][chrisbiscardi-vid2] -_What's in a wgsl fragment shader? ft Bevy_ +{{ image_figure( + alt="vertex shaders example" + src="https://github.com/whats-in-a-wgsl-fragment-shader-with-bevy.png" + caption="What's in a wgsl fragment shader? ft Bevy", + link="https://youtube.com/watch?v=SOOOc9-joVo") }} [@chrisbiscardi] published a [video][chrisbiscardi-vid2] that introduces the new Material APIs in Bevy 0.8. It covers AsBindGroup, @@ -700,8 +722,10 @@ _Discussions: ### [NES Bundler][nes-bundler] -![NES Bundler running Data Man with GUI showing](nes-bundler.png) -_NES Bundler in action_ +{{ image_figure( + alt="NES Bundler running Data Man with GUI showing" + src="https://github.com/nes-bundler.png" + caption="NES Bundler in action") }} [NES Bundler][nes-bundler] is a NES ROM packaging tool by [@tedsteen]. Did you make a NES-game but none of your friends own a Nintendo? Don't worry. @@ -897,8 +921,10 @@ _Discussions: [/r/rust](https://reddit.com/r/rust/comments/vwdxim/announcing_lyo ### [Renet] -![3D capsles shooting red dots at each other](renet_bevy_demo.gif) -_Demo using renet and bevy_ +{{ image_figure( + alt="3D capsles shooting red dots at each other" + src="https://github.com/renet_bevy_demo.gif" + caption="Demo using renet and bevy") }} [Renet] by [@lucaspoffo] is a network library to create games with the Server-Client architecture. @@ -924,8 +950,10 @@ Renet comes with [bevy_renet], a plugin for the Bevy engine, and also with ### [miniquad] -![miniquad fileopen](miniquad_gl2.gif) -_VirtualBox, gl2 as the only GPU acceleration available_ +{{ image_figure( + alt="miniquad fileopen" + src="https://github.com/miniquad_gl2.gif" + caption="VirtualBox, gl2 as the only GPU acceleration available") }} [miniquad] is a safe and cross-platform rendering library focused on portability and low-end platform support. @@ -943,8 +971,10 @@ next in line. ### [bevy_mod_fbx] -![A model using a PBR shader featuring roughness and metalicness texture maps](bevy_fbx_maya_pbr.jpg) -_model courtesy of [Samuel Rosario], rendered in bevy_ +{{ image_figure( + alt="A model using a PBR shader featuring roughness and metalicness texture maps" + src="https://github.com/bevy_fbx_maya_pbr.jpg" + caption="model courtesy of [Samuel Rosario](https://www.artstation.com/artwork/bKJ0EE), rendered in bevy") }} [bevy_mod_fbx] is a pre-alpha library to load FBX (Autodesk Filmbox) files into [bevy] 0.8, based on [fbxcel-dom]. @@ -982,7 +1012,7 @@ in a single seamless piece of rust code. It offers: - [examples using wgpu][shame-examples]! A Discord channel for questions/feedback is linked in the -[Github readme][shame]. +[GitHub readme][shame]. ### [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_ +{{ image_figure( + alt='A behavior tree visualization that starts with a "root" node and branches +into leafs like "run" and "get in cover"' + src="https://github.com/bonsai.png" + caption="A visualization of a simple NPC behavior tree") }} [bonsai-bt] by [@Sollimann] is a Rust implementation of behavior trees. diff --git a/content/news/037/index.md b/content/news/037/index.md index e3872a947..c1d5c4353 100644 --- a/content/news/037/index.md +++ b/content/news/037/index.md @@ -108,7 +108,7 @@ Sir Hoardalot, and you, as his resourcesful Loot Goblin are going to keep his backpack in order! Craft potions and weapons to strengthen the hero, and help kill the evil Ogre Necromancer. -The source code for the game is available [on Github][loot-goblin-source]. +The source code for the game is available [on GitHub][loot-goblin-source]. [loot-goblin]: https://park-dev.itch.io/loot-goblin [loot-goblin-source]: https://github.com/vanGeck/bevy-jam-2 @@ -221,8 +221,10 @@ refactoring tool based on the ### [CyberGate][cybergate-yt] -![browser udp technology](cybergate.jpg) -_The new browser version works exactly like the native version_ +{{ image_figure( + alt="browser udp technology" + src="https://github.com/cybergate.jpg" + caption="The new browser version works exactly like the native version") }} CyberGate ([YouTube][cybergate-yt], [Discord][cybergate-dis]) by CyberSoul is a new multiplayer project that aims at procedurally generating distinct @@ -248,8 +250,10 @@ _Discussions: [/r/rust_gamedev](https://reddit.com/r/rust_gamedev/comments/x60n9 ### [Rusty Aquarium] -![Rusty Aquarium visualization](rustyaquarium.gif) -_Visualize data as a fish tank with Rusty Aquarium_ +{{ image_figure( + alt="Rusty Aquarium visualization" + src="https://github.com/rustyaquarium.gif" + caption="Visualize data as a fish tank with Rusty Aquarium") }} [Rusty Aquarium] by [@ollej] is a data visualization tool as a virtual fish tank written in Rust and Macroquad. Different data points control how many @@ -277,8 +281,10 @@ files now contain binaries for input data generation. ### [Infinite Bunner] -![Infinite Bunner](infinitebunner.gif) -_Port of the Infinite Bunner game to Rust and Macroquad_ +{{ image_figure( + alt="Infinite Bunner" + src="https://github.com/infinitebunner.gif" + caption="Port of the Infinite Bunner game to Rust and Macroquad") }} [Infinite Bunner] is a game from the book [Code the Classics vol 1] that has been ported by [@ollej] to Rust and Macroquad from Python and PyGame Zero. @@ -319,8 +325,10 @@ tuned by following the [newsletter][country-slice-newsletter]! ### [Math It] -![Promotional image of the Math It game](math_it.png) -_Promotional image of the Math It game_ +{{ image_figure( + alt="Promotional image of the Math It game" + src="https://github.com/math_it.png" + caption="Promotional image of the Math It game") }} [Math It] was made with [Bevy] for the [Bevy Jam 2]. @@ -333,8 +341,10 @@ to the target number and compete with others on a global leaderboard. ### [Veloren][veloren] -![A cave with lava](veloren.jpg) -_A barrier of lava_ +{{ image_figure( + alt="A cave with lava" + src="https://github.com/veloren.jpg" + caption="A barrier of lava") }} [Veloren][veloren] is an open world, open-source voxel RPG inspired by Dwarf Fortress and Cube World. @@ -408,10 +418,12 @@ or browse through the [open issues][runty8-open-issues]. ### [Gamercade] -![Gamercade preview](gamercade.gif) -_Preview of the Audio Editor in Action_ +{{ image_figure( + alt="Gamercade preview" + src="https://github.com/gamercade.gif" + caption="Preview of the Audio Editor in Action") }} -[Gamercade] ([Discord][Gamercade-Discord], [Github][Gamercade-Github]) +[Gamercade] ([Discord][Gamercade-Discord], [GitHub][Gamercade-GitHub]) by @RobDavenport is a WASM-powered fantasy console focused on building multiplayer neo-retro games. @@ -434,12 +446,12 @@ note. Come hang out and chat on [Discord][Gamercade-Discord], where the developers interact with members and post updates daily. The project is -[open source][Gamercade-Github] and looking for contributors, suggestions, +[open source][Gamercade-GitHub] and looking for contributors, suggestions, as well as awesome game demos. [Gamercade]: https://gamercade.io [Gamercade-Discord]: https://discord.gg/Qafv2Fpt5j -[Gamercade-Github]: https://github.com/gamercade-io/gamercade_console +[Gamercade-GitHub]: https://github.com/gamercade-io/gamercade_console [Gamercade-Video]: https://youtube.com/watch?v=cRsOvefap_U ## Tooling Updates @@ -501,8 +513,10 @@ and libraries, e.g. bevy, egui, and [nannou]. ### [bevy_kira_audio] -![Configuring a sound when playing it](bevy_kira_audio_settings.png) -_Configuring a sound when playing it_ +{{ image_figure( + alt="Configuring a sound when playing it" + src="https://github.com/bevy_kira_audio_settings.png" + caption="Configuring a sound when playing it") }} [bevy_kira_audio] by [@nikl_me] is an alternative audio plugin for the [Bevy] game engine. It uses [Kira] as its audio library and aims to integrate @@ -522,8 +536,10 @@ tweens to most operations. ### [bevy_asset_loader] -![Configuration of a loading state](loading_state.png) -_Configuration of a loading state_ +{{ image_figure( + alt="Configuration of a loading state" + src="https://github.com/loading_state.png" + caption="Configuration of a loading state") }} [bevy_asset_loader] by [@nikl_me] is a plugin for [Bevy] apps aiming to improve a common pattern for asset-loading. The boilerplate required to set up diff --git a/content/news/038/index.md b/content/news/038/index.md index 8cd4d212e..bba06e2fe 100644 --- a/content/news/038/index.md +++ b/content/news/038/index.md @@ -35,7 +35,7 @@ Feel free to send PRs about your own projects! - [Tooling Updates](#tooling-updates) - [Library Updates](#library-updates) - [Other News](#other-news) -- [Popular Workgroup Issues in Github](#popular-workgroup-issues-in-github) +- [Popular Workgroup Issues in GitHub](#popular-workgroup-issues-in-github) - [Discussions](#discussions) - [Requests for Contribution](#requests-for-contribution) - [Bonus](#bonus) @@ -83,8 +83,10 @@ Twitch][rust-gamedev-twitch]. ### [CyberGate][cybergate-yt] -![building and fighting](cybergate.gif) -_building shelter and fighting a colony of red monsters_ +{{ image_figure( + alt="building and fighting" + src="https://github.com/cybergate.gif" + caption="building shelter and fighting a colony of red monsters") }} CyberGate ([YouTube][cybergate-yt], [Discord][cybergate-dis]) by CyberSoul is an attempt to use artificial intelligence to build diverse universe experiences @@ -112,8 +114,10 @@ _Discussions: [/r/rust_gamedev](https://www.reddit.com/r/rust_gamedev/comments/x ### [Graviton][graviton-website] -![Graviton](graviton.png) -_Take a little break to relax and draw some sand art_ +{{ image_figure( + alt="Graviton" + src="https://github.com/graviton.png" + caption="Take a little break to relax and draw some sand art") }} [Graviton](https://www.gravitongame.art/) by [@hakolao](https://github.com/hakolao) @@ -130,8 +134,10 @@ _Discussions: [/r/rust_gamedev](https://www.reddit.com/r/rust_gamedev/comments/x ### Flesh -![flesh preview](flesh.gif) -_4th area_ +{{ image_figure( + alt="flesh preview" + src="https://github.com/flesh.gif" + caption="4th area") }} [Flesh] by [@im_oab] is a 2D-horizontal shmup game with hand-drawn animation and an organic/fleshy theme. It is implemented using [Tetra]. This month's updates @@ -146,8 +152,10 @@ include: ### Thetawave -![thetawave-boss](thetawave.gif) -_First boss in progress_ +{{ image_figure( + alt="thetawave-boss" + src="https://github.com/thetawave.gif" + caption="First boss in progress") }} Thetawave is a physics based, cosmic horror themed space shooter by [@carlosupina]. @@ -203,8 +211,10 @@ goes into more depth about calling Rust code from C# in Unity. ### [eo.rs][eo-rs-website] -![npcs talking](eo-rs.PNG) -_NPCs chatting in the game world_ +{{ image_figure( + alt="npcs talking" + src="https://github.com/eo-rs.PNG" + caption="NPCs chatting in the game world") }} [eo-rs][eo-rs-website] by [@sorokya](https://github.com/sorokya) is a development library and game server for the MMORPG @@ -244,8 +254,10 @@ tuned by following the [newsletter][country-slice-newsletter]! ### [Veloren][veloren] -![Riding into the sunset](veloren.jpg) -_Riding into the sunset_ +{{ image_figure( + alt="Riding into the sunset" + src="https://github.com/veloren.jpg" + caption="Riding into the sunset") }} [Veloren][veloren] is an open world, open-source voxel RPG inspired by Dwarf Fortress and Cube World. @@ -273,8 +285,10 @@ Septembers's full weekly devlogs: "This Week In Veloren...": ### [Subfuse][subfuse] -![Escape the hotel](subfuse.png) -_Escape the hotel_ +{{ image_figure( + alt="Escape the hotel" + src="https://github.com/subfuse.png" + caption="Escape the hotel") }} [Subfuse][subfuse] is a short 1st person puzzle/escape game made for [Bevy Jam #2][bevy-jam-2] with an accompanying [postmortem][subfuse-postmortem] @@ -288,9 +302,11 @@ that goes into some detail about the process of making the game. ### [godot-rust][gd-github] -![godot-rust new export syntax](godot-rust-export.png) -_The new `#[method]` syntax, which replaces existing `#[export]` and allows omitting -the base parameter._ +{{ image_figure( + alt="godot-rust new export syntax" + src="https://github.com/godot-rust-export.png" + caption="The new `#[method]` syntax, which replaces existing `#[export]` and allows omitting +the base parameter.") }} godot-rust ([GitHub][gd-github], [Discord][gd-discord], [Twitter][gd-twitter]) is a Rust library that provides bindings for the Godot engine. @@ -318,10 +334,12 @@ bugs and missing features, you can give it a try very soon! ### [Gamercade] -![Gamercade preview](gamercade.gif) -_Gamercade Sprite Animations_ +{{ image_figure( + alt="Gamercade preview" + src="https://github.com/gamercade.gif" + caption="Gamercade Sprite Animations") }} -[Gamercade] ([Discord][Gamercade-Discord], [Github][Gamercade-Github]) +[Gamercade] ([Discord][Gamercade-Discord], [GitHub][Gamercade-GitHub]) by @RobDavenport is a WASM-powered fantasy console focused on building multiplayer neo-retro games. @@ -344,12 +362,12 @@ stereo sound support, and much more. Come hang out and chat on [Discord][Gamercade-Discord], where the developers interact with members and post updates daily. The project is -[open source][Gamercade-Github] and looking for contributors, suggestions, +[open source][Gamercade-GitHub] and looking for contributors, suggestions, as well as your awesome game creations. [Gamercade]: https://gamercade.io [Gamercade-Discord]: https://discord.gg/Qafv2Fpt5j -[Gamercade-Github]: https://github.com/gamercade-io/gamercade_console +[Gamercade-GitHub]: https://github.com/gamercade-io/gamercade_console [Gamercade-Release]: https://gamercade.io/blog/gamercade-0-1-0 ### [Dims][dims-website] @@ -463,8 +481,10 @@ for further details. ### bevy_oddio -![an example using bevy_oddio](change_pitch_bevy_oddio_example.png) -_an example using bevy_oddio_ +{{ image_figure( + alt="an example using bevy_oddio" + src="https://github.com/change_pitch_bevy_oddio_example.png" + caption="an example using bevy_oddio") }} [bevy_oddio] by [@harudagondi] is an audio plugin for the [Bevy] game engine that uses the [oddio] library. @@ -493,8 +513,10 @@ The above screen shows an example of controlling a custom made audio source ### [Particular] -![showcase using the demo](particular.gif) -_Showcase using the [demo]_ +{{ image_figure( + alt="showcase using the demo" + src="https://github.com/particular.gif" + caption="Showcase using the [demo](https://canleskis.github.io/bevy-particular-demo/)") }} [Particular] by [@Canleskis] is a library allowing for simulations of N-body gravitational interaction of particles. It aims to be simple @@ -545,8 +567,10 @@ other types of browser's images as well (like `HtmlCanvasElement`). ### [Polyanya] -![example of pathfinding](polyanya.gif) -_Navigating through a mesh in the online [demo][polyanya-demo]_ +{{ image_figure( + alt="example of pathfinding" + src="https://github.com/polyanya.gif" + caption="Navigating through a mesh in the online [demo](https://vleue.github.io/bevy_pathmesh/)") }} [Polyanya] by [@FrancoisMockers] is a library implementing [Polyanya][polyanya-paper], a Compromise-free Pathfinding algorithm on a @@ -562,7 +586,7 @@ available in WASM. Next area of work will be around navigation mesh editing. [polyanya-demo]: https://vleue.github.io/bevy_pathmesh/ [@FrancoisMockers]: https://twitter.com/FrancoisMockers -## Popular Workgroup Issues in Github +## Popular Workgroup Issues in GitHub diff --git a/content/news/039/index.md b/content/news/039/index.md index cc76670a3..716ca6c52 100644 --- a/content/news/039/index.md +++ b/content/news/039/index.md @@ -106,8 +106,10 @@ _Discussions: [Submission page](https://ldjam.com/events/ludum-dare/51/miam)_ ### [Jumpy] -![Online Game Fish Selection Screen](jumpy.png) -_Online Game Fish Selection Screen_ +{{ image_figure( + alt="Online Game Fish Selection Screen" + src="https://github.com/jumpy.png" + caption="Online Game Fish Selection Screen") }} [Jumpy] ([GitHub][Jumpy], [Discord][jumpy_discord], [Twitter][jumpy_twitter]) by [Spicy Lobster][spicy_lobster] is a pixel-style, tactical 2D shooter with a fishy @@ -143,8 +145,10 @@ _Discussions: [GitHub][jumpy_discussions], [Twitter][jumpy_twitter]_ ### [CyberGate][cybergate-yt] -![State Syncronization](cybergate.gif) -_The health bar that is closer updates more frequently_ +{{ image_figure( + alt="State Syncronization" + src="https://github.com/cybergate.gif" + caption="The health bar that is closer updates more frequently") }} CyberGate ([YouTube][cybergate-yt], [Discord][cybergate-dis]) by CyberSoul is an attempt to use artificial intelligence to build diverse universe experiences @@ -168,9 +172,10 @@ Recent updates: ### Digital Extinction -![selection circles & health bars in Digital -Extinction](digital-extinction.jpeg) _selection circles & health bars in Digital -Extinction_ +{{ image_figure( + alt="selection circles & health bars in Digital Extinction" + src="https://github.com/digital-extinction.jpeg" + caption="selection circles & health bars in Digital Extinction") }} [Digital Extinction] ([GitHub][de-github], [Discord][de-discord], [Reddit][de-reddit]) by [@Indy2222] is a 3D real-time strategy game made with @@ -202,7 +207,7 @@ A more detailed update summary is available [here][de-newsletter]. ![Skeleton](skeleton.png) -[ThousandthStar] ([Github](https://github.com/ThousandthStar/multiplayer_game)) +[ThousandthStar] ([GitHub](https://github.com/ThousandthStar/multiplayer_game)) is creating a simple turn-based strategy game using the Bevy game engine. It's a small side project he's been building in his spare time. @@ -274,8 +279,10 @@ it hit version 0.28 which added new functionality and improved existing: ### [miniquad] -![ios-miniquad](ios_zemeroth.png) -_[zemeroth](github.com/ozkriff/zemeroth/) on the iOS simulator_ +{{ image_figure( + alt="ios-miniquad" + src="https://github.com/ios_zemeroth.png" + caption="[zemeroth](https://github.com/ozkriff/zemeroth/) on the iOS simulator") }} [miniquad] is a pure Rust, cross-platform graphics library. @@ -571,7 +578,7 @@ release as part of the upgrade to the imminent Bevy 0.9 release. ### [`seldom_state`] -`seldom_state` by [Seldom] ([Github][seldom-github]) is a component-based +`seldom_state` by [Seldom] ([GitHub][seldom-github]) is a component-based state machine plugin for Bevy. It's useful for AI, player state, animation, and other entities that occupy varying states. diff --git a/content/news/040/index.md b/content/news/040/index.md index b120758a1..689252d97 100644 --- a/content/news/040/index.md +++ b/content/news/040/index.md @@ -36,7 +36,7 @@ Feel free to send PRs about your own projects! - [Tooling Updates](#tooling-updates) - [Library Updates](#library-updates) - [Other News](#other-news) -- [Popular Workgroup Issues in Github](#popular-workgroup-issues-in-github) +- [Popular Workgroup Issues in GitHub](#popular-workgroup-issues-in-github) - [Discussions](#discussions) - [Requests for Contribution](#requests-for-contribution) - [Jobs](#jobs) @@ -87,8 +87,10 @@ If you would like to speak at the next meetup, please ### [Jumpy] -![Swords, Crates, Grenades, & Mines](jumpy.png) -_Jumpy Items: Swords, Crates, Grenades, & Mines_ +{{ image_figure( + alt="Swords, Crates, Grenades, & Mines" + src="https://github.com/jumpy.png" + caption="Jumpy Items: Swords, Crates, Grenades, & Mines") }} [Jumpy] ([GitHub][Jumpy], [Discord][jumpy_discord], [Twitter][jumpy_twitter]) by [Spicy Lobster][spicy_lobster] is a pixel-style, tactical 2D shooter with a fishy @@ -126,8 +128,10 @@ just around the corner! ### [CyberGate][cybergate-yt] -![At the Abyss](cybergate.png) -_The abyss is the deepest, hardest level, filled with monsters of all sizes and strength_ +{{ image_figure( + alt="At the Abyss" + src="https://github.com/cybergate.png" + caption="The abyss is the deepest, hardest level, filled with monsters of all sizes and strength") }} CyberGate ([YouTube][cybergate-yt], [Discord][cybergate-dis]) by CyberSoul is an ambitious endeavor to create an immersive universe experience with the power of @@ -186,8 +190,10 @@ _Discussions: ### Digital Extinction -![laser trail in Digital Extinction](digital-extinction.jpeg) -_Laser trail in Digital Extinction_ +{{ image_figure( + alt="laser trail in Digital Extinction" + src="https://github.com/digital-extinction.jpeg" + caption="Laser trail in Digital Extinction") }} [Digital Extinction] ([GitHub][de-github], [Discord][de-discord], [Reddit][de-reddit]) by [@Indy2222] is a 3D real-time strategy game made with @@ -303,13 +309,15 @@ There was one dev log published this month: ### [8bit Duels] -![UI preview](8bd-ui-prev.png) -_UI preview_ +{{ image_figure( + alt="UI preview" + src="https://github.com/8bd-ui-prev.png" + caption="UI preview") }} [@ThousandthStar] is creating an 8bit themed multiplayer game. It's a turn-based strategy game and is currently under development. This month, the [blog][8bit-blog] got moved from [dev.to][8bit-dev.to] to ThousandthStar's own -blog on Github. +blog on GitHub. The game is soon getting a UI, and more packets need to be implemented before the game is ready to play. ThousandthStar is excited for the game to be @@ -331,8 +339,10 @@ _Discussion: [r/rust_gamedev][8bit-r/rust_gamedev]_ ### [Veloren][veloren] -![A riverside](veloren.jpeg) -_Reflections on the river_ +{{ image_figure( + alt="A riverside" + src="https://github.com/veloren.jpeg" + caption="Reflections on the river") }} [Veloren][veloren] is an open world, open-source voxel RPG inspired by Dwarf Fortress and Cube World. @@ -585,7 +595,7 @@ at [Embark Studios][embark]. ### [Boytacean][boytacean] -Boytacean ([Github][boytacean], [Working Emulator][boytacean-web]) +Boytacean ([GitHub][boytacean], [Working Emulator][boytacean-web]) by [@joamag] is a Game Boy emulator written in Rust with both Native (using SDL) and Web (using WebAssembly) frontends that has been created as a learning experiment to better understand both Rust capabilities and @@ -690,8 +700,10 @@ _Discussions: ### [Bevy Sequential Actions] -![Bevy sequential actions simple demo](sequential_actions.gif) -_An entity with a queue of repeating actions._ +{{ image_figure( + alt="Bevy sequential actions simple demo" + src="https://github.com/sequential_actions.gif" + caption="An entity with a queue of repeating actions.") }} `bevy-sequential-actions` ([GitHub][seq-actions-gh], [docs.rs][seq-actions-docs]) is a simple helper library for the [Bevy][bevy] game engine. @@ -833,9 +845,11 @@ You can check the [demos] online and read more about the changes on the [changel ### [Bevy Hikari] v0.3 -![bevy-hikari screenshot](bevy-hikari-n40.jpeg) -_Direct lighting, emissive lighting and indirect global illumination under 4x -temporal upscaling._ +{{ image_figure( + alt="bevy-hikari screenshot" + src="https://github.com/bevy-hikari-n40.jpeg" + caption="Direct lighting, emissive lighting and indirect global illumination under 4x +temporal upscaling.") }} `bevy-hikari` ([crates.io][hikari-crates], [docs.rs][hikari-docs], [GitHub][hikari-github]), a path tracing renderer for [Bevy], is now compatible @@ -853,8 +867,10 @@ affordable for median end devices. ### [Bevy Vfx Bag] -![Bevy vfx bag gif](underwater.gif) -_A composite effect applied to Bevy's 3D shapes example._ +{{ image_figure( + alt="Bevy vfx bag gif" + src="https://github.com/underwater.gif" + caption="A composite effect applied to Bevy's 3D shapes example.") }} `bevy-vfx-bag` ([GitHub][bevy-vfx-bag-gh], [docs.rs][bevy-vfx-bag-docs]) is a visual effects library for the [Bevy][bevy] game engine. @@ -940,8 +956,10 @@ There's also [a book][kayak-book] that covers the basic concepts; ### [Iced] v0.5 -![A design demo application showcasing widgets and theming capabilities](iced-cosmic.png) -_System76's COSMIC desktop software_ +{{ image_figure( + alt="A design demo application showcasing widgets and theming capabilities" + src="https://github.com/iced-cosmic.png" + caption="System76's COSMIC desktop software") }} [Iced] is an experimental cross-platform GUI library focused on simplicity and type-safety, inspired by Elm. @@ -1064,7 +1082,7 @@ _Discussions: [/r/rust](https://reddit.com/r/rust/comments/yr0oe8/iced_0_5)_ [@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 +## Popular Workgroup Issues in GitHub diff --git a/content/news/041/index.md b/content/news/041/index.md index 777f9bc2f..88a0c2284 100644 --- a/content/news/041/index.md +++ b/content/news/041/index.md @@ -136,8 +136,10 @@ _Discussions: ### Digital Extinction -![laser trail in Digital Extinction](digital-extinction.jpeg) -_Laser trail in Digital Extinction_ +{{ image_figure( + alt="laser trail in Digital Extinction" + src="https://github.com/digital-extinction.jpeg" + caption="Laser trail in Digital Extinction") }} [Digital Extinction] ([GitHub][de-github], [Discord][de-discord], [Reddit][de-reddit]) by [@Indy2222] is a 3D real-time strategy game made with @@ -167,8 +169,10 @@ A more detailed update summary is available [here][de-update-03]. ### [Open Combat][OpenCombat_website] -![Real time tactical 2nd world war game](open_combat.png) -_Game now includes vehicle (T-26) and shelling FX_ +{{ image_figure( + alt="Real time tactical 2nd world war game" + src="https://github.com/open_combat.png" + caption="Game now includes vehicle (T-26) and shelling FX") }} Open Combat ([Website][OpenCombat_website], @@ -209,8 +213,10 @@ into lovable dioramas. Wishlist on [Steam][Tiny Glade]! ### [Temple Knight] -![Shooting automatons in Temple Knight](temple-knight.jpg) -_Shooting automatons in Temple Knight_ +{{ image_figure( + alt="Shooting automatons in Temple Knight" + src="https://github.com/temple-knight.jpg" + caption="Shooting automatons in Temple Knight") }} Temple Knight ([Itch.io][tk-itch], [Twitter][tk-twitter]) by [@nilaysavant] is a 3D FPS game developed using [Bevy]. @@ -282,11 +288,13 @@ implemented. ### [8bit Duels] -![Kraken](8bd_kraken.png) -_The newly added Kraken_ +{{ image_figure( + alt="Kraken" + src="https://github.com/8bd_kraken.png" + caption="The newly added Kraken") }} [@ThousandthStar] is creating 8bit Duels -([Discord][8bit-discord], [Github][8bit-github]), +([Discord][8bit-discord], [GitHub][8bit-github]), an 8bit style turn-based multiplayer strategy game. Last month, an artist joined ThousandthStar to create art for the game. @@ -307,8 +315,10 @@ The full devlog for this month can be found [here][8bit-log5]. ### [Flesh] -![flesh preview](flesh.gif) -_more blood_ +{{ image_figure( + alt="flesh preview" + src="https://github.com/flesh.gif" + caption="more blood") }} [Flesh] by [@im_oab] is a 2D-horizontal shmup game with hand-drawn animation and an organic/fleshy theme. It is implemented using [Tetra]. This month's updates @@ -325,8 +335,10 @@ include: ### Pirate Annihilation -![Pirate annihilation game view](pirate_annihilation_n41.png) -_Pirate annihilation game view, asset pack by [Kenney](https://twitter.com/KenneyNL)_ +{{ image_figure( + alt="Pirate annihilation game view" + src="https://github.com/pirate_annihilation_n41.png" + caption="Pirate annihilation game view, asset pack by [Kenney](https://twitter.com/KenneyNL)") }} Pirate Annihilation ([GitHub][pirate_annihilation_repo], [Twitter][indiedevcasts_twitter]) by [indiedevcasts][indiedevcasts_www] ([@theredfish]) is a last-man-standing game @@ -344,8 +356,10 @@ now defined. ### [Veloren][veloren] -![A wendigo at night](veloren.jpg) -_A fearsome wendigo encounter_ +{{ image_figure( + alt="A wendigo at night" + src="https://github.com/veloren.jpg" + caption="A fearsome wendigo encounter") }} [Veloren][veloren] is an open world, open-source voxel RPG inspired by Dwarf Fortress and Cube World. @@ -374,8 +388,10 @@ December's full weekly devlogs: "This Week In Veloren...": ### [Thetawave] -![repeater boss](repeater_boss.gif) -_First boss enemy in Thetawave_ +{{ image_figure( + alt="repeater boss" + src="https://github.com/repeater_boss.gif" + caption="First boss enemy in Thetawave") }} Thetawave is an open-source, roguelite, physics-based, space shooter game made with [Bevy] and [Rapier]. @@ -391,8 +407,10 @@ regular updates about the game. ### [Jumpy] -![Swords, Crates, Grenades, & Mines](jumpy.png) -_Jumpy Items: Swords, Crates, Grenades, & Mines_ +{{ image_figure( + alt="Swords, Crates, Grenades, & Mines" + src="https://github.com/jumpy.png" + caption="Jumpy Items: Swords, Crates, Grenades, & Mines") }} [Jumpy] ([GitHub][Jumpy], [Discord][jumpy_discord], [Twitter][jumpy_twitter]) by [Spicy Lobster][spicy_lobster] is a pixel-style, tactical 2D shooter with a fishy @@ -639,8 +657,10 @@ The final source code [is available on GitHub][clicker-src]. ### [Graphite][graphite-website] [ -![Graphite logo](graphite-vector-demo.png) -_Video: 3-minute timelapse of a vector art piece illustrated in Graphite_ +{{ image_figure( + alt="Graphite logo" + src="https://github.com/graphite-vector-demo.png" + caption="Video: 3-minute timelapse of a vector art piece illustrated in Graphite") }} ][graphite-vector-demo] Graphite ([website][graphite-website], [GitHub][graphite-repo], @@ -734,8 +754,10 @@ The author also made a basic example [here][bevy-rpg-example]. ### [lpcg][lpcg_crate] -![character sprite generator](lpcg.png) -_A new library which generates character sprites_ +{{ image_figure( + alt="character sprite generator" + src="https://github.com/lpcg.png" + caption="A new library which generates character sprites") }} lpcg ([Crates.io][lpcg_crate], [GitHub][lpcg_github]) by [bux][bux] is a library which generates character sprites, @@ -747,8 +769,10 @@ based on assets from the [Liberated Pixel Cup][lpc]. ### [egui_dnd] -![egui_dnd in action](egui_dnd.gif) -_A [showcase](https://lucasmerlin.github.io/egui_dnd/) of egui_dnd_ +{{ image_figure( + alt="egui_dnd in action" + src="https://github.com/egui_dnd.gif" + caption="A [showcase](https://lucasmerlin.github.io/egui_dnd/) of egui_dnd") }} [egui_dnd] ([github][egui_dnd_github], [crates.io][egui_dnd_crates_io]) by [@lucasmerlin] is a new drag and drop sorting crate for egui. While egui itself includes some drag @@ -818,9 +842,10 @@ the main improvements are: ### [rust-gpu v0.4.0][rust-gpu-release] -![a screenshot: spherical characters doing stuff](rust-gpu.jpg) -_Embark's [Creative Playground][embark-creative-playground], -which uses rust-gpu and raytracing_ +{{ image_figure( + alt="a screenshot: spherical characters doing stuff" + src="https://github.com/rust-gpu.jpg" + caption="Embark's [Creative Playground](https://twitter.com/createplayremix), which uses rust-gpu and raytracing") }} [Rust-gpu][rust-gpu] ([Discord][rust-gpu-discord]) allows you to write your GPU shaders in the Rust language. diff --git a/content/news/042/index.md b/content/news/042/index.md index 80217d26e..d4ee86481 100644 --- a/content/news/042/index.md +++ b/content/news/042/index.md @@ -113,8 +113,10 @@ Twitch][rust-gamedev-twitch]. ### Digital Extinction -![Building Placement in Digital Extinction](digital-extinction.jpeg) -_Building Placement in Digital Extinction_ +{{ image_figure( + alt="Building Placement in Digital Extinction" + src="https://github.com/digital-extinction.jpeg" + caption="Building Placement in Digital Extinction") }} [Digital Extinction] ([GitHub][de-github], [Discord][de-discord], [Reddit][de-reddit]) by [@Indy2222] is a 3D real-time strategy game made with @@ -156,9 +158,11 @@ A more detailed update summary is available [here][de-update-04]. ### [Cargo Space] -![Screenshot of p2p multiplayer in Cargo Space: One instance running on windows -and one in Chrome](cargo-space-cross-platform.png) -_Cross-platform p2p multiplayer in Cargo Space_ +{{ image_figure( + alt="Screenshot of p2p multiplayer in Cargo Space: One instance running on windows +and one in Chrome" + src="https://github.com/cargo-space-cross-platform.png" + caption="Cross-platform p2p multiplayer in Cargo Space") }} [Cargo Space] ([Discord][cargospace_discord]) by [@johanhelsing][johanhelsing_mastodon] is a co-op 2d space game where you build @@ -195,8 +199,10 @@ made with [`bevy_ggrs`][bevy_ggrs]. ### [Idu][idu-itch] -![Screenshot of a tree emerging from a cave in Idu](idu-newsletter.jpg) -_Screenshot of a tree emerging from a cave in Idu_ +{{ image_figure( + alt="Screenshot of a tree emerging from a cave in Idu" + src="https://github.com/idu-newsletter.jpg" + caption="Screenshot of a tree emerging from a cave in Idu") }} [Idu][idu-itch] ([Discord][idu_discord]) Idu is a strategic sandbox game about growing plants that wish to reclaim nature, developed by [Elina @@ -223,8 +229,10 @@ Read more and download the newest demo from [Idu's page on itch.io][idu-itch]. ### [Veloren][veloren] -![A river with flora and fauna](veloren.jpg) -_A serene river with new reflections_ +{{ image_figure( + alt="A river with flora and fauna" + src="https://github.com/veloren.jpg" + caption="A serene river with new reflections") }} [Veloren][veloren] is an open world, open-source voxel RPG inspired by Dwarf Fortress and Cube World. @@ -395,8 +403,11 @@ _Discussions: [Mastodon][zkat-mastodon-ann]_ ### [RustySynth] -[![Waveform displayed on a screen](rustysynth-yt.png) -_Video: an example of realtime MIDI synthesis with RustySynth on rust-sfml_][rustysynth-video] +{{ image_figure( + alt="Waveform displayed on a screen" + src="https://github.com/rustysynth-yt.png" + caption="Video: an example of realtime MIDI synthesis with RustySynth on rust-sfml", + link="https://www.youtube.com/watch?v=o9rPTJIPmVk") }} [RustySynth] is a SoundFont MIDI synthesizer written in pure Rust. The purpose of this library is to provide MIDI music playback functionality for any Rust @@ -438,9 +449,11 @@ would be very appreciated. ### [torchbearer] -![Torchbearer in action](torchbearer.png) -_An exemple of torchbearer in action, demonstrating both pathfinding and field -of view_ +{{ image_figure( + alt="Torchbearer in action" + src="https://github.com/torchbearer.png" + caption="An exemple of torchbearer in action, demonstrating both pathfinding and field +of view") }} [torchbearer] by [@redwarp] is a library that provides a set of tools to find your path in a grid-based dungeon. Specifically, it provides a quick @@ -487,8 +500,10 @@ _Discussions: [Mastodon][cargospace_cross_platform_video]_ ### [miniquad] -![miniquad ios](miniquad_metal.gif) -_Miniquad/macroquad examples rendered by Metal API_ +{{ image_figure( + alt="miniquad ios" + src="https://github.com/miniquad_metal.gif" + caption="Miniquad/macroquad examples rendered by Metal API") }} [miniquad] is a safe and cross-platform rendering library focused on portability and low-end platform support. diff --git a/content/news/043/index.md b/content/news/043/index.md index 0721b7f43..c7f93c9a7 100644 --- a/content/news/043/index.md +++ b/content/news/043/index.md @@ -111,8 +111,10 @@ The game is written using a custom engine: [Geng][geng]. ### [Tunnet][tunnet-itch] -![Tunnet screenshot: low poly models, blocky terrain, FPS view with a drill in hands](tunnet.jpg) -_Tunnels and computer networks_ +{{ image_figure( + alt="Tunnet screenshot: low poly models, blocky terrain, FPS view with a drill in hands" + src="https://github.com/tunnet.jpg" + caption="Tunnels and computer networks") }} Tunnet ([Steam][tunnet-steam], [Itch.io][tunnet-itch]) by [@puzzled\_squid][puzzled_squid] is a small puzzle/exploration game where you @@ -130,8 +132,10 @@ been published on the [project page][tunnet-itch]. ### [Open Combat][OpenCombat_website] -![Debug window: terrain tiles, units, and paths](open_combat.png) -_Game now includes live debug window_ +{{ image_figure( + alt="Debug window: terrain tiles, units, and paths" + src="https://github.com/open_combat.png" + caption="Game now includes live debug window") }} Open Combat ([Website][OpenCombat_website], [GitHub][OpenCombat_github], [Discord][OpenCombat_discord]) is a real time tactical game @@ -215,8 +219,10 @@ post][cargospace_devlog_5]. ### [CyberGate][cybergate-yt] -![Many creatures flying and casting shadows](cybergate.gif) -_Many creatures flying and casting shadows_ +{{ image_figure( + alt="Many creatures flying and casting shadows" + src="https://github.com/cybergate.gif" + caption="Many creatures flying and casting shadows") }} CyberGate ([YouTube][cybergate-yt], [Discord][cybergate-dis]) is an ambitious multiplayer project from CyberSoul, currently in development. @@ -293,8 +299,10 @@ and realistic physics. ### [Veloren][veloren] -![A cyclops attack](veloren.jpg) -_A cyclops attack_ +{{ image_figure( + alt="A cyclops attack" + src="https://github.com/veloren.jpg" + caption="A cyclops attack") }} [Veloren][veloren] is an open world, open-source voxel RPG inspired by Dwarf Fortress and Cube World. @@ -496,8 +504,10 @@ and changing the speed of `SoundEffect`. ### [Fyrox][fyrox] -![a hi-tech soldier model blending between 5 animations](fyrox-blend-space.gif) -_Blend space demo_ +{{ image_figure( + alt="a hi-tech soldier model blending between 5 animations" + src="https://github.com/fyrox-blend-space.gif" + caption="Blend space demo") }} [Fyrox][fyrox] ([GitHub][fyrox-src], [Discord][fyrox-dis], [Twitter][fyrox-twi]) is a game engine that aims to be easy to use and provide a large set @@ -580,7 +590,7 @@ and adding sound. ![Image editor screenshot](sprite_pixel_art_editor.png) A sprite and pixel art editor made with egui and macroquad is being -developed by @yds12 ([Github][yds-github], [Mastodon][yds-mastodon]). +developed by @yds12 ([GitHub][yds-github], [Mastodon][yds-mastodon]). The project is already usable, but has not been made public yet. Current features are: @@ -640,8 +650,11 @@ designs with #MadeWithGraphite on Twitter. ### [rerun.io][rerun] -[![egui app with lots of complex widgets, 2D and 3D views, etc](rerun.jpg)][rerun-video] -_[Click to see Rerun's latest demo video][rerun-video]_ +{{ image_figure( + alt="egui app with lots of complex widgets, 2D and 3D views, etc" + src="https://github.com/rerun.jpg" + caption="[Click to see Rerun's latest demo video](https://youtube.com/watch?v=8ZpvOagRt-o)" + link="https://youtube.com/watch?v=8ZpvOagRt-o") }} [Rerun] ([Discord][rerun-discord]) lets you log images, point clouds and other visual data as easy as you would log text. @@ -693,8 +706,10 @@ _Discussions: [Twitter](https://twitter.com/ManevilleF/status/162515929249085440 ### [nanoshredder] -![nanoshredder demo: windows with shader code and result behind](nanoshredder.gif) -_macroquad's shadertoy example with metal/glsl preview_ +{{ image_figure( + alt="nanoshredder demo: windows with shader code and result behind" + src="https://github.com/nanoshredder.gif" + caption="macroquad's shadertoy example with metal/glsl preview") }} [Nanoshredder] is an experimental fork of [makepad's shader-compiler][makepad-shader-compiler]. @@ -762,8 +777,10 @@ blink-alloc, only on `allocator-api2`. ### [pecs] -![pecs example, same as in the README](pecs.png) -_Promise chaining example_ +{{ image_figure( + alt="pecs example, same as in the README" + src="https://github.com/pecs.png" + caption="Promise chaining example") }} In the ECS environment, you can't use the standard async/await approach, which can make implementing asynchronous logic painful. @@ -806,8 +823,10 @@ This month [seldom_state] 0.4 has been released: ### [warbler_grass] -![preview of a grass chunk](warbler_grass_preview.png) -_A bevy crate for grass rendering_ +{{ image_figure( + alt="preview of a grass chunk" + src="https://github.com/warbler_grass_preview.png" + caption="A bevy crate for grass rendering") }} [warbler_grass] is a new experimental [Bevy] plugin. The goal is to provide an ergonomic, but performant way @@ -835,8 +854,10 @@ for more details, check out our [release notes]. ### [Cvars] -![cvars used in the RustCycles game - showcasing a console for the Fyrox engine](cvars.png) -_Cvars and the Fyrox in-game console as used in RustCycles_ +{{ image_figure( + alt="cvars used in the RustCycles game - showcasing a console for the Fyrox engine" + src="https://github.com/cvars.png" + caption="Cvars and the Fyrox in-game console as used in RustCycles") }} [Cvars] ([GitHub][cvars-github], [Discord][cvars-discord]) by [@martin-t] are a simple way to store settings you want to change at runtime diff --git a/content/news/044/index.md b/content/news/044/index.md index f8536a7ac..bf2a92b11 100644 --- a/content/news/044/index.md +++ b/content/news/044/index.md @@ -94,8 +94,10 @@ Twitch][rust-gamedev-twitch]. ### [8bit Duels] -![movement_animations](8bit-duels-game.png) -_An 8bit Duels match_ +{{ image_figure( + alt="movement_animations" + src="https://github.com/8bit-duels-game.png" + caption="An 8bit Duels match") }} [@ThousandthStar] is creating a simple multiplayer turn-based strategy using the [Bevy Engine]. The [latest devlog] brings features like ownership indicators, @@ -116,8 +118,10 @@ _Discussions: [8-bit Discord]_ ### [CyberGate][cybergate-yt] -![Hit and blackhole particle effects](cybergate.gif) -_Particles emit from bullet hits and blackholes_ +{{ image_figure( + alt="Hit and blackhole particle effects" + src="https://github.com/cybergate.gif" + caption="Particles emit from bullet hits and blackholes") }} CyberGate ([YouTube][cybergate-yt], [Discord][cybergate-dis]), an ambitious multiplayer project in development by CyberSoul, @@ -167,7 +171,7 @@ _Discussion: [Twitter](https://twitter.com/LPGhatguy/status/1632596982928687104) ![Shifting Chamber Screen shot](shifting_chamber.png) Shifting Chamber ([itch.io][shifting-chamber-itch], -[Github][shifting-chamber-github]) is a simple tactics game where +[GitHub][shifting-chamber-github]) is a simple tactics game where the player, instead of moving the character, manipulates the map around it. The goal is to defeat the enemies by forcing them into hazardous positions - since they cannot be attacked directly. @@ -181,8 +185,10 @@ There is currently only a WASM build (freely available on the itch.io) ### [Jumpy] -![Live Map Editing Example](jumpy.gif) -_Live Map Editing!_ +{{ image_figure( + alt="Live Map Editing Example" + src="https://github.com/jumpy.gif" + caption="Live Map Editing!") }} [Jumpy] ([GitHub][Jumpy], [Discord][jumpy_discord], [Twitter][jumpy_twitter]) by [Spicy Lobster][spicy_lobster] is a pixel-style, tactical 2D shooter with a fishy @@ -212,8 +218,10 @@ release as soon as it's ready. ### [Tunnet][tunnet-itch] -![Tunnet screenshot: a weird looking computer network](tunnet.jpg) -_Example of a puzzle in Tunnet_ +{{ image_figure( + alt="Tunnet screenshot: a weird looking computer network" + src="https://github.com/tunnet.jpg" + caption="Example of a puzzle in Tunnet") }} Tunnet ([Steam][tunnet-steam], [Itch.io][tunnet-itch]) by [@puzzled\_squid][puzzled_squid] is a short puzzle/exploration game where you @@ -232,8 +240,10 @@ The game is developed using Bevy and is expected to be released late 2023. ### Digital Extinction -![Building Placement in Digital Extinction](digital-extinction.jpeg) -_Building Placement in Digital Extinction_ +{{ image_figure( + alt="Building Placement in Digital Extinction" + src="https://github.com/digital-extinction.jpeg" + caption="Building Placement in Digital Extinction") }} [Digital Extinction] ([GitHub][de-github], [Discord][de-discord], [Reddit][de-reddit]) by [@Indy2222] is a 3D real-time strategy game made with @@ -298,10 +308,13 @@ Recent updates: ### [Boat Journey][boat-journey-itch] -[![Screenshot from the game Boat Journey showing ASCII art of a boat and some islands](boat-journey-screenshot.png) -_Carry your passengers safely to the ocean in Boat Journey._][boat-journey-itch] +{{ image_figure( + alt="Screenshot from the game Boat Journey showing ASCII art of a boat and some islands" + src="https://github.com/boat-journey-screenshot.png" + caption="Carry your passengers safely to the ocean in Boat Journey.", + link="https://gridbugs.itch.io/boat-journey") }} -[Boat Journey][boat-journey-itch] ([Github][boat-journey-github]) +[Boat Journey][boat-journey-itch] ([GitHub][boat-journey-github]) is a turn-based game where you drive a boat through a procedurally-generated landscape on a voyage along a river destined for the ocean. Accept passengers to have them help you on your journey. Fight monsters, @@ -351,8 +364,10 @@ You can play it [here][play-battle-city]. ### [BattleBots Simulator] -![3D view on a two-weeled robot on a hex map](battle-bots-simulator.jpg) -_Lightweight "annoyance" robot variant_ +{{ image_figure( + alt="3D view on a two-weeled robot on a hex map" + src="https://github.com/battle-bots-simulator.jpg" + caption='Lightweight "annoyance" robot variant') }} [BattleBots Simulator] ([Twitter]) by [@nilaysavant] is a "BattleBots" themed robot wars simulator developed using [Bevy]. @@ -414,8 +429,10 @@ Read more about all this in [this month's devlog entry][cargospace_devlog_6]. ### [Open Combat][OpenCombat_website] -![OpenCombat HUD: a window with a "Begin" button](OpenCombat_HUD.png) -_Game now includes a HUD_ +{{ image_figure( + alt='OpenCombat HUD: a window with a "Begin" button' + src="https://github.com/OpenCombat_HUD.png" + caption="Game now includes a HUD") }} Open Combat ([Website][OpenCombat_website], [GitHub][OpenCombat_github], [Discord][OpenCombat_discord]) is a real-time tactical game @@ -435,8 +452,10 @@ and we are searching for graphic designer help. ### [Veloren][veloren] -![Campfire by the lights](veloren.jpg) -_Campfire by the lights_ +{{ image_figure( + alt="Campfire by the lights" + src="https://github.com/veloren.jpg" + caption="Campfire by the lights") }} [Veloren][veloren] is an open world, open-source voxel RPG inspired by Dwarf Fortress and Cube World. @@ -522,9 +541,10 @@ This month's updates include: ### [hotline][hotline-gh] -![code in the editor on the left and live scene view -with textured shapes on the right](hotline_rdg44.jpg) - _hotline live coding client_ +{{ image_figure( + alt="code in the editor on the left and live scene view with textured shapes on the right" + src="https://github.com/hotline_rdg44.jpg" + caption="hotline live coding client") }} [hotline][hotline-gh] ([Blog][hotline-blog], [Twitter][hotline-twi]) is a modern, high-performance, hot-reload @@ -644,8 +664,11 @@ Editor with egui. ### [Writing NES assembly programs in a Rust DSL][writing-nes-programs-in-rust-video] -[![Title slide from presentation about writing NES assembly programs in Rust](nes-programming-in-rust-cover.jpg) -_Video: Talk about writing NES assembly programs in Rust_][writing-nes-programs-in-rust-video] +{{ image_figure( + alt="Title slide from presentation about writing NES assembly programs in Rust" + src="https://github.com/nes-programming-in-rust-cover.jpg" + caption="Video: Talk about writing NES assembly programs in Rust", + link="https://youtube.com/watch?v=hs-MrEoOX5Y") }} This is a talk about writing a program for the Nintendo Entertainment System that exposes all of its audio processor registers through an interface that lets @@ -673,8 +696,10 @@ youtube][nes-audio-tool-demo-video]. The PDF of the slides from the talk are ### [Using the Depth Prepass in Bevy 0.10] -![depth prepass in bevy 0.10](bevy-depth-prepass.jpg) -_depth prepass powered intersections between a shield and wall/floor_ +{{ image_figure( + alt="depth prepass in bevy 0.10" + src="https://github.com/bevy-depth-prepass.jpg" + caption="depth prepass powered intersections between a shield and wall/floor") }} [@chrisbiscardi] published a [video][Using the Depth Prepass in Bevy 0.10] about using the Depth Prepass texture in Bevy 0.10. The depth prepass, along with the @@ -725,7 +750,7 @@ the high level ECS design of a full game using Bevy. ![Tiger screenshot: classuic UI layout](tiger.png) -Tiger ([Github][tiger-github], +Tiger ([GitHub][tiger-github], [itch.io][tiger-itch.io] by [@agersant] is a visual tool to author game spritesheets and their metadata. @@ -748,8 +773,10 @@ It currently has the following features: ### [Tarsila] -![Tarsila's UI](tarsila.png) -_Editor's UI_ +{{ image_figure( + alt="Tarsila's UI" + src="https://github.com/tarsila.png" + caption="Editor's UI") }} Tarsila is a pixel art and spritesheet editor written in Rust using egui and [macroquad], inspired by [Aseprite]. @@ -777,7 +804,7 @@ We welcome [contributions][tarsila-contrib]! Big thanks to contributors ![Rerun's new select & hover highlights in a browser](rerun.gif) Rerun ([Discord](https://discord.gg/npTFxYR9), -[Github](https://github.com/rerun-io/rerun), [Website](https://rerun.io)) +[GitHub](https://github.com/rerun-io/rerun), [Website](https://rerun.io)) is an open-source SDK for logging complex visual data paired with a visualizer for exploring that data over time. While its primary focus is on robotics and computer vision, it can be useful for all kinds of @@ -804,7 +831,7 @@ is now latest. A few of the biggest highlights: There's a growing community on [Discord][rerun-discord] waiting for you to join in case you have any questions, comments or just want to follow the latest development. -The [Github project][rerun-github] is MIT/Apache +The [GitHub project][rerun-github] is MIT/Apache licensed and open to contribute for everyone, be it with suggestions, bugs or PRs. @@ -813,8 +840,10 @@ be it with suggestions, bugs or PRs. ### [Graphite][graphite-website] -![Vector artwork made in Graphite: Valley of Spires][graphite-artwork] -_Valley of Spires - Vector art made in Graphite_ +{{ image_figure( + alt="Vector artwork made in Graphite: Valley of Spires" + src="https://github.com/graphite-artwork-valley-of-spires.png" + caption="Valley of Spires - Vector art made in Graphite") }} Graphite ([website][graphite-website], [GitHub][graphite-repo], [Discord][graphite-discord], [Twitter][graphite-twitter]) is a free, @@ -847,8 +876,10 @@ designs with #MadeWithGraphite on Twitter. ## [ruffle][ruffle-post] -![new text input support on mobile devices](ruffle-text.jpg) -_Demo of the new text input boxes on a mobile device_ +{{ image_figure( + alt="new text input support on mobile devices" + src="https://github.com/ruffle-text.jpg" + caption="Demo of the new text input boxes on a mobile device") }} [Ruffle] is an open-source Flash Player emulator, written in Rust. It aims to run natively on all modern operating systems and web browsers, leveraging Rust's @@ -984,8 +1015,10 @@ _Discussions: ### [Bevy Rust-GPU] -![hot-rebuild](bevy-rust-gpu-hot-rebuild.gif) -_Hot-rebuilding a rust-gpu shader from a bevy app_ +{{ image_figure( + alt="hot-rebuild" + src="https://github.com/bevy-rust-gpu-hot-rebuild.gif" + caption="Hot-rebuilding a rust-gpu shader from a bevy app") }} [Bevy Rust-GPU] by [@Shfty] is a suite of crates encoding a practical [rust-gpu] workflow for [bevy]. @@ -1014,9 +1047,10 @@ _Discussion: [/r/bevy](https://reddit.com/r/bevy/comments/11hrnmz/bevy_rustgpu_j ### [rust-gpu-sdf] -![3d-distance-field](rust-gpu-sdf.gif) -_An implicit surface defined compositionally, raymarched, and shaded entirely -in Rust_ +{{ image_figure( + alt="3d-distance-field" + src="https://github.com/rust-gpu-sdf.gif" + caption="An implicit surface defined compositionally, raymarched, and shaded entirely in Rust") }} Announcing [rust-gpu-sdf], by [@Shfty]; a no-std signed distance field library designed for use on both CPU and GPU. diff --git a/content/news/045/index.md b/content/news/045/index.md index 2c1c7b438..76897ae2d 100644 --- a/content/news/045/index.md +++ b/content/news/045/index.md @@ -125,8 +125,10 @@ If you want solo though, that's fine too. ### [CyberGate][cybergate-yt] -![hundreds of npcs smoothly interpolating](cybergate.jpg) -_hundreds of npcs smoothly interpolating_ +{{ image_figure( + alt="hundreds of npcs smoothly interpolating" + src="https://github.com/cybergate.jpg" + caption="hundreds of npcs smoothly interpolating") }} CyberGate ([YouTube][cybergate-yt], [Discord][cybergate-dis]), an ambitious multiplayer project in development by CyberSoul, @@ -155,8 +157,10 @@ Participate [by joining the Discord server][cybergate-dis]. ### [Jumpy] -![Online Matchmaking Menu Page](jumpy.png) -_Online Matchmaking_ +{{ image_figure( + alt="Online Matchmaking Menu Page" + src="https://github.com/jumpy.png" + caption="Online Matchmaking") }} [Jumpy] ([GitHub][Jumpy], [Discord][jumpy_discord], [Twitter][jumpy_twitter]) by [Spicy Lobster][spicy_lobster] is a pixel-style, tactical 2D shooter with a fishy @@ -302,8 +306,10 @@ This month [a new demo was released][idu-new-demo]: ### [Tiny Glade] -![three small windows are merged into one bigger one](tglade.gif) -_Demo of the gothic windows system_ +{{ image_figure( + alt="three small windows are merged into one bigger one" + src="https://github.com/tglade.gif" + caption="Demo of the gothic windows system") }} [Tiny Glade] ([Twitter][tglade-twi], [Youtube][tglade-yt]) is a small relaxing game about doodling castles. @@ -352,8 +358,10 @@ that is available in Early Access on Steam. ### [Ambient][ambient-github] -![a set of cool and mostly physics-centered demos](ambient.gif) -_A 10-second preview of what's possible with Ambient 0.2_ +{{ image_figure( + alt="a set of cool and mostly physics-centered demos" + src="https://github.com/ambient.gif" + caption="A 10-second preview of what's possible with Ambient 0.2") }} [Ambient 0.2][ambient-blog] is now out after two months of development. Ambient is an open-source runtime for building high-performance multiplayer @@ -418,7 +426,7 @@ as some QoL improvements such as better compile times. ## Learning Material Updates -### [Bevy <3 Github Actions][bevy-github-actions-blog] +### [Bevy <3 GitHub Actions][bevy-github-actions-blog] ![bevy logo](bevy_github_actions.png) @@ -431,8 +439,10 @@ to GitHub Pages using GitHub Actions. ### [Exploring Bevy's Game Of Life Example][exploring-gol-blog] -![red dots or black bg](explore_gol_drawing.gif) -_Game of Life Simulation_ +{{ image_figure( + alt="red dots or black bg" + src="https://github.com/explore_gol_drawing.gif" + caption="Game of Life Simulation") }} [Yendor][yendor] published [a mini-tutorial series][exploring-gol-blog] exploring compute shaders in Bevy using their [Game of Life example][bevy-gol] @@ -699,9 +709,11 @@ _Discussions: [/r/rust](https://reddit.com/r/rust/comments/133ruqi/image_maniac) ### [Backpack] -![left part is "crab simulator" game where the player gains an item -right part is "clash of crabs" where player is able to use the item](backpack.jpg) -_Minimalist schema for sharing items in different games_ +{{ image_figure( + alt='left part is "crab simulator" game where the player gains an item +right part is "clash of crabs" where player is able to use the item' + src="https://github.com/backpack.jpg" + caption="Minimalist schema for sharing items in different games") }} [Backpack] is an inventory system to share items between different games, for example: diff --git a/content/news/046/index.md b/content/news/046/index.md index 8201070a2..bfc194042 100644 --- a/content/news/046/index.md +++ b/content/news/046/index.md @@ -65,8 +65,10 @@ If needed, a section can be split into subsections with a "------" delimiter. ### [Rusty Jam \#3][rj3] -![find ferris screenshot: a cart with sweets, ferris, flowers, etc](find_ferris.png) -_Find Ferris_ +{{ image_figure( + alt="find ferris screenshot: a cart with sweets, ferris, flowers, etc" + src="https://github.com/find_ferris.png" + caption="Find Ferris") }} [Rusty Jam \#3][rj3] ran from May 21st 2023 to May 29th 2023 and the theme was "Hidden in plain sight". @@ -114,8 +116,10 @@ Twitch][rust-gamedev-twitch]. ### Digital Extinction -![Building Placement in Digital Extinction](digital-extinction.jpeg) -_Building Placement in Digital Extinction_ +{{ image_figure( + alt="Building Placement in Digital Extinction" + src="https://github.com/digital-extinction.jpeg" + caption="Building Placement in Digital Extinction") }} [Digital Extinction] ([GitHub][de-github], [Discord][de-discord], [Reddit][de-reddit]) by [@Indy2222] is a 3D real-time strategy game made with @@ -157,8 +161,10 @@ More detailed monthly updates are available [here (May)][de-update-07] and ### [Tunnet][tunnet-itch] -![Tunnet screenshot: robots queueing outside nightclub](tunnet.jpg) -_Connecting the DJ set to the network_ +{{ image_figure( + alt="Tunnet screenshot: robots queueing outside nightclub" + src="https://github.com/tunnet.jpg" + caption="Connecting the DJ set to the network") }} Tunnet ([Steam][tunnet-steam], [Itch.io][tunnet-itch]) is a short puzzle/exploration game where the player digs tunnels and connects computers @@ -202,8 +208,10 @@ _Discussions: [/r/rust](https://reddit.com/r/rust/comments/13qkcv9/fish_ks)_ ### [Escape Room AI][escape-ai] -![top-down view on the game world: wallks, traps, enemies, doors, etc](escape-ai.png) -_AI trying to escape a room_ +{{ image_figure( + alt="top-down view on the game world: wallks, traps, enemies, doors, etc" + src="https://github.com/escape-ai.png" + caption="AI trying to escape a room") }} [escape-ai] by [@bones-ai] is a Rust-based implementation of a genetic algorithm and reinforcement learning simulation. @@ -301,8 +309,10 @@ _Discussions: [/r/rust_gamedev](https://reddit.com/r/rust_gamedev/comments/13al7 ### [NANOVOID][nv-steam] -![one big space ship shooting lots of missles at another](nanovoid.gif) -_Missiles targeting individual parts on enemy ships_ +{{ image_figure( + alt="one big space ship shooting lots of missles at another" + src="https://github.com/nanovoid.gif" + caption="Missiles targeting individual parts on enemy ships") }} [NANOVOID][nv-steam] by [LogLogGames] is a WIP 2D tactical space shooter that puts you in command of your own modular spaceship: @@ -434,8 +444,10 @@ _Discussions: [/r/rust](https://reddit.com/r/rust/comments/134d2i0/learning_game ### [Game Development In Rust: Making A Strategy Game][rust-strategy-game-tut-1] -![Game Development In Rust: Making A Strategy Game](strategy-game.png) -_Game Development In Rust: Making A Strategy Game_ +{{ image_figure( + alt="Game Development In Rust: Making A Strategy Game" + src="https://github.com/strategy-game.png" + caption="Game Development In Rust: Making A Strategy Game") }} [@srodrigo] published the first three parts of a [strategy game in Bevy series][rust-strategy-game-tut-1]. The series is aimed at @@ -500,7 +512,7 @@ Planned features include auto updating games and mods management. ![Rerun showing 3D object detections in a 2D view](rerun3d2d.gif) -[Rerun][rerun] ([Discord][rerun-dis], [Github][rerun-gh]) +[Rerun][rerun] ([Discord][rerun-dis], [GitHub][rerun-gh]) is an open-source SDK for logging complex visual data paired with a visualizer for exploring that data over time. While its primary focus is on robotics and computer vision, it can be useful for all kinds of @@ -522,7 +534,7 @@ watch the recording [here][rerun-meetup-vid]. There's a growing community on [Discord][rerun-dis] waiting for you to join in case you have any questions, comments or just want to follow the latest development. -The [Github project][rerun-gh] is MIT/Apache +The [GitHub project][rerun-gh] is MIT/Apache licensed and open to contribute for everyone, be it with suggestions, bugs or PRs. diff --git a/content/news/047/index.md b/content/news/047/index.md index 0cb30488d..55ee93062 100644 --- a/content/news/047/index.md +++ b/content/news/047/index.md @@ -91,8 +91,10 @@ Twitch][rust-gamedev-twitch]. ### [Flesh] -![flesh preview](flesh.gif) -_Intro_ +{{ image_figure( + alt="flesh preview" + src="https://github.com/flesh.gif" + caption="Intro") }} [Flesh] by [@im_oab] is a 2D-horizontal shmup game with hand-drawn animation, an organic/fleshy theme and a unique story. It is implemented using [Tetra]. @@ -110,8 +112,10 @@ before release includes: ### [Space Frontiers] -![In-game screenshot of a real-time render of a modular gridmap-based spaceship interior](spacefrontiers.png) -_Render achieved with dynamic point lights._ +{{ image_figure( + alt="In-game screenshot of a real-time render of a modular gridmap-based spaceship interior" + src="https://github.com/spacefrontiers.png" + caption="Render achieved with dynamic point lights.") }} [Space Frontiers] ([GitHub], [Discord], [Twitter], [Reddit], [Steam Group]) by [Starwolves] is an online moddable sci-fi action RPG community game @@ -155,8 +159,10 @@ _Discussions: [StarWolves.io Bulletin Board]_ ### Digital Extinction -![Building Placement in Digital Extinction](digital-extinction.jpeg) -_Building Placement in Digital Extinction_ +{{ image_figure( + alt="Building Placement in Digital Extinction" + src="https://github.com/digital-extinction.jpeg" + caption="Building Placement in Digital Extinction") }} [Digital Extinction] ([GitHub][de-github], [Discord][de-discord], [Reddit][de-reddit]) by [@Indy2222] is a 3D real-time strategy game made with @@ -242,8 +248,10 @@ Recent updates: ### [Veloren][veloren] -![Veloren visual comparison](veloren.jpg) -_Veloren over the years_ +{{ image_figure( + alt="Veloren visual comparison" + src="https://github.com/veloren.jpg" + caption="Veloren over the years") }} [Veloren][veloren] is an open world, open-source voxel RPG inspired by Dwarf Fortress and Cube World. @@ -268,8 +276,10 @@ June's full weekly devlogs: "This Week In Veloren...": [#211][veloren-211], [#21 ### [macroquad] -![macroquad](macroquad_0_4.gif) -_Macroquad examples rendered by Metal API_ +{{ image_figure( + alt="macroquad" + src="https://github.com/macroquad_0_4.gif" + caption="Macroquad examples rendered by Metal API") }} Macroquad got ported to miniquad-0.4, supporting Metal on Mac and IOS. @@ -341,7 +351,7 @@ system/strategy for Ambient. ### [Rerun][rerun] -[Rerun][rerun] ([Discord][rerun-dis], [Github][rerun-gh]) is an open-source SDK +[Rerun][rerun] ([Discord][rerun-dis], [GitHub][rerun-gh]) is an open-source SDK for logging complex visual data paired with a visualizer for exploring that data over time. While its primary focus is on robotics and computer vision, it can be useful for all kinds of rapid prototyping & algorithm development. @@ -359,7 +369,7 @@ A few of the biggest highlights: There's a growing community on [Discord][rerun-dis] waiting for you to join in case you have any questions, comments or just want to follow the latest -development. The [Github project][rerun-gh] is MIT/Apache licensed and open to +development. The [GitHub project][rerun-gh] is MIT/Apache licensed and open to contribute for everyone, be it with suggestions, bugs or PRs. [rerun]: https://rerun.io diff --git a/content/news/048/index.md b/content/news/048/index.md index 459570800..d556a2141 100644 --- a/content/news/048/index.md +++ b/content/news/048/index.md @@ -109,8 +109,10 @@ _Discussions: [/r/rust](https://reddit.com/r/rust/comments/14p1fiw/colony_sim)_ ### [Open Combat][OpenCombat_website] -![OpenCombat completed HUD](opencombat.jpg) -_Game HUD is now more complete_ +{{ image_figure( + alt="OpenCombat completed HUD" + src="https://github.com/opencombat.jpg" + caption="Game HUD is now more complete") }} Open Combat ([Website][OpenCombat_website], [GitHub][OpenCombat_github], [Discord][OpenCombat_discord]) is a real-time tactical game @@ -131,8 +133,10 @@ to publishing the official demo of the game! ### [CyberGate][cybergate-yt] -![Universal quic server](cybergate.jpg) -_The browser uses webtransport (Left), the native uses quinn (Right)_ +{{ image_figure( + alt="Universal quic server" + src="https://github.com/cybergate.jpg" + caption="The browser uses webtransport (Left), the native uses quinn (Right)") }} CyberGate ([YouTube][cybergate-yt], [Discord][cybergate-dis]), CyberSoul is developing an ambitious multiplayer project, @@ -276,8 +280,10 @@ as how distant parallax can be an immersive replacement for ui and minimaps. ### [Veloren][veloren] -![Veloren visual comparison](veloren.jpg) -_The 0.15 release party map_ +{{ image_figure( + alt="Veloren visual comparison" + src="https://github.com/veloren.jpg" + caption="The 0.15 release party map") }} [Veloren][veloren] is an open world, open-source voxel RPG inspired by Dwarf Fortress and Cube World. @@ -541,7 +547,7 @@ and walks a reader through a toy GPU program written with wgpu. ![Rerun showing a large 3D point cloud](rerun.png) -[Rerun][rerun] ([Discord][rerun-dis], [Github][rerun-gh]) is an open-source SDK +[Rerun][rerun] ([Discord][rerun-dis], [GitHub][rerun-gh]) is an open-source SDK for logging complex visual data paired with a visualizer for exploring that data over time. While its primary focus is on robotics and computer vision, it can be useful for all kinds of rapid prototyping & algorithm development. @@ -563,7 +569,7 @@ A few of the biggest highlights: There's a growing community on [Discord][rerun-dis] waiting for you to join in case you have any questions, comments or just want to follow the latest -development. The [Github project][rerun-gh] is MIT/Apache licensed and open to +development. The [GitHub project][rerun-gh] is MIT/Apache licensed and open to contribute for everyone, be it with suggestions, bugs or PRs. [rerun]: https://rerun.io @@ -594,8 +600,10 @@ with the mipmap levels corresponding to different roughness values of the materi ### [bevy_xpbd] -![Balls held by string swinging and hitting each other in a Newton's cradle](bevy_xpbd.gif) -_Newton's cradle simulated using bevy_xpbd_ +{{ image_figure( + alt="Balls held by string swinging and hitting each other in a Newton's cradle" + src="https://github.com/bevy_xpbd.gif" + caption="Newton's cradle simulated using bevy_xpbd") }} [bevy_xpbd] by [@Jondolf] is a 2D and 3D physics engine based on Extended Position Based Dynamics for the Bevy game engine. @@ -644,8 +652,10 @@ borrow data from one of World, Resources or SyncResources. ### [Hanabi] -![Glowing particles circling and raising up](hanabi.gif) -_Hanabi effect entirely simulated on GPU thanks to the new Expression API of v0.7_ +{{ image_figure( + alt="Glowing particles circling and raising up" + src="https://github.com/hanabi.gif" + caption="Hanabi effect entirely simulated on GPU thanks to the new Expression API of v0.7") }} The [Hanabi] library ([GitHub][hanabi-github], [docs.rs][hanabi-docs]) is a modern VFX library for the [Bevy game engine][bevy]. It focuses on scale to produce @@ -683,9 +693,11 @@ See the [CHANGELOG][hanabi-changelog] for all details. ### [Iced][iced] -![olf primitives gradually fade out and damaged regions -are marked with red rectangles](iced-incremental.png) -_Visualisation of damaged regions during the incremental rendering_ +{{ image_figure( + alt="olf primitives gradually fade out and damaged regions +are marked with red rectangles" + src="https://github.com/iced-incremental.png" + caption="Visualisation of damaged regions during the incremental rendering") }} [Iced][iced] is a Rust GUI library focused on simplicity and type safety. diff --git a/content/news/049/index.md b/content/news/049/index.md index edd31c68d..2b09912d1 100644 --- a/content/news/049/index.md +++ b/content/news/049/index.md @@ -1,8 +1,8 @@ +++ title = "This Month in Rust GameDev #49 - August 2023" transparent = true -date = 2023-09-16 -draft = true +date = 2023-11-16 +draft = false +++ @@ -36,10 +36,6 @@ Feel free to send PRs about your own projects! - [Tooling Updates](#tooling-updates) - [Library Updates](#library-updates) - [Other News](#other-news) -- [Popular Workgroup Issues in Github](#popular-workgroup-issues-in-github) -- [Discussions](#discussions) -- [Requests for Contribution](#requests-for-contribution) -- [Jobs](#jobs) - ## Other News @@ -419,19 +383,6 @@ nanogltf comes with a a GL2+/Metal glTF miniquad-based [tribes-devlog]: https://uvizhe.im/posts/tribes-p2 -## Discussions - - - -## Requests for Contribution - - - -## Jobs - - - ------ That's all news for today, thanks for reading! diff --git a/content/news/050/OpenCombat202404.jpg b/content/news/050/OpenCombat202404.jpg new file mode 100644 index 000000000..dca23f61e Binary files /dev/null and b/content/news/050/OpenCombat202404.jpg differ diff --git a/content/news/050/index.md b/content/news/050/index.md new file mode 100644 index 000000000..177824dca --- /dev/null +++ b/content/news/050/index.md @@ -0,0 +1,371 @@ ++++ +title = "This Month in Rust GameDev #50 - April 2024" +transparent = true +date = 2024-05-03 +draft = false ++++ + + + + + +Welcome to the 50th issue of the Rust GameDev Workgroup's +monthly newsletter. +[Rust] is a systems language pursuing the trifecta: +safety, concurrency, and speed. +These goals are well-aligned with game development. +We hope to build an inviting ecosystem for anyone wishing +to use Rust in their development process! +Want to get involved? [Join the Rust GameDev working group!][join] + +You can follow the newsletter creation process +by watching [the coordination issues][coordination]. +Want something mentioned in the next newsletter? +[Send us a pull request][pr]. +Feel free to send PRs about your own projects! + +[Rust]: https://rust-lang.org +[join]: https://github.com/rust-gamedev/wg#join-the-fun +[pr]: https://github.com/rust-gamedev/rust-gamedev.github.io +[coordination]: https://github.com/rust-gamedev/rust-gamedev.github.io/issues?q=label%3Acoordination + +- [Announcements](#announcements) +- [Game Updates](#game-updates) +- [Engine Updates](#engine-updates) +- [Learning Material Updates](#learning-material-updates) +- [Library Updates](#library-updates) +- [Other News](#other-news) +- [Discussions](#discussions) + +## Announcements + +*Please fill out [this survey][survey] before skipping this section! More info below!* + +Hey everyone, it's been a while! As you've certainly noticed, the newsletter has +been on 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]. + +We're back now though! A couple of community members, Jan Hohenheim +([@janhohenheim]) and Thierry Berger ([@Vrixyz]), have led the revival of the +newsletter. This includes making changes requested by the community, and +improving sustainability for the long term. + +You can read more about the changes being made in [this blog +post][newsletter-changes-blog]. + +### Community Survey + +This restructuring is also a good time to improve the content of the newsletter. +We've got some community feedback on the [Rust GameDev Discord][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**. We will be evaluating the +[survey] results in an upcoming blog post, so stay tuned for that. + +That's all for now. Have fun reading! + +[august-news]: https://gamedev.rs/news/049/ +[newsletter-changes-blog]: https://gamedev.rs/blog/newsletter-changes/ +[@janhohenheim]: https://github.com/janhohenheim +[@Vrixyz]: https://github.com/Vrixyz +[survey]: https://forms.gle/oeSb46twWsxRKYJe7 +[Discord]: https://discord.gg/game-development-in-rust-676678179678715904 + +## Game Updates + +### [Way of Rhea][wor] + +[![Way of Rhea](wor.jpg)][wor-trailer] + +[Way of Rhea][wor] just got a release date: it will be coming to Steam on +**May 20th, 2024**! + +Way of Rhea ([Steam](https://store.steampowered.com/app/1110620/Way_of_Rhea/)) is a color-based puzzle game with difficult puzzles, but forgiving +mechanics being developed by [@masonremaley] in a custom Rust engine. + +You can support development by [wishlisting Way of Rhea on Steam][wor], or +[signing up for the mailing list][wor-mail]. + +Recently, a [closed beta][wor-closed-beta] began. All characters now have voices, and various [speedrunning features][wor-speedrun] were added. +Older CPUs are [now supported][wor-avx]. +Secrets were made harder, and an [in-game achievement UI][wor-achievements] was created. + +For the full changelog, see the [release notes][wor-release-notes]. + +[@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-speedrun]: https://clan.cloudflare.steamstatic.com/images//35599024/6ee82d4e0105f073082c83626e37933e682b5936.png +[wor-mail]: https://anthropicstudios.com/newsletter/signup/tech +[wor-release-notes]: https://store.steampowered.com/news/app/1110620 +[wor-avx]: https://store.steampowered.com/news/app/1110620/view/4118050466869150657 +[wor-achievements]: https://clan.cloudflare.steamstatic.com/images//35599024/573f81c1ebce54d9efedcd693fcbe684a5629c7f.png + +### [sm64jsarchive][sm64jsarchive] + +![Super Mario 64 JavaScript Archive](sm64jsarchive.jpg) + +[SM64JSARCHIVE][sm64jsarchive] is an actively maintained fork of [sm64js]: a decompilation project of Super Mario 64 to JavaScript. +Additional sidenote: The MMO servers are not always running for sm64jsarchive. + +The backend server, which is written in Rust, +is now live at + +A successful stress test for the MMO feature was run on April 10th. + +[sm64jsarchive]: https://sm64jsarchive.com +[sm64js]: https://github.com/sm64js/sm64js/tree/MMO + +### [Open Combat][OpenCombat_website] + +{{ image_figure( + alt="OpenCombat: demo available soon" + src="https://github.com/OpenCombat202404.jpg" + caption="Official demo available soon") }} + +Open Combat ([GitHub][OpenCombat_github], [Discord][OpenCombat_discord]) is a real-time tactical game +which takes place during World War II. + +The basic game logic and HUD are now complete, +and the high-definition map for the demo is finished. + +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 +[OpenCombat_discord]: https://discord.gg/6P2vtFh2Px +[OpenCombat_release]: https://github.com/buxx/OpenCombat/releases + +### [Times of Progress][times-of-progress-steam] + +![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], [Twitter/X][times-of-progress-twitter], [Mastodon][times-of-progress-mastodon]) +is an upcoming city builder game set during the industrial revolution. + +In April, they added lots of UI widgets and improved performance by refactoring the orders system. + +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]. + +[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 +[times-of-progress-mastodon]: https://mastodon.online/@elmowilk + +### Monk Tower + +![Monk Tower Screen shot](monk_tower.png) + +Monk Tower ([itch.io][monk-tower-itch], [Google Play][monk-tower-play], [Github][monk-tower-github]) +is a tiny coffee-break roguelike game, intended for short runs (ca. 15mins). + +The gameplay is quite distilled and revolves mostly around resource management. +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's source code also comes with a custom WGPU-based 2D framework. + +_Discussions: ([/r/roguelikes][monk-tower-reddit])_ + +[monk-tower-itch]: https://maciekglowka.itch.io/monk-tower +[monk-tower-play]: https://play.google.com/store/apps/details?id=com.maciejglowka.monk_tower +[monk-tower-github]: https://github.com/maciekglowka/tower-rl +[monk-tower-reddit]: https://www.reddit.com/r/roguelikes/comments/1butvew/monk_tower_a_coffeebreak_roguelike_google_play/ + +### You are Merlin + +![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](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 visual theme such as Zelda, Warcraft, and Fallout. The web version also supports mobile devices. + +Although fairly simple, this first version provides a good foundation for building more features in later updates. + +_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://www.reddit.com/r/rust_gamedev/comments/1c9k1kb/you_are_merlin_a_text_adventure_game/ + +### [Jumpy] + +{{ image_figure( + alt="Machine Gun and Periscope" + src="https://github.com/jumpy.png" + caption="Jumpy: Machine gun and Periscope") }} + +[Jumpy] ([GitHub][Jumpy], [Discord][jumpy_discord], [Twitter][jumpy_twitter]) by +[Spicy Lobster][spicy_lobster] is a pixel-style, tactical 2D shooter with a fishy +theme. + +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]. + +On the treasure map for the near future is improving UX and new player experience, +polish and improvements on match scoring / round transitions, and more awesome weapons. + +_Discussions: [GitHub][jumpy_discussions], [Twitter][jumpy_twitter]_ + +[Jumpy]: https://github.com/fishfolks/jumpy +[jumpy_ragdoll]: https://github.com/fishfolk/jumpy/pull/932 +[jumpy_discussions]: https://github.com/fishfolks/jumpy/discussions +[jumpy_twitter]: https://twitter.com/spicylobsterfam +[jumpy_discord]: https://discord.gg/4smxjcheE5 +[spicy_lobster]: https://spicylobster.itch.io/ + +## Engine Updates + +### Bottomless-Pit 0.3 + +![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 check out 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: + +- Custom Shader Support +- Basic rendering +- Text rendering +- Input and window event handling + +[Bottomless-Pit_Website]: https://eggshark.dev/bp-examples +[Bottomless-Pit_cratesio]: https://crates.io/crates/bottomless-pit +[Bottomless-Pit_github]: https://github.com/EggShark/bottomless-pit + +## Learning Material Updates + +### Building games for Android with Rust + +[@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. + +Topics mentioned: + +- 'Window' creation (via winit) +- Android app's lifecycle vs. the WGPU surface creation +- User data storage +- System UI hiding via jni and Android API +- Building AAB files to meet Google Play requirements + +[android-games-blog]: https://maciejglowka.com/blog/building-games-for-android-with-rust/ +[@maciekglowka]: https://github.com/maciekglowka + +### 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 are 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 rhombus-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. +It comes with multiple types of transports (WebTransport, WebSocket, UDP, etc.) +and supports replication techniques like client-side prediction, server interpolation, interest management, and more! +Check out the [examples][lightyear_examples]! + +The latest release, [0.13][lightyear_release], brings two big new features: +- **Steam support**: you can now use the Steamworks SDK as your transport layer, which lets you use the Valve network! +Note that lightyear supports running multiple transports in parallel, so it's possible to have cross-play between Steam and non-Steam users. +- **Listen-server mode**: it is now possible to run a server and a client in the same process/bevy app. +This can be useful to avoid the costs of a dedicated server, or to have a similar codebase between singleplayer and multiplayer. + +[Example (with 300ms of latency)](https://github.com/cBournhonesque/lightyear/assets/8112632/ee547c32-1f14-4bdc-9e6d-67f900af84d0) + +[lightyear_website]: https://github.com/cBournhonesque/lightyear +[lightyear_release]: https://github.com/cBournhonesque/lightyear/releases/tag/0.13.0 +[lightyear_examples]: https://github.com/cBournhonesque/lightyear/tree/main/examples + +## Other News + +- 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 + +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: + +- [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/) + +------ + +That's all news for today, thanks for reading! + +Want something mentioned in the next newsletter? +[Send us a pull request][pr]. + +Also, subscribe to [@rust_gamedev on Twitter][@rust_gamedev] +or [/r/rust_gamedev subreddit][/r/rust_gamedev] if you want to receive fresh news! + +**Discuss this post on**: +[/r/rust_gamedev](https://www.reddit.com/r/rust_gamedev/comments/1cja5v8/this_month_in_rust_gamedev_april_edition_released/), +[rust@lemmy.ml](https://lemmy.ml/post/15196466), +[Hacker News](https://news.ycombinator.com/item?id=40248347), +[Mastodon](https://mastodon.gamedev.place/@rust_gamedev/112377678490780983), +[Twitter](https://twitter.com/rust_gamedev/status/1786406704629829935), +[Discord](https://discord.gg/yNtPTb2). + +[/r/rust_gamedev]: https://reddit.com/r/rust_gamedev +[@rust_gamedev]: https://twitter.com/rust_gamedev diff --git a/content/news/050/jumpy.png b/content/news/050/jumpy.png new file mode 100644 index 000000000..263760128 Binary files /dev/null and b/content/news/050/jumpy.png differ diff --git a/content/news/050/monk_tower.png b/content/news/050/monk_tower.png new file mode 100644 index 000000000..a801a728d Binary files /dev/null and b/content/news/050/monk_tower.png differ diff --git a/content/news/050/sm64jsarchive.jpg b/content/news/050/sm64jsarchive.jpg new file mode 100644 index 000000000..d9a687de1 Binary files /dev/null and b/content/news/050/sm64jsarchive.jpg differ diff --git a/content/news/050/times_of_progress.jpg b/content/news/050/times_of_progress.jpg new file mode 100644 index 000000000..c13c0a229 Binary files /dev/null and b/content/news/050/times_of_progress.jpg differ diff --git a/content/news/050/wor.jpg b/content/news/050/wor.jpg new file mode 100644 index 000000000..05c2cda4f Binary files /dev/null and b/content/news/050/wor.jpg differ diff --git a/content/news/050/you-are-merlin.png b/content/news/050/you-are-merlin.png new file mode 100644 index 000000000..9cb2cc5e6 Binary files /dev/null and b/content/news/050/you-are-merlin.png differ 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/bevy_rustunit_meetup_3.jpg b/content/news/051/bevy_rustunit_meetup_3.jpg new file mode 100644 index 000000000..209a51e64 Binary files /dev/null and b/content/news/051/bevy_rustunit_meetup_3.jpg differ diff --git a/content/news/051/bevy_rustunit_meetup_4.jpg b/content/news/051/bevy_rustunit_meetup_4.jpg new file mode 100644 index 000000000..781f9872a Binary files /dev/null and b/content/news/051/bevy_rustunit_meetup_4.jpg differ diff --git a/content/news/051/cybergate.gif b/content/news/051/cybergate.gif new file mode 100644 index 000000000..0dd78502f Binary files /dev/null and b/content/news/051/cybergate.gif 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 new file mode 100644 index 000000000..454399959 --- /dev/null +++ b/content/news/051/index.md @@ -0,0 +1,386 @@ ++++ +title = "This Month in Rust GameDev #51 - May 2024" +transparent = true +date = 2024-06-05 +draft = false ++++ + + + + + +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. +These goals are well-aligned with game development. +We hope to build an inviting ecosystem for anyone wishing +to use Rust in their development process! +Want to get involved? [Join the Rust GameDev working group!][join] + +You can follow the newsletter creation process +by watching [the coordination issues][coordination]. +Want something mentioned in the next newsletter? +[Send us a pull request][pr]. +Feel free to send PRs about your own projects! + +[Rust]: https://rust-lang.org +[join]: https://github.com/rust-gamedev/wg#join-the-fun +[pr]: https://github.com/rust-gamedev/rust-gamedev.github.io +[coordination]: https://github.com/rust-gamedev/rust-gamedev.github.io/issues?q=label%3Acoordination + +- [Announcements](#announcements) +- [Game Updates](#game-updates) +- [Engine Updates](#engine-updates) +- [Learning Material Updates](#learning-material-updates) +- [Tooling Updates](#tooling-updates) +- [Other News](#other-news) +- [Misc. Links](#misc-links) + + + +## 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]: + +### 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] + +{{ image_figure( + alt="Way of Rhea" + src="https://github.com/wor.jpg" + caption="Way of Rhea: a puzzle game. Available on Steam." + link="https://store.steampowered.com/app/1110620/Way_of_Rhea/?utm_campaign=tmirgd&utm_source=n51") }} + +[Way of Rhea][wor] released on May 20th as part of the +[Cerebral Puzzle Showcase][wor-cps]! + +[![Way of Rhea](wor-animated.gif)][wor] + +Way of Rhea is a color-based puzzle game with difficult puzzles, but +forgiving mechanics developed by [Mason Remaley] in a custom Rust engine. + +You can support development by [purchasing Way of Rhea on Steam][wor], or +[signing up for the mailing list][wor-mail] to hear about future games. + +[Mason Remaley]: https://masonremaley.com/ +[wor]: https://store.steampowered.com/app/1110620/Way_of_Rhea/?utm_campaign=tmirgd&utm_source=n51 +[wor-mail]: https://anthropicstudios.com/newsletter/signup/tech +[wor-cps]: https://www.cerebralpuzzleshowcase.com/ + +### [Untitled Pixel Wizard Game][pixel-wizards] + +{{ image_figure( + alt="A target being destroyed by a rudimentary flame thrower spell" + src="https://github.com/untitled-pixel-wizards-game.gif" + caption="A deadly foe meets its end.", + link="https://slowrush.dev/") }} + +[Untitled Pixel Wizard Game][pixel-wizards] is a local-multiplayer [Noita]-like platformer about +killing baddies using spells powered by pixel physics. + +Over the last few months, the falling sand simulation learned to play (somewhat) nicely with Rapier +rigid bodies; see [Bridging Physics Worlds][pixel-wizards-bridging-physics-worlds] and subsequent updates. + +This month: + +- [Tilemapping via LDTK][pixel-wizards-tilemapping]: levels got just a tiny bit prettier. +- [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 +[Noita]: https://store.steampowered.com/app/881100/Noita/ +[pixel-wizards-bridging-physics-worlds]: https://www.slowrush.dev/news/bridging-physics-worlds/ +[pixel-wizards-targets]: https://www.slowrush.dev/news/target-practice/ +[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/ +[Leaving Rust game dev after 3 years]: https://loglog.games/blog/leaving-rust-gamedev/ + +### [mirr/orb] + +{{ image_figure( + alt="mirr/orb" + src="https://github.com/mirrorb.png" + caption="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. + +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] + +{{ image_figure( + alt="Improved Hammer Destruction" + src="https://github.com/cybergate.gif" + caption="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, 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]. + +[cybergate-shorts]: https://youtube.com/@cyber-gate/shorts +[cybergate-discord]: https://discord.gg/P3D8weeQ7Z +[cybergate-fuse]: https://www.youtube.com/shorts/ewnZ6VVSYMM + +## Engine Updates + +### Macroquad Newsletter + +{{ image_figure( + alt="quad-gl" + src="https://github.com/twiq_3d_helmet.gif" + caption='"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. + +This month overall polish, developer experience, performance optimization, and basic 3d visualization have been worked on. + +[*Quad]: https://www.patreon.com/posts/on-buses-and-101117631 + +### [Fyrox 0.34][fyrox-release] + +{{ image_figure( + alt="Fyrox editor" + src="https://github.com/fyrox-editor.png" + caption="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 + +{{ image_figure( + alt="Bevy repeated textures" + src="https://github.com/bevy_rep.jpg" + caption="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 + +{{ image_figure( + alt="XKCD Machine" + src="https://github.com/xkcd_machine.gif" + caption="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]. + +Machine is written in React/Typescript, and uses [Rapier][xkcd_rapier]: a physics engine written in Rust. + +[xkcd_machine_blogpost]: https://chromakode.com/post/xkcd-machine/ +[xcd_machine_playable]: https://xkcd.com/2916/ +[xkcd_rapier]: https://rapier.rs/ + +## Tooling Updates + +### [Rusty Playdate] + +{{ image_figure( + alt="The Playdate console" + src="https://github.com/playdate.png" + caption="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]. +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: +- Partial Lua scripting support +- Support for devices connected to macOS via USB hub +- Stabilize packaging on Windows enough to add automatic tests +- Stabilization for various parts of the API + +_Discussions: [GitHub][Rusty Playdate Gh-disc], [Matrix][Rusty Playdate Matrix]._ + +[Rusty Playdate]: https://github.com/boozook/playdate +[Rusty Playdate Gh-disc]: https://github.com/boozook/playdate/discussions +[Rusty Playdate Masto]: https://gamedev.social/@playdaters +[Rusty Playdate Matrix]: https://matrix.to/#/#playdate.rs:matrix.org +[playdate]: https://play.date/ + +## Other News + + + +### Bevy rustunit meetup #3 + +{{ image_figure( + alt="Bevy meetup YouTube extract" + src="https://github.com/bevy_rustunit_meetup_3.jpg" + caption="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 +- Julian - Animating 3D Characters with Bevy +- Niklas - Learnings from a Bevy game template + +Check out [the recording][rustunit_bevy_meetup_3_youtube] +and join [the meetup group][rustunit_bevy_meetup_event] to get notified of future events. + +[rustunit_bevy_meetup_3_youtube]: https://www.youtube.com/watch?v=Fyr1ud1OIpU + +### Bevy rustunit meetup #4 + +{{ image_figure( + alt="Bevy meetup YouTube extract" + src="https://github.com/bevy_rustunit_meetup_4.jpg" + caption="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 +- Lorenz - Hooking into the Bevy Rendering Pipeline +- Jos - Recreating Townscaper using Rust & Bevy + +Check out [the recording][rustunit_bevy_meetup_4_youtube] +and join [the meetup group][rustunit_bevy_meetup_event] to get notified of future events. + +[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/ + + +### RustNL + +[RustNL][rustnl_main_website] happened May 7. & 8. in Delft, Netherlands. + +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]. + +Special mention to the following talks, relevant to game development: +- [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]. + +[rustnl_main_website]: https://2024.rustnl.org/ +[rustnl_games_youtube]: https://www.youtube.com/watch?v=XLefuzE-ABU&t=7583s +[rustnl_xilem_talk]: https://www.youtube.com/watch?v=521NfGf7AR0&t=19308s +[rustnl_xilem_intro]: https://raphlinus.github.io/rust/gui/2022/05/07/ui-architecture.html +[rustnl_kevin_boos_talk]: https://www.youtube.com/watch?v=521NfGf7AR0&t=2928s +[rustnl_michael_melchiore_talk]: https://www.youtube.com/watch?v=XLefuzE-ABU&t=3898s +[rustnl_bevy_engine]:https://bevyengine.org/ + +## Misc. Links + +### New libraries + +- [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 + +### Library Updates + +- [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 + +### Blog Posts + +- [Architectural Ruminations][pixel-wizards-arch]: reflections on using Rust for game development, + prompted by LogLog Games's [Leaving Rust game dev after 3 years] + +### Videos + +- [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’ + +------ + +That's all news for today, thanks for reading! + +Want something mentioned in the next newsletter? +[Send us a pull request][pr]. + +Also, subscribe to our socials if you want to receive fresh news! +- X/Twitter: [@rust_gamedev][@x_rust_gamedev] +- Mastodon: [@rust_gamedev][@mastodon_rust_gamedev] +- Reddit: [/r/rust_gamedev][/r/rust_gamedev] + +**Discuss this post on**: +[/r/rust_gamedev](https://www.reddit.com/r/rust_gamedev/comments/1d8we3t/this_month_in_rust_gamedev_may_edition_released/), +[Lemmy](https://lemmy.world/post/16213742), +[Mastodon](https://mastodon.gamedev.place/@rust_gamedev/112565328837537528), +[X / Twitter](https://x.com/rust_gamedev/status/1798415636999307416), +[Discord](https://discord.gg/yNtPTb2). + +[/r/rust_gamedev]: https://reddit.com/r/rust_gamedev +[@x_rust_gamedev]: https://twitter.com/rust_gamedev +[@mastodon_rust_gamedev]: https://mastodon.gamedev.place/@rust_gamedev diff --git a/content/news/051/mirrorb.png b/content/news/051/mirrorb.png new file mode 100644 index 000000000..0b3923e66 Binary files /dev/null and b/content/news/051/mirrorb.png differ diff --git a/content/news/051/playdate.png b/content/news/051/playdate.png new file mode 100644 index 000000000..62b7d033a Binary files /dev/null and b/content/news/051/playdate.png differ diff --git a/content/news/051/twiq_3d_helmet.gif b/content/news/051/twiq_3d_helmet.gif new file mode 100644 index 000000000..f4a704f22 Binary files /dev/null and b/content/news/051/twiq_3d_helmet.gif differ diff --git a/content/news/051/untitled-pixel-wizards-game.gif b/content/news/051/untitled-pixel-wizards-game.gif new file mode 100644 index 000000000..06c2c98d6 Binary files /dev/null and b/content/news/051/untitled-pixel-wizards-game.gif differ diff --git a/content/news/051/wor-animated.gif b/content/news/051/wor-animated.gif new file mode 100644 index 000000000..4c624bba9 Binary files /dev/null and b/content/news/051/wor-animated.gif differ diff --git a/content/news/051/wor.jpg b/content/news/051/wor.jpg new file mode 100644 index 000000000..0f23547bd Binary files /dev/null and b/content/news/051/wor.jpg differ diff --git a/content/news/051/xkcd_machine.gif b/content/news/051/xkcd_machine.gif new file mode 100644 index 000000000..2085a4422 Binary files /dev/null and b/content/news/051/xkcd_machine.gif differ diff --git a/content/news/052/berdicles.jpg b/content/news/052/berdicles.jpg new file mode 100644 index 000000000..af0928d3b Binary files /dev/null and b/content/news/052/berdicles.jpg differ diff --git a/content/news/052/bevy_hanabi_trails.gif b/content/news/052/bevy_hanabi_trails.gif new file mode 100644 index 000000000..c2ca9aedf Binary files /dev/null and b/content/news/052/bevy_hanabi_trails.gif differ diff --git a/content/news/052/bevy_light_2d.gif b/content/news/052/bevy_light_2d.gif new file mode 100644 index 000000000..ca0e65fd5 Binary files /dev/null and b/content/news/052/bevy_light_2d.gif differ diff --git a/content/news/052/bevypunk.jpg b/content/news/052/bevypunk.jpg new file mode 100644 index 000000000..5793c47e1 Binary files /dev/null and b/content/news/052/bevypunk.jpg differ diff --git a/content/news/052/egui_ratatui.jpg b/content/news/052/egui_ratatui.jpg new file mode 100644 index 000000000..3e11e66c4 Binary files /dev/null and b/content/news/052/egui_ratatui.jpg differ diff --git a/content/news/052/godot-rust.jpg b/content/news/052/godot-rust.jpg new file mode 100644 index 000000000..7cf0cd82d Binary files /dev/null and b/content/news/052/godot-rust.jpg differ diff --git a/content/news/052/gunbug.jpg b/content/news/052/gunbug.jpg new file mode 100644 index 000000000..075cc4a70 Binary files /dev/null and b/content/news/052/gunbug.jpg differ diff --git a/content/news/052/haalka.mp4 b/content/news/052/haalka.mp4 new file mode 100644 index 000000000..16000db7a Binary files /dev/null and b/content/news/052/haalka.mp4 differ diff --git a/content/news/052/index.md b/content/news/052/index.md new file mode 100644 index 000000000..f9ff6e576 --- /dev/null +++ b/content/news/052/index.md @@ -0,0 +1,538 @@ ++++ +title = "This Month in Rust GameDev #52 - June 2024" +transparent = true +date = 2024-07-03 +draft = false ++++ + + + + + +Welcome to the 52th issue of the Rust GameDev Workgroup's +monthly newsletter. +[Rust] is a systems language pursuing the trifecta: +safety, concurrency, and speed. +These goals are well-aligned with game development. +We hope to build an inviting ecosystem for anyone wishing +to use Rust in their development process! +Want to get involved? [Join the Rust GameDev working group!][join] + +You can follow the newsletter creation process +by watching [the coordination issues][coordination]. +Want something mentioned in the next newsletter? +[Send us a pull request][pr]. +Feel free to send PRs about your own projects! + +[Rust]: https://rust-lang.org +[join]: https://github.com/rust-gamedev/wg#join-the-fun +[pr]: https://github.com/rust-gamedev/rust-gamedev.github.io +[coordination]: https://github.com/rust-gamedev/rust-gamedev.github.io/issues?q=label%3Acoordination + +- [Announcements](#announcements) +- [Game Updates](#game-updates) +- [Engine Updates](#engine-updates) +- [Learning Material Updates](#learning-material-updates) +- [Tooling Updates](#tooling-updates) +- [Library Updates](#library-updates) +- [Interviews](#interviews) +- [Blog Posts](#blog-posts) +- [Jobs](#jobs) +- [Engine Newsletters](#engine-newsletters) +- [Future News](#future-news) + + + +## Announcements + +For years, our readers have asked for a way to subscribe to this newsletter by email. This again came up in our [recent survey][survey]. +We're happy to announce that this feature is now available! When you visit our [homepage], +you can now scroll down and find an email subscription form. +We'll send you an email whenever a new post is published, which currently is once per month. + +The emails are currently sent from [gamedev-rs@proton.me](mailto:gamedev-rs@proton.me). +We will switch this to an actual @gamedev.rs address in the future. Please tell us if you encounter any issues with the emails. + +[survey]: https://gamedev.rs/blog/survey-02/ +[homepage]: https://gamedev.rs/ + +## Game Updates + +### [Untitled Pixel Wizards Game][pixel-wizards] + +{{ video_figure( + type="video/mp4", + src="https://github.com/untitled-pixel-wizards-game.mp4", + 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: + +- [Pew Pew Pew][pixel-wizards-update-1]: baddies learned to shoot at players. +- [Hot Pursuit][pixel-wizards-update-2]: baddies also learned to chase players! (They're real smart.) +- [Status Update][pixel-wizards-update-3]: physically-simulated pixels learn to burn & poison players & baddies. +- [Ragdolls][pixel-wizards-update-4]: corpses of dead baddies learn to tumble around all realistic-like. +- [Fiddling with Fire][pixel-wizards-update-5]: the fire mechanic figures out how to better burn baddies. + +[pixel-wizards]: https://slowrush.dev +[Noita]: https://store.steampowered.com/app/881100/Noita/ +[pixel-wizards-update-1]: https://www.slowrush.dev/news/pew-pew/ +[pixel-wizards-update-2]: https://www.slowrush.dev/news/hot-pursuit/ +[pixel-wizards-update-3]: https://www.slowrush.dev/news/status-update/ +[pixel-wizards-update-4]: https://www.slowrush.dev/news/ragdolls/ +[pixel-wizards-update-5]: https://www.slowrush.dev/news/fiddling-with-fire/ + + +### [Way of Rhea][wor] + +{{ image_figure( + alt="Way of Rhea" + src="https://github.com/wor.jpg" + caption="Way of Rhea: a puzzle game. Available on Steam and 20% off for the Steam Summer Sale!", + link="https://store.steampowered.com/app/1110620/Way_of_Rhea/?utm_campaign=tmirgd&utm_source=n52") }} + +Way of Rhea ([Steam][wor], [Newsletter][wor-mail]) is a color-based puzzle game with difficult puzzles, but +forgiving mechanics developed by [Mason Remaley] in a custom Rust engine. Since its release in May, +Mason has fixed many bugs and implemented quality-of-life improvements. + +They recently conducted an [AMA on /r/rust_gamedev][ama] about their experience +developing and shipping a game after six years in Rust. +They then curated the questions and answers into a [blog post][wor-ama]. +It includes questions about Rust, libraries, experiences writing a custom game engine, and game development in general. + +[Mason Remaley]: https://masonremaley.com/ +[wor]: https://store.steampowered.com/app/1110620/Way_of_Rhea/?utm_campaign=tmirgd&utm_source=n52 +[wor-mail]: https://anthropicstudios.com/newsletter/signup/tech +[ama]: https://www.reddit.com/r/rust_gamedev/comments/1cwqcfl/i_spent_6_years_developing_a_puzzle_game_in_rust/ +[wor-ama]: https://gamesbymason.com/2024/06/01/wor-ama/ + +### [Gunbug][gunbug] + +{{ image_figure( + alt="Gunbugs shooting at a bunch of eggplants" + src="https://github.com/gunbug.jpg" + link="https://store.steampowered.com/app/2946990?utm_source=this_month_in_rust") }} + +Gunbug is a 2D online co-op horde survival shoot'em up game. + +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 [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. + +[gunbug]: https://store.steampowered.com/app/2946990?utm_source=this_month_in_rust +[xbuild]: https://github.com/rust-mobile/xbuild +[Bevy]: https://bevyengine.org +[bevy_rapier]: https://github.com/dimforge/bevy_rapier +[bevy_kira_audio]: https://github.com/NiklasEi/bevy_kira_audio +[renet]: https://github.com/lucaspoffo/renet + +## Engine Updates + +### [godot-rust] + +![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/). + +After quite a bit of development on GitHub, the Godot 4 bindings are now available on [crates.io](https://crates.io/crates/godot) -- +you can immediately get started using +`cargo add godot`. Furthermore, the GDExtension API level can now be specified with a Cargo feature, e.g. `api-4-1`. + +The `ScriptInstance` API has matured a lot over the past months. This feature allows users to write Godot scripts in Rust, which can be +attached to nodes (just like GDScript). Scripts allow for quickly attaching/detaching functionality in a scene. + +The overall API has seen several consistency improvements: reorganized modules, `self`/`&self` receivers on geometric types, +easier element access for `Array`/`Dictionary`/`Packed*Array`. The library has also benefited from Rust's +[`#[diagnostic::on_unimplemented]`][gd-diagnostic] to improve user-facing error messages. + +_Discussions: +[/r/rust](https://www.reddit.com/r/rust/comments/1dnmjtl/godotrust_now_on_cratesio_with_the_godot_crate/), +[Mastodon](https://mastodon.gamedev.place/@GodotRust/112673330814149117), +[X](https://x.com/GodotRust/status/1805327592222081482)_ + +_See also the [devlog article][gd-dev-june]._ + +[@Bromeon]: https://github.com/Bromeon +[gd-dev-june]: https://godot-rust.github.io/dev/june-2024-update +[gd-diagnostic]: https://blog.rust-lang.org/2024/05/02/Rust-1.78.0.html#diagnostic-attributes +[gd-discord]: https://discord.gg/aKUCJ8rJsc +[gd-github]: https://github.com/godot-rust/gdext +[gd-mastodon]: https://mastodon.gamedev.place/@GodotRust +[gd-twitter]: https://twitter.com/GodotRust +[godot-rust]: https://godot-rust.github.io + +### [Bevy 0.14 Release Candidate][bevy-0.14-rc] + +{{ image_figure( + alt="Sharp Screen-Space Reflections in Bevy 0.14" + src="https://github.com/ssr.jpg") }} + +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]: + +### 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 0.5][Rusty Playdate] + +{{ image_figure( + alt="The Playdate console" + src="https://github.com/051/playdate.png") }} + +[Rusty Playdate] ([GitHub][Rusty Playdate], [Mastodon][Rusty Playdate Masto]) by [@boozook](https://github.com/boozook) +is a large set of crates and tools for the full cycle of creating games for the [Playdate handheld console][playdate]. + +A big part of the Rusty Playdate project is the [`cargo-playdate`][cargo-playdate gh] tool that functions as a build system. +It works as a cargo-plugin as well as a standalone, and does several things: +- It manages the compilation of your program, +- builds assets for the crate and its dependencies, +- generates a manifest, +- and assembles it all into a bundle that runs on the device or a simulator. + +In this month `cargo-playdate` v0.5 has been [released][Rusty Playdate Release] and received massive refactoring, bugfixes and new features: + +- support for [cargo's auto-targets][cargo-target-auto-discovery], i.e. targets such as `bin` or `example` that aren't declared in the Cargo.toml +- [target-specific package-info][pdb-pdxinfo-override] is inherited from the main package-info +- `package.metadata.playdate.options` is inherited from the `workspace.metadata` +- incremental builds now work as expected + + +The register decoder in the [`pd-symbolize-crashlog`][playdate-symbolize-v0.2.0] was also updated. +It now properly decodes all available registers such as +PSR, +CFSR, and +HSFR. + +_Discussions: [GitHub][Rusty Playdate Gh-discuss], [Matrix][Rusty Playdate Matrix]._ + +[playdate-symbolize-v0.2.0]: https://crates.io/crates/playdate-symbolize/0.2.0 +[cargo-target-auto-discovery]: https://doc.rust-lang.org/cargo/reference/cargo-targets.html#target-auto-discovery +[pdb-pdxinfo-override]: https://github.com/boozook/playdate/blob/main/support/build/README.md#target-specific-package-info "More about target-specific package-info" +[cargo-playdate gh]: https://github.com/boozook/playdate/tree/main/cargo "cargo-playdate tool is a part of 'Rusty Playdate' project" +[Rusty Playdate Release]: https://github.com/boozook/playdate/releases/tag/2024.06.18 "Release from June 18, 2024" +[Rusty Playdate]: https://github.com/boozook/playdate +[Rusty Playdate Gh-discuss]: https://github.com/boozook/playdate/discussions +[Rusty Playdate Masto]: https://gamedev.social/@playdaters +[Rusty Playdate Matrix]: https://matrix.to/#/#playdate.rs:matrix.org +[playdate]: https://play.date/ "Playdate is a fairly new console reminiscent of a GameBoy with a crank handle geared towards indie games." + + +## Library Updates + +### [egui_ratatui][egui_ratatui] + +{{ image_figure( + alt="egui_ratatui running in Bevy" + src="https://github.com/egui_ratatui.jpg") }} + +[egui_ratatui][egui_ratatui] by [gold-silver-copper][gold] is an [egui][egui] widget that is also a [ratatui][ratatui] backend. +It allows you to create Terminal User Interfaces (TUIs) inside egui. +You can try out the [web demo][erat_web] to see it in action. + +The current release is the product of months of iteration, and is now "stable". +It is Wasm compatible and engine agnostic: use it in Bevy, *Quad, eframe, pixels, etc. + +`egui_ratatui` is currently being used for the development of a game and +educational software at a startup with no issues so far. + +[egui_ratatui]: https://github.com/gold-silver-copper/egui_ratatui +[gold]: https://github.com/gold-silver-copper +[ratatui]: https://github.com/ratatui-org/ratatui +[egui]: https://github.com/emilk/egui +[erat_web]: https://gold-silver-copper.github.io/ + +### [FMOD-oxide][fmod-oxide] + +FMOD-oxide brings 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] + +{{ image_figure( + alt="Bevypunk: a recreation of Cyberpunk 2077's UI made with Lunex" + src="https://github.com/bevypunk.jpg") }} + +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. + +You can get started by reading the [bevy_lunex book][bevy-lunex-book]. + +[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] + +{{ video_figure(type="video/mp4", src="https://github.com/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 + +### [bevy_light_2d][bevy_light_2d] + +{{ image_figure( + alt="A candle shining 2D light" + src="https://github.com/bevy_light_2d.gif" + caption="A candle shining 2D light") }} + +bevy_light_2d is a new general purpose 2D lighting for the Bevy game engine. +Designed to be simple to use, yet expressive enough to fit a variety of needs. Features include: + +- Component driven design +- Configurable point lights +- Camera-specific ambient light +- Single-camera rendering + +[bevy_light_2d]: https://github.com/jgayfer/bevy_light_2d + +### [bevy_hanabi][bevy_hanabi] 0.11 + +{{ image_figure( + alt="Trails in Hanabi" + src="https://github.com/bevy_hanabi_trails.gif" + caption="Trails in Hanabi") }} + +Hanabi is a GPU particle system plugin for the Bevy game engine. +The most notable new feature in [bevy_hanabi 0.11][bevy_hanabi] is support for trails and ribbons. + +[bevy_hanabi]: https://github.com/djeedai/bevy_hanabi + +### [berdicles][berdicles] + +{{ image_figure( + alt="A fountain of particles" + src="https://github.com/berdicles.jpg" + caption="A fountain of particles") }} + +berdicles is an expressive CPU particle system for the Bevy engine. Features include: + +- Instancing based CPU particles. +- Expressive non-physics based particle traits. +- Familiar setup with Bevy's native Material and Mesh. +- Particles as emitters. +- Mesh based particle trails. +- Particle events that spawn other particles. +- Billboard particles. + +[berdicles]: https://github.com/mintlu8/berdicles + +### Other Library Updates and Releases + +- [glam 0.28]: `glam` is a foundational crate when it comes to math in general in Rust. + For example, its types are directly visible in the `Vec` types Bevy consumes and re-exports, like `Vec3`. + v0.28 brings AArch64 NEON SIMD support as well as a couple smaller breaking changes. +- [gdext-coroutines]: Run Rust coroutines in Godot 4.2+ (through GDExtension), inspired on Unity's Coroutines design. +- [FunDSP 0.18]: 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. + +[glam 0.28]: https://github.com/bitshifter/glam-rs +[gdext-coroutines]: https://github.com/Houtamelo/gdext_coroutines +[FunDSP 0.18]: https://github.com/SamiPerttu/fundsp + +## Interviews + +### [Metalmancy @ OpenSauce][metalmancy_interview] + +{{ image_figure( + alt="Arcade cabinet close up" + src="https://github.com/metalmancy_interview.jpg") }} + +[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 + +### [Tiny Glade Developers Discuss Bevy, Proceduralism, Publishers & Cozy Games][tiny-glade-interview] + +{{ image_figure( + alt="An idyllic scenery made in Tidy Glade" + src="https://github.com/tiny-glade.jpg") }} + +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. + + +[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/ + + + +## Blog Posts + +### [Dioxus Labs + "High-level Rust"][dioxus-post] + +[This post][dioxus-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. + +[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. + +_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/ + +### Virtual Geometry in Bevy 0.14 + +{{ image_figure( + alt="The Stanford bunny split into meshlets" + src="https://github.com/meshlets.jpg" + caption="The Stanford bunny split into meshlets") }} + +Ever wondered how [Unreal 5's Nanite][nanite] works under the hood? +Jasmine, who reimplemented the virtual geometry technology for Bevy's upcoming 0.14 release, +wrote a [post][meshlets-post] explaining the concepts and the nitty-gritty details of the implementation. +The post is very technical in nature, so if you've never heard of this technology before, +they recommend you first watch Brian Karis' SIGGRAPH 2021 lecture [A Deep Dive into Nanite Virtualized Geometry][nanite-talk] ([slides][nanite-slides]). + +[nanite]: https://dev.epicgames.com/documentation/en-us/unreal-engine/nanite-virtualized-geometry-in-unreal-engine +[meshlets-post]: https://jms55.github.io/posts/2024-06-09-virtual-geometry-bevy-0-14/ +[nanite-talk]: https://www.youtube.com/watch?v=eviSykqSUUw +[nanite-slides]: https://advances.realtimerendering.com/s2021/Karis_Nanite_SIGGRAPH_Advances_2021_final.pdf + +## Jobs + +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 + +## Engine Newsletters + +- 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 + + + +Editing this newsletter wouldn't be possible without [your contributions][news_current_prs]. +Thanks to everyone who helped us this month! + +If you want something mentioned in the next newsletter, [send us a pull request][pr]. + +You can also get an early look at pending issues for the [next newsletter][news_future_prs]. + +[news_current_prs]: https://github.com/rust-gamedev/rust-gamedev.github.io/pulls?q=is%3Apr+in%3Atitle+%27N52%27 +[news_future_prs]: https://github.com/rust-gamedev/rust-gamedev.github.io/pulls?q=is%3Apr+in%3Atitle+%27N53%27 + +------ + +That's all news for today, thanks for reading! + +Also, subscribe to our socials if you want to receive fresh news! +- X/Twitter: [@rust_gamedev][@x_rust_gamedev] +- Mastodon: [@rust_gamedev][@mastodon_rust_gamedev] +- Reddit: [/r/rust_gamedev][/r/rust_gamedev] + + +**Discuss this post on**: +[/r/rust_gamedev](https://www.reddit.com/r/rust_gamedev/comments/1dudvrk/this_month_in_rust_gamedev_june_edition_released/), +[Lemmy](https://lemmy.world/post/17176132), +[Mastodon](https://mastodon.gamedev.place/@rust_gamedev/112722731870962460), +[X/Twitter](hhttps://x.com/rust_gamedev/status/1808489666426851340), +[Hacker News](https://news.ycombinator.com/item?id=40865690), +[Discord](https://discord.gg/yNtPTb2). + +[/r/rust_gamedev]: https://reddit.com/r/rust_gamedev +[@x_rust_gamedev]: https://twitter.com/rust_gamedev +[@mastodon_rust_gamedev]: https://mastodon.gamedev.place/@rust_gamedev diff --git a/content/news/052/meshlets.jpg b/content/news/052/meshlets.jpg new file mode 100644 index 000000000..04659ac73 Binary files /dev/null and b/content/news/052/meshlets.jpg differ diff --git a/content/news/052/metalmancy_interview.jpg b/content/news/052/metalmancy_interview.jpg new file mode 100644 index 000000000..98361d12e Binary files /dev/null and b/content/news/052/metalmancy_interview.jpg differ diff --git a/content/news/052/ssr.jpg b/content/news/052/ssr.jpg new file mode 100644 index 000000000..be7913609 Binary files /dev/null and b/content/news/052/ssr.jpg differ diff --git a/content/news/052/tiny-glade.jpg b/content/news/052/tiny-glade.jpg new file mode 100644 index 000000000..62f8a4eec Binary files /dev/null and b/content/news/052/tiny-glade.jpg differ diff --git a/content/news/052/untitled-pixel-wizards-game.mp4 b/content/news/052/untitled-pixel-wizards-game.mp4 new file mode 100644 index 000000000..e4b8cced7 Binary files /dev/null and b/content/news/052/untitled-pixel-wizards-game.mp4 differ diff --git a/content/news/052/wor.jpg b/content/news/052/wor.jpg new file mode 100644 index 000000000..acb2bbd16 Binary files /dev/null and b/content/news/052/wor.jpg differ diff --git a/content/news/053/chuot.png b/content/news/053/chuot.png new file mode 100644 index 000000000..41c566571 Binary files /dev/null and b/content/news/053/chuot.png differ diff --git a/content/news/053/dos-tilers.jpg b/content/news/053/dos-tilers.jpg new file mode 100644 index 000000000..e7f42ab84 Binary files /dev/null and b/content/news/053/dos-tilers.jpg differ diff --git a/content/news/053/godot_rapier.mp4 b/content/news/053/godot_rapier.mp4 new file mode 100644 index 000000000..12dd90036 Binary files /dev/null and b/content/news/053/godot_rapier.mp4 differ diff --git a/content/news/053/index.md b/content/news/053/index.md new file mode 100644 index 000000000..1789dcfe6 --- /dev/null +++ b/content/news/053/index.md @@ -0,0 +1,247 @@ ++++ +title = "This Month in Rust GameDev #53 - July 2024" +transparent = true +date = 2024-08-03 +draft = true ++++ + + + + + +Welcome to the 53th issue of the Rust GameDev Workgroup's +monthly newsletter. +[Rust] is a systems language pursuing the trifecta: +safety, concurrency, and speed. +These goals are well-aligned with game development. +We hope to build an inviting ecosystem for anyone wishing +to use Rust in their development process! +Want to get involved? [Join the Rust GameDev working group!][join] + +You can follow the newsletter creation process +by watching [the coordination issues][coordination]. +Want something mentioned in the next newsletter? +[Send us a pull request][pr]. +Feel free to send PRs about your own projects! + +[Rust]: https://rust-lang.org +[join]: https://github.com/rust-gamedev/wg#join-the-fun +[pr]: https://github.com/rust-gamedev/rust-gamedev.github.io +[coordination]: https://github.com/rust-gamedev/rust-gamedev.github.io/issues?q=label%3Acoordination + +- [Announcements](#announcements) +- [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) +- [Future news](#future-news) + + + +## Announcements + +## Game Updates + +### [Tilers (DOS game)][dos-tilers] + +{{ image_figure( + alt="Screenshot from Tilers", + src="https://github.com/dos-tilers.jpg", + caption="Shuffled tiles of a photograph in Tilers. One of the tiles is being moved horizontally.") }} + +Tilers ([GitHub][dos-tilers-gh]) by [@E_net4] +is an open source tile permutation puzzle game, +based on the classic [15 puzzle][wiki15]. +It was developed specifically for MS-DOS machines, +by combining a nightly Rust compiler with +the [DJGPP toolchain][djgpp] and the custom object converter [elf2djgpp]. + +A playable version on the browser (using an emulator) +is available on GitHub and [itch.io][dos-tilers]. +The game was also submitted to the [DOS Games July 2024 Jam][dosjam]. + +[dos-tilers-gh]: https://github.com/Enet4/dos-tilers +[@E_net4]: https://hachyderm.io/@E_net4 +[wiki15]: https://en.wikipedia.org/wiki/15_puzzle +[djgpp]: https://www.delorie.com/djgpp/ +[dos-tilers]: https://e-net4.itch.io/dos-tilers +[elf2djgpp]: https://github.com/cknave/elf2djgpp +[dosjam]: https://itch.io/jam/dos-games-july-2024-jam + +## Engine Updates + +### [Chuột][chuot-website] + +{{ image_figure( + alt="Bunnymark example", + src="https://github.com/chuot.png", + caption="[Bunnymark example](https://tversteeg.nl/chuot/examples/bunnymark/)") }} + +Chuột ([Website][chuot-website], [GitHub][chuot-github]) by [@tversteeg] +is an AGPL licensed game engine for 2D pixel-art games. + +The main goal of the Chuột (Vietnamese for mouse) game engine is to make it easy to create and deploy small FOSS games. +The license has been chosen to foster an open community of game development. + +The Chuột game engine is standing on the shoulders of giants of the Rust ecosystem, +such as [winit] for window handling and [wgpu] for drawing graphics. + +Recently, [version 0.2][chuot-0.2] has been released, which includes a big rewrite +of the internal system and simplifying a lot of the API. +Many rough and inconsistent parts have been cleaned up and renamed, +resulting in quite a lot of breaking changes. +This mainly happened because the developer was still finding a proper direction for the engine. +Asset loading has been improved, especially asset hot-reloading, +which is now also enabled by defining an external asset source. + +_Check out the [web examples][chuot-examples]!_ + +[chuot-website]: https://tversteeg.nl/chuot +[chuot-github]: https://github.com/tversteeg/chuot +[chuot-0.2]: https://github.com/tversteeg/chuot/releases/tag/chuot-v0.2.0 +[chuot-examples]: https://tversteeg.nl/chuot/examples +[winit]: https://docs.rs/winit +[wgpu]: https://docs.rs/wgpu +[@tversteeg]: https://github.com/tversteeg + +## Learning Material Updates + +## Tooling Updates + +## Library Updates + +### Godot Rapier: Rewrite it in Rust + +{{ video_figure( + type="video/mp4", + alt="Godot + Rapier logo make up the 'Godot Rapier' logo ; a few balls fall on it, showing off soft physics.", + src="https://github.com/godot_rapier.mp4", + caption="Godot Rapier showcase") }} + +[Godot Rapier][godot_rapier_github] written by [@Ughuuu](https://github.com/Ughuuu) +is a physics plugin for [Godot][godot] that uses [Rapier][rapier], a popular +physics engine written in Rust. + +Godot Rapier was originally written in C++, +and is now in the final stage of being completely rewritten in Rust. + +Its author wrote [an article on Reddit][godot_rapier_reddit] +about their experience with the rewrite. +Note that in the meantime the web exports have been fixed. + +Godot Rapier's website was adopted as a Rapier subdomain at +[https://godot.rapier.rs/](https://godot.rapier.rs/). +There you can also find a [progress overview](https://godot.rapier.rs/docs/progress). + +[rapier]: https://rapier.rs/ +[godot_rapier_github]: https://github.com/appsinacup/godot-rapier-physics +[godot_rapier_reddit]: https://www.reddit.com/r/godot/comments/1dtoufn/rewriting_godots_physics_server_in_rust/ +[godot]: https://godotengine.org/ + +## Popular Workgroup Issues in GitHub + + + +## Other News + + + +## Meeting Minutes + + + +[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 + +## Discussions + + + +## Requests for Contribution + + + +## Jobs + + + +## Bonus + + + +## Future news + + + +Editing this newsletter wouldn't be possible without [your contributions][news_current_prs]. +Thanks to everyone who helped us this month! + +If you want something mentioned in the next newsletter, [send us a pull request][pr]. + +You can also get an early look at pending issues for the [next newsletter][news_future_prs]. + +[news_current_prs]: https://github.com/rust-gamedev/rust-gamedev.github.io/pulls?q=is%3Apr+in%3Atitle+%27N53%27 +[news_future_prs]: https://github.com/rust-gamedev/rust-gamedev.github.io/pulls?q=is%3Apr+in%3Atitle+%27N54%27 + +------ + +That's all news for today, thanks for reading! + +Also, subscribe to our socials if you want to receive fresh news! +- X/Twitter: [@rust_gamedev][@x_rust_gamedev] +- Mastodon: [@rust_gamedev][@mastodon_rust_gamedev] +- Reddit: [/r/rust_gamedev][/r/rust_gamedev] + + + +[/r/rust_gamedev]: https://reddit.com/r/rust_gamedev +[@x_rust_gamedev]: https://twitter.com/rust_gamedev +[@mastodon_rust_gamedev]: https://mastodon.gamedev.place/@rust_gamedev diff --git a/sass/_extra.scss b/sass/_extra.scss index edcba50a6..2f4ebe628 100644 --- a/sass/_extra.scss +++ b/sass/_extra.scss @@ -10,7 +10,7 @@ li { margin: 15px 0; } -pre > code { +pre>code { // To avoid grey background on code blocks. background-color: inherit; } @@ -83,14 +83,24 @@ h6:hover .anchor { visibility: visible; } -.post-content p img { +.post-content p img, +.post-content figure img, +.post-content figure video { display: block; box-sizing: border-box; - margin: 16px auto; padding: 8px; border: 1px solid #e8e8e8; } +.post-content p img { + margin: 16px auto; +} + +.post-content figure img, +.post-content figure video { + margin: 0 auto; +} + .post-link { display: inline-block; } @@ -99,14 +109,26 @@ h6:hover .anchor { margin-bottom: 0; } -a.btn { +input, +button { + font-size: inherit; +} + +input { + min-width: 0; // Allow the input to shrink on small devices. +} + +a.btn, +// Trick to increase the specificity and win against rules such as a:visited +.btn { text-decoration: none; border-radius: 3px; font-weight: 600; - border: 1px solid transparent; + border: none; box-sizing: border-box; display: inline-block; padding: 0.4em 2em; + transition: background-color 125ms; background-color: $brand-color; color: $background-color; @@ -114,15 +136,67 @@ a.btn { &:hover { color: lighten($background-color, 10); - border-color: $brand-color; + background-color: lighten($brand-color, 5); + } + + &:active { + background-color: darken($brand-color, 5); } } -// A hack for image captions. -// See https://stackoverflow.com/questions/19331362/using-an-image-caption-in-markdown-jekyll -img + em, -a:first-child + em:last-child { +input[type=email] { + border-radius: 3px; + border: 1px solid $brand-color; + box-sizing: border-box; + padding: .4em; +} + +figcaption { display: block; text-align: center; - color: $grey-color; + color: #595959; + font-size: inherit; + margin-top: .5em; +} + +video { + max-width: 100%; +} + +.email-form { + display: grid; + margin-top: $spacing-unit; + grid-template-columns: auto auto; + justify-content: center; + gap: .6em 1em; + background-color: color-mix(in oklab, $brand-color 20%, #fff); + padding: $spacing-unit * .5; + align-items: center; + border-radius: 3px; + + .email-form__icon { + width: 5em; + height: 5em; + --icon-stroke-color: #{$brand-color}; + --icon-fill-color: rgba(255, 255, 255, .4); + } + + .email-form__description { + max-width: 18em; + } + + .email-form__input { + grid-column: 1 / 3; + } +} + +.email-input { + display: grid; + grid-template-columns: repeat(2, auto); + gap: 5px; + + label { + grid-column: 1 / 3; + font-size: .8em; + } } diff --git a/static/.well-known/atproto-did b/static/.well-known/atproto-did new file mode 100644 index 000000000..8049e9f03 --- /dev/null +++ b/static/.well-known/atproto-did @@ -0,0 +1 @@ +did:plc:kih2m3ettp3ybik33kypdwl4 diff --git a/static/android-chrome-192x192.png b/static/android-chrome-192x192.png index c32084eb5..0c1b39955 100644 Binary files a/static/android-chrome-192x192.png and b/static/android-chrome-192x192.png differ diff --git a/static/android-chrome-512x512.png b/static/android-chrome-512x512.png index 531c29991..8639e26c1 100644 Binary files a/static/android-chrome-512x512.png and b/static/android-chrome-512x512.png differ diff --git a/static/apple-touch-icon.png b/static/apple-touch-icon.png index 8f274d46b..daca5869a 100644 Binary files a/static/apple-touch-icon.png and b/static/apple-touch-icon.png differ diff --git a/static/favicon-16x16.png b/static/favicon-16x16.png index d677e8868..b0df4cc5a 100644 Binary files a/static/favicon-16x16.png and b/static/favicon-16x16.png differ diff --git a/static/favicon-32x32.png b/static/favicon-32x32.png index 6fca9d487..6f1e619ba 100644 Binary files a/static/favicon-32x32.png and b/static/favicon-32x32.png differ diff --git a/static/favicon.svg b/static/favicon.svg new file mode 100644 index 000000000..cb5b5b1f6 --- /dev/null +++ b/static/favicon.svg @@ -0,0 +1 @@ + diff --git a/static/intro-icons.svg b/static/intro-icons.svg index 1cdf37b2a..dbbbe1470 100644 --- a/static/intro-icons.svg +++ b/static/intro-icons.svg @@ -56,4 +56,20 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + diff --git a/static/logo.png b/static/logo.png deleted file mode 100644 index a123932ac..000000000 Binary files a/static/logo.png and /dev/null differ diff --git a/static/logo.svg b/static/logo.svg new file mode 100644 index 000000000..e5b3b15dc --- /dev/null +++ b/static/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/logo_small.png b/static/logo_small.png deleted file mode 100644 index 701c24ec6..000000000 Binary files a/static/logo_small.png and /dev/null differ diff --git a/static/social-card.png b/static/social-card.png new file mode 100644 index 000000000..de5469d84 Binary files /dev/null and b/static/social-card.png differ diff --git a/templates/includes/email_signup.html b/templates/includes/email_signup.html new file mode 100644 index 000000000..66cd0797a --- /dev/null +++ b/templates/includes/email_signup.html @@ -0,0 +1,22 @@ +
+ +
+ \ No newline at end of file diff --git a/templates/includes/header.html b/templates/includes/header.html index 921ea339e..537f71ca4 100644 --- a/templates/includes/header.html +++ b/templates/includes/header.html @@ -1,7 +1,7 @@