Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 2578b97

Browse filesBrowse files
bvssvniozkriff
andauthored
Newsletter 13: Piston (rust-gamedev#255)
* Newsletter 13: Piston * Update index.md * Update index.md * Newsletter 13: Piston: Add logo * Newsletter 13: Piston: Style/fmt tweaks * Newsletter 13: Piston: Move closer to engines * Update index.md Co-authored-by: Andrey Lesnikov <ozkriff@gmail.com>
1 parent f335e81 commit 2578b97
Copy full SHA for 2578b97

File tree

2 files changed

+89
-0
lines changed
Filter options

2 files changed

+89
-0
lines changed

‎content/posts/newsletter-013/index.md

Copy file name to clipboardExpand all lines: content/posts/newsletter-013/index.md
+89Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -828,6 +828,95 @@ information on the upcoming changes, see the [changelog][tetra-changelog].
828828
[tetra-042]: https://twitter.com/17cupsofcoffee/status/1294316642680426497
829829
[tetra-changelog]: https://github.com/17cupsofcoffee/tetra/blob/main/CHANGELOG.md
830830

831+
### [Piston]
832+
833+
![text logo](piston-logo.png)
834+
835+
[Piston] is a modular game engine written in Rust.
836+
837+
A new [Piston Discord Channel] has been set up
838+
for the Piston project.
839+
840+
Piston consists of a core library "piston" which itself are composed of
841+
smaller libraries for abstracting input, window and event loop.
842+
This design helps reducing breaking changes in the ecosystem.
843+
844+
The core library `pistoncore-input` is now stabilized and reached 1.0!
845+
This is the most important core abstraction, because it glues all
846+
libraries that are not independent of the core.
847+
848+
[Piston]: https://github.com/pistondevelopers/piston
849+
[Piston Discord Channel]: https://discord.gg/TkDnS9x
850+
851+
------
852+
853+
[Dyon] is a rusty dynamically typed scripting language.
854+
It is developed and maintained as part of the Piston project,
855+
but can be used as a standalone library.
856+
857+
Dyon is designed from the bottom up to be a good gamedev scripting language for Rust.
858+
It uses a lifetime checker instead of garbage collection, a mutability checker,
859+
optional namespaces and ad-hoc types, named argument syntax,
860+
4D vectors and HTML colors, plus a lot more features!
861+
862+
Recently, Dyon got better macro integration for native Rust types
863+
using `#` as a prefix.
864+
Here is an example of this feature is being tested in
865+
an experimental offline 3D renderer (not open sourced):
866+
867+
```text
868+
// Called by `set_simple(scene: _, sdf: _, id: _)`.
869+
dyon_fn!{fn set_simple__scene_sdf_id(
870+
scene: #&mut SimpleScene,
871+
sdf: #&Sdf,
872+
id: f64
873+
) {
874+
scene.sdfs[id as usize] = sdf.clone()
875+
}}
876+
```
877+
878+
To follow updates on Dyon, check out the subreddit [/r/dyon].
879+
880+
[Dyon]: https://github.com/pistondevelopers/dyon
881+
[/r/dyon]: https://reddit.com/r/dyon/
882+
883+
------
884+
885+
[Piston-Graphics] is a library for 2D graphics, written in Rust,
886+
that works with multiple backends.
887+
888+
`Stencil::Increment` has been added and the ecosystem
889+
has been updated to the latest version.
890+
891+
[Piston-Graphics]: https://github.com/pistondevelopers/graphics
892+
893+
------
894+
895+
The research branch of the Piston project, AdvancedResearch,
896+
has released a new ECS library [Nano-ECS].
897+
898+
This ECS design stores all components in a single array
899+
and uses bit masks for enabling/disabling components.
900+
An entity can have maximum 64 components and must be initalized
901+
with all components it uses in the future.
902+
Each entity has a slice into the array that stores all components.
903+
The `World` object, `Component` and systems are generated using macros.
904+
905+
One research project with Nano-ECS is to prototype a UI framework
906+
for Rust with a UI editor (not open sourced yet).
907+
This project uses Piston-Graphics by default,
908+
but can generate draw commands for processing by other 2D APIs.
909+
It is also possible to override rendering of widgets for
910+
custom looks with Piston-Graphics, which is often useful in gamedev.
911+
Recently, this project has gotten to a place where
912+
[tree-view interaction] is working.
913+
914+
You can follow development at [@PistonDeveloper at Twitter].
915+
916+
[@PistonDeveloper at Twitter]: https://twitter.com/PistonDeveloper
917+
[tree-view interaction]: https://twitter.com/PistonDeveloper/status/1299840279374110720
918+
[Nano-ECS]: https://github.com/advancedresearch/nano_ecs
919+
831920
### [starframe]
832921

833922
![Current state of starframe graphics and physics](starframe-demo.gif)
13.6 KB
Loading

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.