Skip to content

Newsletter 12 #229

New issue

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

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

Already on GitHub? Sign in to your account

Merged
merged 6 commits into from
Aug 6, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
124 changes: 87 additions & 37 deletions content/posts/newsletter-012/index.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
+++
title = "This Month in Rust GameDev #12 - July 2020"
date = 2020-08-03
date = 2020-08-06
transparent = true
draft = true
draft = false
+++

Welcome to the twelfth issue of the Rust GameDev Workgroup’s
Expand All @@ -29,8 +29,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)
- [Library & Tooling Updates](#library-tooling-updates)
- [Meeting Minutes](#meeting-minutes)
- [Requests for Contribution](#requests-for-contribution)
- [Jobs](#jobs)
Expand Down Expand Up @@ -180,13 +179,13 @@ Wonder can be [played in the browser on itch.io][Wonder].

[Vlad Zhukov] shared a video of a WIP multiplayer online strategy game
where you fight with other players for territory.
Currently there are two types of resources and 5 types of buildings.
Currently, there are two types of resources and 5 types of buildings.
To build on the tile you need to occupy it with your warriors first.
The player who occupied all enemies' tiles win.

The game is written with [miniquad](https://github.com/not-fl3/miniquad)
and a custom GUI library.
Some parts of the game are promised to be open-sourced in future.
Some parts of the game are promised to be open-sourced in the future.
Read more about crates used in this project [here][hex-strat-crates].

_Discussions:
Expand All @@ -208,7 +207,7 @@ and drivers.
This month [versions v0.2.2..v0.2.5][abstreet-releases] were released.
Some of the updates:

- New random traffic scenario generator that makes people go between
- A new random traffic scenario generator that makes people go between
houses and workplaces.
- New commute pattern explorer tool.
- New character art to give cutscenes a bit more personality.
Expand Down Expand Up @@ -325,7 +324,7 @@ Notable changes:

- [basic projectiles](https://twitter.com/thisIsRukai/status/1287377878460456963),
- [WIP grab implementation (with some humorous results)](https://www.youtube.com/watch?v=sSrBGpT-Ebs),
- [New animations + attacks](https://www.youtube.com/watch?v=AaPkRSNhoSM)
- [New animations + attacks](https://www.youtube.com/watch?v=AaPkRSNhoSM),
- and [custom shaders](https://twitter.com/thisIsRukai/status/1279324105125163008).

[canon-collision]:https://canoncollision.com
Expand All @@ -348,14 +347,14 @@ generation system in the worldgen. Main features of the river generator are:
tweak the process for either precision of the pattern or speed of generation;
- Rivers are sorted upon intersections, their widths are adjusted, waterfalls
are formed when necessary;
- Inflow and outflow directions are recorded for each cell, which allows to
follow the river upstream or downstream;
- Inflow and outflow directions are recorded for each cell, which allows
following the river upstream or downstream;
- Simple yet effective erosion model implemented, which ensures no upwards flows
are allowed;
- Each stream has its unique ID, which will later be linked to the stream data;
- Streams have 12 orders of magnitude from smallest brooks to major rivers;
- All the options are available to user under "General", "Advanced" and
"Very advanced" sections for any level of fine-tuning;
"Very advanced" sections for any level of fine-tuning.

Further development will involve re-factoring of the code and making it ready
to be published prior to implementing new features. For small dev reports follow
Expand Down Expand Up @@ -388,7 +387,7 @@ covers the work they did in June and July:
- Moving from recording the raw texture generated for pixels
to the post-processed texture from wgpu
involved a major overhaul, and it proved too glitchy and slow.
Hopefully it will be revived later, in the form of recording user inputs.
Hopefully, it will be revived later, in the form of recording user inputs.
- Many structural improvements, such as less glitchy particle
placement with Bresenham's line algorithm,
better error handling, and ensuring particles
Expand Down Expand Up @@ -475,7 +474,7 @@ The game is in an early stage of development,

[![fps-game-screenshot](fps-game-2.jpeg)][on-fps-game-2-youtube]

^ _Click to watch a [footage from the game's current state][on-fps-game-2-youtube]._
^ _Click to watch [footage from the game's current state][on-fps-game-2-youtube]._

On this update, [@pingFromHeaven] talks about the lighting implementation that
sets the tone for the game, how Rust is good at shortening the debugging
Expand Down Expand Up @@ -525,7 +524,7 @@ to mid-August. A loot table system was added to item drops. Lots of work has
been done on animations and quadrupeds. Networking has switched to a new
system. Significant improvements have been made to pathfinding system to improve
fast quadruped movement. Particle systems are being implemented and optimized. A
crafting GUI has been added. Translations have stabalized significantly, and
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)
Expand All @@ -551,7 +550,7 @@ July's full weekly devlogs: "This Week In Veloren...":
[#78](https://veloren.net/devblog-78).

In August, 0.7 will be released. Work will continue on castle and cave
geneartion. The inaugural episode of the Rust Game Dev podcast will be released,
generation. The inaugural episode of the Rust Game Dev podcast will be released,
which features an interview by Veloren developers.

![Quadrupeds](veloren-quadrupeds.png)
Expand Down Expand Up @@ -623,7 +622,7 @@ The source code [can be found here][tantan-pong-src].

![vector vs linked list perf](data_oriented_design.svg)

Data-Oriented Design is an approach to program optimisation focused on
Data-Oriented Design is an approach to program optimization focused on
considering the features and limitations of the target hardware, and
carefully controlling the memory layout of data to take advantage of
those.
Expand Down Expand Up @@ -669,15 +668,15 @@ of Unity C# script components allow third parties to incorporate
Servo browser windows into Unity scenes.

[A blog post about the project][servo-unity-post] gives a good
overview of the project goals, capabilities, archtecture, challenges,
overview of the project goals, capabilities, architecture, challenges,
and future development plans.

[servo-unity]: https://github.com/MozillaReality/servo-unity
[servo-unity-post]: https://blog.mozvr.com/a-browser-plugin-for-unity

### [big-brain]

[big-brain] by [Kat Marchán] is an [utility AI] library for games,
[big-brain] by [Kat Marchán] is a [utility AI] library for games,
built on the specs ECS.

> It lets you define complex, intricate AI behaviors for your entities
Expand Down Expand Up @@ -734,7 +733,7 @@ _Discussions:

[voronator] by [Felipe Santos] is ...
a Rust port of the [d3-delaunay] and [delaunator] libraries
that provides delaunay triangulation and Voronoi diagram generation.
that provide delaunay triangulation and Voronoi diagram generation.

_Discussions:
[/r/rust](https://reddit.com/r/rust/comments/hjbl0y/introducing_voronator)_
Expand Down Expand Up @@ -807,7 +806,7 @@ for contributing a lot of these features and fixes!
[miniquad] is a safe and cross-platform rendering library
focused on portability and low-end platforms support.

This month opengl backend of miniquad was successefully ported to iOS.
This month opengl backend of miniquad was successfully ported to iOS.
With this update [macroquad], [good-web-game] and all the games
build directly with [miniquad] can be run on IOS, Android, WASM,
Linux, macOS and Windows!
Expand All @@ -820,7 +819,7 @@ Linux, macOS and Windows!

![procgen dynamic "grass field"](tuitui-grass-field.jpeg)

^ _[@MacTuitui]'s everyday [nannou] experiement #1274_
^ _[@MacTuitui]'s everyday [nannou] 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
Expand All @@ -841,7 +840,7 @@ Then, efforts to reduce code duplication inside `wgpu` project has led to the
[bovine invasion](https://github.com/gfx-rs/wgpu-rs/pull/460) on wgpu-rs API side.
The devs are figuring out the plan to address that with a builder pattern now,
which will address both the `Cow`s and non-exhaustives,
hopefully putting the end to the turbulence.
hopefully putting an end to the turbulence.

In the meantime, `wgpu-rs` ecosystem is flourishing with applications and libraries.
The [showcase gallery](https://wgpu.rs/#showcase) was updated with a few shiny images.
Expand Down Expand Up @@ -875,7 +874,7 @@ graphics framework.
This month [luminance v0.40 got released][luminance-v0-40].
Some of the highlights:

- The complete backend/architecture redesign;
- The complete backend/architecture redesign.
- A new platform crate has appeared:
[luminance-sdl2], which adds support for the sdl2 crate.
- [luminance-webgl] and luminance-web-sys, to support the Web!
Expand Down Expand Up @@ -1003,7 +1002,7 @@ most LLVM IR to
[Minecraft data packs](https://minecraft.gamepedia.com/Data_Pack),
the game's deliberately-limited in-game scripting language. Langcraft
is entirely language independent, so any language with an LLVM-based
compiler can (with the right API bindings) run in Minecraft. Currently
compiler can (with the right API bindings) run in Minecraft. Currently,
bindings to both C and Rust exist. While not as visually impressive as
a redstone computer, Langcraft does stretch the bounds of the game quite
a bit, using jukeboxes for memory, armor stands to represent pointers,
Expand All @@ -1024,9 +1023,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

## Popular Workgroup Issues in Github

<!-- Up to 10 links to interesting issues -->
<!-- ## Popular Workgroup Issues in Github -->

## Meeting Minutes

Expand All @@ -1041,16 +1038,16 @@ or [join the next meeting][join].

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

- [Embark's open issues][embark-open-issues] ([embark.rs]);
- [winit's "Good first issue" and “help wanted” issues][winit-issues];
- [gfx-rs's "contributor-friendly" issues][gfx-issues];
- [wgpu's "help wanted" issues][wgpu-help-wanted];
- [luminance's "low hanging fruit" issues][luminance-fruits];
- [ggez's "good first issue" issues][ggez-issues];
- [Veloren's "beginner" issues][veloren-beginner];
- [Amethyst's "good first issue" issues][amethyst-issues];
- [A/B Street's "good first issue" issues][abstreet-issues];
- [Mun's "good first issue" issues][mun-issues];
- [Embark's open issues][embark-open-issues] ([embark.rs]).
- [winit's "Good first issue" and “help wanted” issues][winit-issues].
- [gfx-rs's "contributor-friendly" issues][gfx-issues].
- [wgpu's "help wanted" issues][wgpu-help-wanted].
- [luminance's "low hanging fruit" issues][luminance-fruits].
- [ggez's "good first issue" issues][ggez-issues].
- [Veloren's "beginner" issues][veloren-beginner].
- [Amethyst's "good first issue" issues][amethyst-issues].
- [A/B Street's "good first issue" issues][abstreet-issues].
- [Mun's "good first issue" issues][mun-issues].

[embark.rs]: https://embark.rs
[embark-open-issues]: https://github.com/search?q=user:EmbarkStudios+state:open
Expand Down Expand Up @@ -1084,10 +1081,15 @@ or [join the next meeting][join].

You can find all of the details on their [job offer page][embark-job].

------

Btw, Embark are also [looking for Software Engineer interns][embark-job-intern].

![Embark's logo](embark-logo-bg.jpg)

[Embark]: https://www.embark-studios.com
[embark-job]: https://www.embark-studios.com/jobs/910166-open-source-engineer
[embark-job-intern]: https://www.embark-studios.com/jobs/915561-internship-software-engineer-rust

## Bonus

Expand All @@ -1096,6 +1098,54 @@ 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]_

[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
combining destructible world and team-based ball game.

> SHAR is an action combination of tactical and sports game in the destructible world.
> The rules are extremely simple: two teams, one ball.
> The team that carries the ball into the opponent's gates gets a score,
> the team with the most score at the end of the game is the winner.
> However, this is where things get interesting!
> Players have the variety of skills and tricks and destructible environment
> to fiddle around to slam the opponent and win the game.

Some of the game's features:

- A network-synchronized physics engine powered by bullet-rs;
- A bunch of physics-based player skills;
- Extensive build-in editors for game maps, skeletal animation,
effects & particle systems;
- Modding support.

The game was built on top of a homegrown game engine using:
winit, glium, imgui-rs, [tinyecs], [awesomium-rs], [ears].

[![A screenshot from the recording](shar-talk.jpeg)][shar-talk]

During RustFest Zurich 2017, Fedor gave a self-descriptive talk
"SHAR: Rust's gamedev experience".
You can [watch the recording here][shar-talk].

The game was in active development around 2016-2017.
In 2017 the game [passed Steam Greenlight][shar-greenlight].
During 2018 [the project was suspended][shar-death].

[shar-itch]: https://fedorgames.itch.io/shar
[@fedor_games]: https://twitter.com/fedor_games
[shar-trailer]: https://youtube.com/watch?v=OVYQs3KY2EE
[shar-death]: https://fedorgames.itch.io/shar/devlog/52720/time-to-move-on
[shar-greenlight]: https://steamcommunity.com/sharedfiles/filedetails/?id=868228143
[shar-talk]: https://youtube.com/watch?v=nXR8f4r6ggM
[macroquad]: https://github.com/not-fl3/macroquad
[tinyecs]: https://github.com/not-fl3/tinyecs
[awesomium-rs]: https://github.com/not-fl3/awesomium-rs
[ears]: https://github.com/nickbrowne/ears

------

That's all news for today, thanks for reading!
Expand Down
Binary file added content/posts/newsletter-012/shar-talk.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added content/posts/newsletter-012/shar-youtube.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.