Skip to content

Newsletter 13: ecsbench, inline_tweak, yacurses, amethyst #271

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
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
Binary file added content/posts/newsletter-013/amethyst-logo.png
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-013/ecs-bench.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
90 changes: 90 additions & 0 deletions content/posts/newsletter-013/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -420,6 +420,26 @@ game development are planned.

## Library & Tooling Updates

### [ecs_bench_suite]

![Summary results table](ecs-bench.png)
_The full benchmark report is available [here][ecs_report]_

This month [@TomGillen] (author of the [Legion][legion] ECS) released
[ecs_bench_suite] - a suite of benchmarks designed to test and compare
Rust ECS library performance across a variety of challenging circumstances.
Later, the project was adopted by the Rust GameDev WG
so that all Rust ECS developers can converge on a neutral,
community-maintained benchmark.

_Discussions:
[/r/rust](https://reddit.com/r/rust/comments/icczxh/ecs_bench_suite)_

[ecs_bench_suite]: https://github.com/rust-gamedev/ecs_bench_suite
[@TomGillen]: https://github.com/TomGillen
[legion]: https://github.com/amethyst/legion
[ecs_report]: https://rust-gamedev.github.io/ecs_bench_suite/target/criterion/report/index.html

### [Rapier: 2D and 3D Physics Engines Focused on Performance][rapier-august]

[![Rapier logo](rapier-logo.svg)][Rapier]
Expand Down Expand Up @@ -544,6 +564,45 @@ that is written in Rust.
[mun-august]: https://mun-lang.org/blog/2020/08/30/this-month-august/
[mun-inkwell]: https://crates.io/crates/inkwell

### [inline_tweak]

![Demo with moving traffic lights](inline-tweak.gif)

[inline_tweak] by [@Uriopass] is a library that allows you to
tweak at runtime any number literal directly from your code.
It works by parsing the file when a change occurs
(inspired by [this blogpost][tuxedolabs-post] from Tuxedo labs).
Usage example:

```rust
use inline_tweak::tweak;
loop {
// Try changing the value while the application is running
println!("{}", tweak!(3.14));
}
```

A `watch!()` macro that sleeps until the file is modified is also provided.

The library is minimal, only requiring the `lazy_static` dependency
to hold modified values.
In release mode, the tweaking code is disabled and compiled away.

[inline_tweak]: https://crates.io/crates/inline_tweak
[@Uriopass]: https://github.com/Uriopass
[tuxedolabs-post]: http://blog.tuxedolabs.com/2018/03/13/hot-reloading-hardcoded-parameters.html

### [yacurses]

[yacurses] by [@Lokathor] is a cross-platform curses bindings crate that's
small, simple, easy to understand, and most importantly safe to use.
It wraps over `ncurses` on Unix and a bundled `pdcurses` on Windows.
If you're looking to make a terminal-based roguelike
(or any other terminal-based game), give it a try.

[yacurses]:https://lib.rs/crates/yacurses
[@Lokathor]: https://github.com/Lokathor

### [SPIR-Q] v0.4.6

[SPIR-Q] is a light-weight shader reflection library, which allows you to query
Expand Down Expand Up @@ -917,6 +976,37 @@ You can follow development at [@PistonDeveloper at Twitter].
[tree-view interaction]: https://twitter.com/PistonDeveloper/status/1299840279374110720
[Nano-ECS]: https://github.com/advancedresearch/nano_ecs

### [Amethyst v0.15.1][amethyst-v0-15-1-post]

![logo](amethyst-logo.png)

[Amethyst][amethyst] is a game engine and tool-set
for ambitious game developers.

This month a [v0.15.1 version was released][amethyst-v0-15-1-post].
Updates include:

- New book chapters for [UI][amethyst-ui] and [Tiles][amethyst-tiles];
- [Updated examples][amethyst-examples], with special attention to the pong example;
- Switch to [GitHub Actions for CI][amethyst-ga];
- Lots of API improvements and bug fixes.

For more details see the [full changelog][amethyst-changelog].

v0.16 plans include a full migration to the [Legion ECS][legion]
and a big site face lift.

_Discussions:
[/r/rust](https://reddit.com/r/rust/comments/ibvheq/amethyst_engine_v0151)_

[amethyst]: https://amethyst.rs
[amethyst-v0-15-1-post]: https://amethyst.rs/posts/release-0.15.1
[amethyst-examples]: https://github.com/amethyst/amethyst/tree/v0.15.1/examples
[amethyst-ui]: https://book.amethyst.rs/stable/ui.html
[amethyst-tiles]: https://book.amethyst.rs/stable/tiles.html
[amethyst-ga]: https://github.com/amethyst/amethyst/blob/v0.15.1/.github/workflows/ci.yml
[amethyst-changelog]: https://github.com/amethyst/amethyst/blob/master/docs/CHANGELOG.md#0151---2020-08-14

### [starframe]

![Current state of starframe graphics and physics](starframe-demo.gif)
Expand Down
Binary file added content/posts/newsletter-013/inline-tweak.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.