Skip to content

Commit 2a0df91

Browse files
committed
N15: Release
1 parent ab8eecc commit 2a0df91

File tree

1 file changed

+66
-60
lines changed

1 file changed

+66
-60
lines changed

content/posts/newsletter-015/index.md

+66-60
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
11
+++
22
title = "This Month in Rust GameDev #15 - October 2020"
3-
date = 2020-11-03
3+
date = 2020-11-09
44
transparent = true
5-
draft = true
65
+++
76

8-
<!-- Check the post with markdownlint-->
9-
107
Welcome to the 15th issue of the Rust GameDev Workgroup's
118
monthly newsletter.
129
[Rust] is a systems language pursuing the trifecta:
@@ -27,14 +24,13 @@ Feel free to send PRs about your own projects!
2724
[pr]: https://github.com/rust-gamedev/rust-gamedev.github.io
2825
[coordination]: https://github.com/rust-gamedev/rust-gamedev.github.io/issues?q=label%3Acoordination
2926

27+
Table of contents:
28+
3029
- [Game Updates](#game-updates)
3130
- [Learning Material Updates](#learning-material-updates)
3231
- [Library & Tooling Updates](#library-tooling-updates)
3332
- [Popular Workgroup Issues in Github](#popular-workgroup-issues-in-github)
34-
- [Meeting Minutes](#meeting-minutes)
3533
- [Requests for Contribution](#requests-for-contribution)
36-
- [Jobs](#jobs)
37-
- [Bonus](#bonus)
3834

3935
<!--
4036
Ideal section structure is:
@@ -112,7 +108,7 @@ tongues as grappling hooks.
112108

113109
A [browser build][cba-play] can be played online.
114110

115-
Changes since last update:
111+
Changes since the last update:
116112

117113
- Added a global leaderboard that visualizes Race and Training results in an
118114
interactive histogram.
@@ -142,13 +138,13 @@ More details are in [September][cba-september-update] and
142138
![Egregoria roads at night](egregoria.jpg)
143139

144140
[Egregoria]'s objective is to become a granular society simulation,
145-
filled with fully autonomous agents interacting with their world in real time.
141+
filled with fully autonomous agents interacting with their world in real-time.
146142

147143
The [6th devlog][egregoria-blog-post] was published. Updates include:
148144

149145
- Island generation.
150146
- Day/night cycle.
151-
- Human AI via utilitary systems.
147+
- Human AI via utility systems.
152148
- Specs to [legion 0.3][legion-github] port.
153149

154150
See also [the recent video][egregoria-video] showcasing very basic AI.
@@ -288,7 +284,6 @@ Follow [@dmitrywithouti] on Twitter for updates.
288284

289285
[sun_prison]: https://github.com/ropewalker/sun_prison
290286
[bevy_sokoban]: https://github.com/ropewalker/bevy_sokoban
291-
[bevy]: https://bevyengine.org
292287
[@dmitrywithouti]: https://twitter.com/dmitrywithouti
293288
[sun_prison_twit_1]: https://twitter.com/dmitrywithouti/status/1309025584039768064
294289
[sun_prison_twit_2]: https://twitter.com/dmitrywithouti/status/1309982656260648960
@@ -355,23 +350,22 @@ if you are interested in playtesting, contact projectyawc(at)gmail.com.
355350

356351
![Power Kick](power-kick-shot.png)
357352

358-
[Power Kick] is an one screen platform game inspired by similar old arcade games
353+
[Power Kick] is a one screen platform game inspired by similar old arcade games
359354
like Bubble Bobble and SnowBros.
360355
Your task is to hit the enemies till they get dizzy and then kick them out of
361356
their misery to proceed to the next stage. The kicked enemies will hit the
362357
colliding enemies with a possibility to create a chain reaction
363358
(similar to the pushed snowball in SnowBros).
364359

365-
The game have 20 stages and in stage 10 and 20 you will face a helicopter boss.
360+
The game has 20 stages and in stage 10 and 20 you will face a helicopter boss.
366361

367362
Can be played solo on the web through WebAssembly or up to two players
368363
in the downloadable version:
369-
first player with the keyboard and the second one with a joypad.
364+
the first player with the keyboard and the second one with a joypad.
370365

371366
The development took around two weeks thanks to [macroquad] and [hecs].
372367

373368
[Power Kick]: https://kakoeimon.itch.io/power-kick
374-
[macroquad]: https://github.com/not-fl3/macroquad
375369
[hecs]: https://crates.io/crates/hecs
376370

377371
### [rymd]
@@ -388,7 +382,6 @@ Development started at the end of October, recent additions include:
388382
- Possibly the world's most nauseating physics driven camera.
389383
- Too many particles.
390384

391-
[macroquad]: https://github.com/not-fl3/macroquad
392385
[@_profan]: https://twitter.com/_profan
393386
[rymd]: https://profan.itch.io/rymd
394387

@@ -409,7 +402,7 @@ For the past month the main focus of the development was on:
409402
- Implementing world navigation system.
410403
- Implementing rudimentary CLI graphics (for debugging and some future use).
411404

412-
Main features of reported (pre-alpha) version are:
405+
Main features of the reported (pre-alpha) version are:
413406

414407
- Ability to generate and explore one or many worlds (see previous news).
415408

@@ -472,15 +465,15 @@ New features in the latest release include boss games and high scores.
472465
[Canon Collision][canon-collision] by [@rukai] is an Undertale + Homestuck
473466
fan-made platform fighter with powerful tools for modding.
474467

475-
This month, he completed the abstractions needed for character specific logic.
468+
This month, he completed the abstractions needed for character-specific logic.
476469
Notable changes:
477470

478471
- [toriel's fireball](https://twitter.com/thisIsRukai/status/1302250049972314112)
479472
- [wobbly fireball shaders](https://twitter.com/thisIsRukai/status/1299311125285142529)
480473
- [items that can be picked up and thrown](https://twitter.com/thisIsRukai/status/1297507398693736448)
481474
- [character specific logic](https://twitter.com/thisIsRukai/status/1314872752642297856)
482475

483-
[canon-collision]:https://canoncollision.com
476+
[canon-collision]: https://canoncollision.com
484477
[@rukai]: https://twitter.com/thisIsRukai
485478

486479
### [galaxy-sim.github.io]
@@ -515,7 +508,7 @@ Here are some of the games made with Rust:
515508
> A multiplayer online sandbox game.
516509
> Explore, craft, and try to escape the island
517510
> (spoiler: you can not, you are stuck in a loop).
518-
> The world regenerates where you dont see.
511+
> The world regenerates where you don't see.
519512
520513
Check out the devlog post:
521514
["LudumDare 47 - The Island"][ld-island-post].
@@ -616,11 +609,10 @@ development for Entity-Component-Systems, Windowing and Event Loops, and WGPU.
616609
tutorial for writing simple pixel graphics and 2d game development using
617610
the [pixels] crate (based on WGPU).
618611
- [Framebuffers, WGPU and Rust](https://nyxtom.dev/2020/10/08/framebuffers/) -
619-
an in depth analysis of high level graphics terminology and a full length
612+
an in-depth analysis of high-level graphics terminology and a full length
620613
tutorial for setting up the api and clearing the screen with WGPU.
621614

622615
[@nyxtom]: https://twitter.com/nyxtom
623-
[hecs]: https://github.com/Ralith/hecs
624616
[pixels]: https://github.com/parasyte/pixels
625617

626618
### [Creating a Snake Clone in Bevy]
@@ -644,7 +636,7 @@ Microsoft Flight Simulator 2020.
644636
You can watch recordings here:
645637

646638
- [Part 1][msfs-video-1]: bindgen, C ABIs, linkers, and more.
647-
- [Part 2][msfs-video-2]: more high level concerns like API design
639+
- [Part 2][msfs-video-2]: more high-level concerns like API design
648640
and making an idiomatic API.
649641

650642
Subscribe to [@ryanlevick on Twitch][ryanlevick-twitch] for future streams.
@@ -657,7 +649,7 @@ _Discussions:
657649
[msfs-video-1]: https://youtube.com/watch?v=jNNz4h3iIlw
658650
[msfs-video-2]: https://youtube.com/watch?v=ugiR9M16fwg
659651

660-
### [How to: Rust + SDL2 + OpenGL on the web][how-to-rust-sdl2-opengl-post]
652+
### [How to: Rust + SDL2 + OpenGL on the Web][how-to-rust-sdl2-opengl-post]
661653

662654
[@Therocode] published an [article][how-to-rust-sdl2-opengl-post] that
663655
explains how to port games to the web using Emscripten.
@@ -706,7 +698,7 @@ or follow [@sajattack] on Twitter.
706698

707699
> ... I wrote the emu just for myself as a learning experience.
708700
> So it's lacking in a lot of features you'd expect from one made
709-
> for others to use, and it's also not mobile friendly unfortunately
701+
> for others to use, and it's also not mobile-friendly unfortunately
710702
> (but I'll work on that soon).
711703
> Still, it may be of some interest to someone here :D
712704
@@ -747,7 +739,7 @@ It also features updates regarding:
747739
### [shared-arena]
748740

749741
[shared-arena] by [@0x5eb] is a thread-safe & efficient memory pool.
750-
Memory pools are usefull for speeding up dynamic (de)allocation
742+
Memory pools are useful for speeding up dynamic (de)allocation
751743
of large amounts of data of the same size.
752744

753745
shared-arena provides three memory pools with different trade-offs:
@@ -775,7 +767,7 @@ There were a lot of additions in this update and a small breaking change.
775767
- The return type of `Vec4::truncate()` was changed from `Vec3A` to `Vec3` which
776768
is a breaking change and thus the version jumped from 0.9 to 0.10.
777769
- Vector swizzle functions similar to those found in [GLSL] were added. Swizzle
778-
functions allow a vectors elements to be reordered. The result can be a vector
770+
functions allow a vector's elements to be reordered. The result can be a vector
779771
of a different size to the input. Swizzles are implemented with SIMD
780772
instructions where possible, e.g. for the `Vec4` type.
781773

@@ -815,7 +807,7 @@ It consists of two crates:
815807
- density-mesh-core - generates mesh from density map.
816808
- density-mesh-image - generates density map from image.
817809

818-
Typical use case would be to use two of them to create mesh from images
810+
A typical use case would be to use two of them to create mesh from images
819811
but in case you have your own image handler, you can stick to the core module
820812
and produce density maps by yourself.
821813

@@ -843,7 +835,7 @@ new features:
843835
for deciding what pairs of colliders can touch;
844836
- the ability to set the mass of rigid-bodies explicitly;
845837
- linear and angular damping, to progressively slow down rigid-bodies;
846-
- the ability so attach some user-defined data (of type `u128`) to any
838+
- the ability to attach some user-defined data (of type `u128`) to any
847839
collider or rigid-body.
848840

849841
[![Rapier features](rapier-demo.gif)][rapier-demo]
@@ -852,7 +844,7 @@ The [bevy_rapier] plugin for the Bevy game engine has been updated to support
852844
all the aforementioned features.
853845

854846
Finally, a [continuous benchmarking][cont-bench] infrastructure has been set
855-
up to make sure performances regressions can be detected early.
847+
up to make sure performance regressions can be detected early.
856848

857849
[Rapier]: https://rapier.rs
858850
[rapier-october]: https://www.dimforge.com/blog/2020/11/01/this-month-in-dimforge/
@@ -863,7 +855,7 @@ up to make sure performances regressions can be detected early.
863855
### [physme]
864856

865857
[Physme] is not your typical physics engine. It doesn't exactly simulate
866-
real world physics and it never will. Instead it has only two goals:
858+
real world physics and it never will. Instead, it has only two goals:
867859

868860
- To provide satisfying real-time dynamics for 2D and 3D games.
869861
- To have a simple to use API.
@@ -883,7 +875,7 @@ The current feature set includes:
883875
- Fixed, mechanical and spring joints
884876
- Broad phase
885877

886-
All of the above listed features are supported in both 2D and 3D.
878+
All of the above-listed features are supported in both 2D and 3D.
887879

888880
[physme]: https://github.com/walterpie/physme
889881

@@ -979,7 +971,7 @@ This month two big PRs got into the final review stage:
979971
as usual, no third-party dependencies or C code involved;
980972
Clean build time for Wayland examples are about 3s.
981973
- [The Metal backend PR][metal-pr] showed good signs of life,
982-
[quad] and [offscreen] examples got successefully run on Metal.
974+
[quad] and [offscreen] examples got successfully run on Metal.
983975

984976
[miniquad]: https://github.com/not-fl3/miniquad
985977
[wayland-pr]: https://github.com/not-fl3/miniquad/pull/152
@@ -1005,13 +997,12 @@ Important things that got fixed:
1005997
- Particle system was released:
1006998
[example][particles-src], [web demo][particles-web-demo].
1007999

1008-
And special shutout goes to [donuts] game by [@cedric-h] - a simple game
1009-
made in couple of days, like a jam game.
1010-
It's a really good showcase of macroquad's approach on simple game code
1000+
And special shoutout goes to [donuts] game by [@cedric-h] - a simple game
1001+
made in a couple of days, like a jam game.
1002+
It's a really good showcase of macroquad's approach to simple game code
10111003
that allows hardcoding and hacks for empowering gameplay experiments.
10121004

10131005
[macroquad]: https://github.com/not-fl3/macroquad
1014-
[miniquad]: https://github.com/not-fl3/miniquad
10151006
[macroquad-text-src]: https://github.com/not-fl3/macroquad/blob/master/examples/text.rs
10161007
[macroquad-text-web]: https://not-fl3.github.io/miniquad-samples/macroquad_text.html
10171008
[particles-src]: https://github.com/not-fl3/macroquad/blob/master/particles/examples/particles.rs
@@ -1061,7 +1052,7 @@ This month, thanks to 59 contributors, 122 pull requests, and their
10611052

10621053
- Initial Android and iOS support
10631054
- Asset system improvements:
1064-
- Asset handle eeference counting
1055+
- Asset handle reference counting
10651056
- Asset loaders can now load multiple assets
10661057
- Sub asset loading
10671058
- Asset dependencies
@@ -1146,7 +1137,7 @@ implementation of an Ogmo level parser.
11461137

11471138
This month, it was released onto crates.io for the first time, and a
11481139
[full example][ogmo3-sample] was added, showing how a simple project can be
1149-
loadedinto a game engine.
1140+
loaded into a game engine.
11501141

11511142
[ogmo3]: https://github.com/17cupsofcoffee/ogmo3
11521143
[Ogmo Editor 3]: https://ogmo-editor-3.github.io/
@@ -1160,7 +1151,6 @@ loadedinto a game engine.
11601151

11611152
It features a renderer that uses Vulkan [ray-tracing extension] supported
11621153
by NVidia RTX cards and future AMD cards.
1163-
11641154
Screenshot above is rendered using [DDGI] technique implemented exclusively
11651155
with Rust and GLSL for shaders.
11661156
In the whole scene there is only one directional light source - "sun" -
@@ -1183,7 +1173,6 @@ Contributions and feedback are always welcome.
11831173
[Wilds]: https://github.com/zakarumych/wilds
11841174
[ray-tracing extension]: https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VK_KHR_ray_tracing.html
11851175
[DDGI]: https://morgan3d.github.io/articles/2019-04-01-ddgi/
1186-
[Hecs]: https://lib.rs/crates/hecs
11871176
[Goods]: https://github.com/zakarumych/goods
11881177
[~~Shave more yaks~~]: https://github.com/zakarumych/gpu-alloc
11891178
[Rapier]: https://rapier.rs
@@ -1231,7 +1220,7 @@ _Discussions:
12311220
[rustcord]: https://github.com/Twister915/rustcord
12321221
[@Twister915]: https://github.com/Twister915
12331222

1234-
### Ajour - World of Warcraft Addon Manager
1223+
### [Ajour] - World of Warcraft Addon Manager
12351224

12361225
[![Ajour Banner](ajour-banner.jpg)][Ajour]
12371226

@@ -1263,7 +1252,7 @@ includes Rust as part of its build system.
12631252
written in Rust as a gstreamer plugin to convert certain media encodings
12641253
from one format to another.
12651254

1266-
Doucmentation for building Proton is available on [Github][Proton-Github].
1255+
Documentation for building Proton is available on [Github][Proton-Github].
12671256
Further documentation on Media Converter and its source code is available
12681257
on the module's [repository][Proton-Media-Converter-Github]
12691258

@@ -1288,7 +1277,7 @@ work, but for-loops, iterators, and match/switch aren't supported yet! That
12881277
means that while being technically usable, Rust GPU is far from being
12891278
production-ready.
12901279

1291-
Motivation behind the project:
1280+
The motivation behind the project:
12921281

12931282
> Historically in games, GPU programming has been done through writing either
12941283
> HLSL, or to a lesser extent GLSL. These are simple programming languages that
@@ -1336,27 +1325,44 @@ _Discussions:
13361325

13371326
<!-- Up to 10 links to interesting issues -->
13381327

1339-
## Meeting Minutes
1340-
1341-
<!-- Up to 10 most important notes + a link to the full details -->
1342-
1343-
[See all meeting issues][label_meeting] including full text notes
1344-
or [join the next meeting][join].
1345-
1346-
[label_meeting]: https://github.com/rust-gamedev/wg/issues?q=label%3Ameeting
1328+
- [rust-gamedev/rust-gamedev.github.io](https://github.com/rust-gamedev/rust-gamedev.github.io):
1329+
- [#269 "Proper style guide/contributing guidelines"](https://github.com/rust-gamedev/rust-gamedev.github.io/issues/269);
1330+
- [rust-gamedev/wg](https://github.com/rust-gamedev/wg):
1331+
- [#21 "Planning a survey for Rust game developers"](https://github.com/rust-gamedev/wg/issues/21);
1332+
- [#94 "raw-window-handle maintenance"](https://github.com/rust-gamedev/wg/issues/94);
1333+
- [rust-gamedev/ecs_bench_suite](https://github.com/rust-gamedev/ecs_bench_suite):
1334+
- [#14 "Also benchmark in debug mode"](https://github.com/rust-gamedev/ecs_bench_suite/issues/14);
13471335

13481336
## Requests for Contribution
13491337

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

1352-
## Jobs
1353-
1354-
<!-- An optional section for new jobs related to Rust gamedev -->
1355-
1356-
## Bonus
1357-
1358-
<!-- Bonus section to make the newsletter more interesting
1359-
and highlight events from the past. -->
1340+
- [Embark's open issues][embark-open-issues] ([embark.rs]).
1341+
- [winit's "Good first issue" and “help wanted” issues][winit-issues].
1342+
- [gfx-rs's "contributor-friendly" issues][gfx-issues].
1343+
- [wgpu's "help wanted" issues][wgpu-help-wanted].
1344+
- [luminance's "low hanging fruit" issues][luminance-fruits].
1345+
- [ggez's "good first issue" issues][ggez-issues].
1346+
- [Veloren's "beginner" issues][veloren-beginner].
1347+
- [Amethyst's "good first issue" issues][amethyst-issues].
1348+
- [A/B Street's "good first issue" issues][abstreet-issues].
1349+
- [Mun's "good first issue" issues][mun-issues].
1350+
- [SIMple Mechanic's good first issues][simm-issues].
1351+
- [Bevy's "good first issue" issues][bevy-issues].
1352+
1353+
[embark.rs]: https://embark.rs
1354+
[embark-open-issues]: https://github.com/search?q=user:EmbarkStudios+state:open
1355+
[winit-issues]: https://github.com/rust-windowing/winit/issues?utf8=✓&q=is%3Aissue+is%3Aopen+label%3A%22status%3A+help+wanted%22+label%3A%22Good+first+issue%22
1356+
[gfx-issues]: https://github.com/gfx-rs/gfx/issues?q=is%3Aissue+is%3Aopen+label%3Acontributor-friendly
1357+
[wgpu-help-wanted]: https://github.com/gfx-rs/wgpu-rs/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22
1358+
[luminance-fruits]: https://github.com/phaazon/luminance-rs/issues?q=is%3Aissue+is%3Aopen+label%3A%22low+hanging+fruit%22
1359+
[ggez-issues]: https://github.com/ggez/ggez/labels/%2AGOOD%20FIRST%20ISSUE%2A
1360+
[veloren-beginner]: https://gitlab.com/veloren/veloren/issues?label_name=beginner
1361+
[amethyst-issues]: https://github.com/amethyst/amethyst/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22
1362+
[abstreet-issues]: https://github.com/dabreegster/abstreet/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22
1363+
[mun-issues]: https://github.com/mun-lang/mun/labels/good%20first%20issue
1364+
[simm-issues]: https://github.com/mkhan45/SIMple-Mechanics/labels/good%20first%20issue
1365+
[bevy-issues]: https://github.com/bevyengine/bevy/labels/good%20first%20issue
13601366

13611367
------
13621368

0 commit comments

Comments
 (0)