@@ -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 )
0 commit comments