Skip to content

Newsletter 13: Piston #254

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

Closed
wants to merge 6 commits into from
Closed
Changes from 1 commit
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
Next Next commit
Update index.md
  • Loading branch information
bvssvni authored Sep 3, 2020
commit e00161303a5e166fff4efef85d5dc5d491ca523e
70 changes: 70 additions & 0 deletions content/posts/newsletter-013/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,76 @@ If needed, a section can be split into subsections with a "------" delimiter.

## Library & Tooling Updates

### Piston

Piston is a modular game engine written in Rust.

A new Discord channel has been set up for the Piston project: https://t.co/8YOj3auDr9?amp=1

Piston consists of a core library "piston" which itself are composed of smaller libraries for abstracting input, window and event loop.
This design helps reducing breaking changes in the ecosystem.

The core library `pistoncore-input` is now stabilized and reached 1.0!
This is the most important core abstraction, because it glues all libraries that are not independent of the core.

------

Dyon is a rusty dynamically typed scripting language.
It is developed and maintained as part of the Piston project, but can be used as a standalone library.

Dyon is designed from the bottom up to be a good gamedev scripting language for Rust.
It uses a lifetime checker instead of garbage collection, a mutability checker,
optional namespaces and ad-hoc types, named argument syntax, 4D vectors and HTML colors, plus a lot more features!

Recently, Dyon got better macro integration for native Rust types using `#` as a prefix.

Here is an example of this feature is being tested in an experimental offline 3D renderer (not open sourced):

```text
// Called by `set_simple(scene: _, sdf: _, id: _)`.
dyon_fn!{fn set_simple__scene_sdf_id(
scene: #&mut SimpleScene,
sdf: #&Sdf,
id: f64
) {
scene.sdfs[id as usize] = sdf.clone()
}}
```

To follow updates on Dyon, check out the subreddit [/r/dyon](https://old.reddit.com/r/dyon/).

------

Piston-Graphics is a library for 2D graphics, written in Rust, that works with multiple backends.

`Stencil::Increment` has been added and the ecosystem has been updated to the latest version.

------

The research branch of the Piston project, AdvancedResearch, has released a new ECS library [Nano-ECS](https://github.com/advancedresearch/nano_ecs).

This ECS design stores all components in a single array and uses bit masks for enabling/disabling components.
An entity can have maximum 64 components and must be initalized with all components it uses in the future.
Each entity has a slice into the array that stores all components.
The `World` object, `Component` and systems are generated using macros.

One research project with Nano-ECS is to prototype a UI framework for Rust with a UI editor (not open sourced yet).
This project uses Piston-Graphics by default, but can generate draw commands for processing by other 2D APIs.
It is also possible to override rendering of widgets for custom looks with Piston-Graphics, which is often useful in gamedev.
Recently, this project has gotten to a place where [tree-view interaction](https://twitter.com/PistonDeveloper/status/1299840279374110720) is working.

------

Discussions:
[Piston Discord Channel]: https://t.co/8YOj3auDr9?amp=1
[/r/dyon]: https://old.reddit.com/r/dyon/
[@PistonDeveloper (twitter)](https://twitter.com/PistonDeveloper)

[Piston]: https://github.com/pistondevelopers/piston
[Dyon]: https://github.com/pistondevelopers/dyon
[Piston-Graphics]: https://github.com/pistondevelopers/graphics
[Nano-ECS]: https://github.com/advancedresearch/nano_ecs

## Popular Workgroup Issues in Github

## Meeting Minutes
Expand Down