From 63f66f693cc7ba1484a860163a0d4a8db537d17e Mon Sep 17 00:00:00 2001 From: Sven Nilsen Date: Thu, 3 Sep 2020 14:38:09 +0200 Subject: [PATCH 1/7] Newsletter 13: Piston --- content/posts/newsletter-013/index.md | 84 +++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) diff --git a/content/posts/newsletter-013/index.md b/content/posts/newsletter-013/index.md index b9c455648..a3883798d 100644 --- a/content/posts/newsletter-013/index.md +++ b/content/posts/newsletter-013/index.md @@ -66,6 +66,90 @@ 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](https://t.co/8YOj3auDr9?amp=1) has been set up +for the Piston project. + +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://tinyurl.com/y63f5xkv) is working. + +[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 From 33e13a267f098dd46cf53c931a0d1988e174ce44 Mon Sep 17 00:00:00 2001 From: Sven Nilsen Date: Thu, 3 Sep 2020 18:58:41 +0200 Subject: [PATCH 2/7] Update index.md --- content/posts/newsletter-013/index.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/content/posts/newsletter-013/index.md b/content/posts/newsletter-013/index.md index a3883798d..8f60c9408 100644 --- a/content/posts/newsletter-013/index.md +++ b/content/posts/newsletter-013/index.md @@ -70,7 +70,7 @@ If needed, a section can be split into subsections with a "------" delimiter. Piston is a modular game engine written in Rust. -A new [Discord channel](https://t.co/8YOj3auDr9?amp=1) has been set up +A new [Piston Discord Channel] has been set up for the Piston project. Piston consists of a core library "piston" which itself are composed of @@ -109,8 +109,7 @@ dyon_fn!{fn set_simple__scene_sdf_id( }} ``` -To follow updates on Dyon, check out the subreddit -[/r/dyon](https://old.reddit.com/r/dyon/). +To follow updates on Dyon, check out the subreddit [/r/dyon]. ------ @@ -123,7 +122,7 @@ 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). +has released a new ECS library [Nano-ECS]. This ECS design stores all components in a single array and uses bit masks for enabling/disabling components. @@ -139,11 +138,12 @@ 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://tinyurl.com/y63f5xkv) is working. +[tree-view interaction] is working. [Piston Discord Channel]: https://t.co/8YOj3auDr9?amp=1 [/r/dyon]: https://old.reddit.com/r/dyon/ -[@PistonDeveloper twitter)](https://twitter.com/PistonDeveloper) +[@PistonDeveloper at Twitter]: https://twitter.com/PistonDeveloper +[tree-view interaction]: https://twitter.com/PistonDeveloper/status/1299840279374110720 [Piston]: https://github.com/pistondevelopers/piston [Dyon]: https://github.com/pistondevelopers/dyon From 0307a63ed555311b099275912d7d54bf1797695b Mon Sep 17 00:00:00 2001 From: Sven Nilsen Date: Fri, 4 Sep 2020 15:07:08 +0200 Subject: [PATCH 3/7] Update index.md --- content/posts/newsletter-013/index.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/content/posts/newsletter-013/index.md b/content/posts/newsletter-013/index.md index 8f60c9408..d5f0d1ecc 100644 --- a/content/posts/newsletter-013/index.md +++ b/content/posts/newsletter-013/index.md @@ -68,7 +68,7 @@ If needed, a section can be split into subsections with a "------" delimiter. ### Piston -Piston is a modular game engine written in Rust. +[Piston] is a modular game engine written in Rust. A new [Piston Discord Channel] has been set up for the Piston project. @@ -83,7 +83,7 @@ libraries that are not independent of the core. ------ -Dyon is a rusty dynamically typed scripting language. +[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. @@ -113,7 +113,7 @@ To follow updates on Dyon, check out the subreddit [/r/dyon]. ------ -Piston-Graphics is a library for 2D graphics, written in Rust, +[Piston-Graphics] is a library for 2D graphics, written in Rust, that works with multiple backends. `Stencil::Increment` has been added and the ecosystem @@ -139,6 +139,7 @@ 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] is working. +You can follow development at [@PistonDeveloper at Twitter]. [Piston Discord Channel]: https://t.co/8YOj3auDr9?amp=1 [/r/dyon]: https://old.reddit.com/r/dyon/ From 69f519de184d3e72af1e5bd2019aee230308dbd2 Mon Sep 17 00:00:00 2001 From: Andrey Lesnikov Date: Mon, 7 Sep 2020 00:57:39 +0300 Subject: [PATCH 4/7] Newsletter 13: Piston: Add logo --- content/posts/newsletter-013/index.md | 2 ++ content/posts/newsletter-013/piston-logo.png | Bin 0 -> 13880 bytes 2 files changed, 2 insertions(+) create mode 100644 content/posts/newsletter-013/piston-logo.png diff --git a/content/posts/newsletter-013/index.md b/content/posts/newsletter-013/index.md index 4c7272263..425f040bc 100644 --- a/content/posts/newsletter-013/index.md +++ b/content/posts/newsletter-013/index.md @@ -518,6 +518,8 @@ that is written in Rust. ### [Piston] +![text logo](piston-logo.png) + [Piston] is a modular game engine written in Rust. A new [Piston Discord Channel] has been set up diff --git a/content/posts/newsletter-013/piston-logo.png b/content/posts/newsletter-013/piston-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..09278cf4b198b9cae0af23983daab6ccc0697b8f GIT binary patch literal 13880 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 m Date: Mon, 7 Sep 2020 09:00:04 +0300 Subject: [PATCH 5/7] Newsletter 13: Piston: Style/fmt tweaks --- content/posts/newsletter-013/index.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/content/posts/newsletter-013/index.md b/content/posts/newsletter-013/index.md index 425f040bc..20daf9eb3 100644 --- a/content/posts/newsletter-013/index.md +++ b/content/posts/newsletter-013/index.md @@ -533,6 +533,9 @@ 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. +[Piston]: https://github.com/pistondevelopers/piston +[Piston Discord Channel]: https://t.co/8YOj3auDr9?amp=1 + ------ [Dyon] is a rusty dynamically typed scripting language. @@ -546,7 +549,6 @@ optional namespaces and ad-hoc types, named argument syntax, 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): @@ -563,6 +565,9 @@ dyon_fn!{fn set_simple__scene_sdf_id( To follow updates on Dyon, check out the subreddit [/r/dyon]. +[Dyon]: https://github.com/pistondevelopers/dyon +[/r/dyon]: https://reddit.com/r/dyon/ + ------ [Piston-Graphics] is a library for 2D graphics, written in Rust, @@ -571,6 +576,8 @@ that works with multiple backends. `Stencil::Increment` has been added and the ecosystem has been updated to the latest version. +[Piston-Graphics]: https://github.com/pistondevelopers/graphics + ------ The research branch of the Piston project, AdvancedResearch, @@ -591,16 +598,11 @@ 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] is working. + You can follow development at [@PistonDeveloper at Twitter]. -[Piston Discord Channel]: https://t.co/8YOj3auDr9?amp=1 -[/r/dyon]: https://old.reddit.com/r/dyon/ [@PistonDeveloper at Twitter]: https://twitter.com/PistonDeveloper [tree-view interaction]: https://twitter.com/PistonDeveloper/status/1299840279374110720 - -[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 ### [SPIR-Q] v0.4.6 From 4b39d6855a81c09b3f445651f6414ea0e412b4ed Mon Sep 17 00:00:00 2001 From: Andrey Lesnikov Date: Mon, 7 Sep 2020 09:10:34 +0300 Subject: [PATCH 6/7] Newsletter 13: Piston: Move closer to engines --- content/posts/newsletter-013/index.md | 178 +++++++++++++------------- 1 file changed, 89 insertions(+), 89 deletions(-) diff --git a/content/posts/newsletter-013/index.md b/content/posts/newsletter-013/index.md index 20daf9eb3..8dfa22a0d 100644 --- a/content/posts/newsletter-013/index.md +++ b/content/posts/newsletter-013/index.md @@ -516,95 +516,6 @@ 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 -### [Piston] - -![text logo](piston-logo.png) - -[Piston] is a modular game engine written in Rust. - -A new [Piston Discord Channel] has been set up -for the Piston project. - -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. - -[Piston]: https://github.com/pistondevelopers/piston -[Piston Discord Channel]: https://t.co/8YOj3auDr9?amp=1 - ------- - -[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]. - -[Dyon]: https://github.com/pistondevelopers/dyon -[/r/dyon]: https://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. - -[Piston-Graphics]: https://github.com/pistondevelopers/graphics - ------- - -The research branch of the Piston project, AdvancedResearch, -has released a new ECS library [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] is working. - -You can follow development at [@PistonDeveloper at Twitter]. - -[@PistonDeveloper at Twitter]: https://twitter.com/PistonDeveloper -[tree-view interaction]: https://twitter.com/PistonDeveloper/status/1299840279374110720 -[Nano-ECS]: https://github.com/advancedresearch/nano_ecs - ### [SPIR-Q] v0.4.6 [SPIR-Q] is a light-weight shader reflection library, which allows you to query @@ -813,6 +724,95 @@ information on the upcoming changes, see the [changelog][tetra-changelog]. [tetra-042]: https://twitter.com/17cupsofcoffee/status/1294316642680426497 [tetra-changelog]: https://github.com/17cupsofcoffee/tetra/blob/main/CHANGELOG.md +### [Piston] + +![text logo](piston-logo.png) + +[Piston] is a modular game engine written in Rust. + +A new [Piston Discord Channel] has been set up +for the Piston project. + +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. + +[Piston]: https://github.com/pistondevelopers/piston +[Piston Discord Channel]: https://t.co/8YOj3auDr9?amp=1 + +------ + +[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]. + +[Dyon]: https://github.com/pistondevelopers/dyon +[/r/dyon]: https://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. + +[Piston-Graphics]: https://github.com/pistondevelopers/graphics + +------ + +The research branch of the Piston project, AdvancedResearch, +has released a new ECS library [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] is working. + +You can follow development at [@PistonDeveloper at Twitter]. + +[@PistonDeveloper at Twitter]: https://twitter.com/PistonDeveloper +[tree-view interaction]: https://twitter.com/PistonDeveloper/status/1299840279374110720 +[Nano-ECS]: https://github.com/advancedresearch/nano_ecs + ### [starframe] ![Current state of starframe graphics and physics](starframe-demo.gif) From e9eab34ba3c3d7936511c04e8b6a711fb1cc43b8 Mon Sep 17 00:00:00 2001 From: Sven Nilsen Date: Mon, 7 Sep 2020 12:03:32 +0200 Subject: [PATCH 7/7] Update index.md --- content/posts/newsletter-013/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/posts/newsletter-013/index.md b/content/posts/newsletter-013/index.md index 8dfa22a0d..13d20ede6 100644 --- a/content/posts/newsletter-013/index.md +++ b/content/posts/newsletter-013/index.md @@ -742,7 +742,7 @@ This is the most important core abstraction, because it glues all libraries that are not independent of the core. [Piston]: https://github.com/pistondevelopers/piston -[Piston Discord Channel]: https://t.co/8YOj3auDr9?amp=1 +[Piston Discord Channel]: https://discord.gg/TkDnS9x ------