Skip to content

Commit 2578b97

Browse files
bvssvniozkriff
andauthored
Newsletter 13: Piston (#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

File tree

2 files changed

+89
-0
lines changed

2 files changed

+89
-0
lines changed

content/posts/newsletter-013/index.md

+89
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)