From 36da5103a7371d74447125cbde8b0eef438ce908 Mon Sep 17 00:00:00 2001 From: theredfish Date: Fri, 10 Feb 2023 23:28:25 +0100 Subject: [PATCH 1/2] N42: ECS intro learning material --- content/news/042/index.md | 11 +++++++++++ content/news/042/intro-ecs.png | Bin 0 -> 42796 bytes 2 files changed, 11 insertions(+) create mode 100644 content/news/042/intro-ecs.png diff --git a/content/news/042/index.md b/content/news/042/index.md index edd012ddb..197f4adca 100644 --- a/content/news/042/index.md +++ b/content/news/042/index.md @@ -156,6 +156,17 @@ any game made with [`bevy_ggrs`][bevy_ggrs]. ## Learning Material Updates +### [Introduction to the Entity Component System] + +![Introduction to the Entity Component System](intro-ecs.png) + +[@indiedevcasts](https://twitter.com/indiedevcasts) published a +[new blog post](https://indiedevcasts.com/posts/ecs-introduction), exploring +object-oriented and data-oriented designs before giving an introduction to the +Entity Component System paradigm. + +[Introduction to the Entity Component System]: https://indiedevcasts.com/posts/ecs-introduction + ## Tooling Updates ### [Foxtrot] diff --git a/content/news/042/intro-ecs.png b/content/news/042/intro-ecs.png new file mode 100644 index 0000000000000000000000000000000000000000..70dc95480a6c60a2c6f008b5d8f7c9ea93f32f1d GIT binary patch literal 42796 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 i&)`n|WH&lC{bz5AQGBF&X=^kC5O})!xvX Date: Sat, 11 Feb 2023 14:14:08 +0400 Subject: [PATCH 2/2] N42: ECS article: Fmt tweaks --- content/news/042/index.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/content/news/042/index.md b/content/news/042/index.md index 197f4adca..e4cd902b9 100644 --- a/content/news/042/index.md +++ b/content/news/042/index.md @@ -156,16 +156,16 @@ any game made with [`bevy_ggrs`][bevy_ggrs]. ## Learning Material Updates -### [Introduction to the Entity Component System] +### [Introduction to the Entity Component System][tut-ecs-intro] -![Introduction to the Entity Component System](intro-ecs.png) +![Title card: Introduction to the Entity Component System](intro-ecs.png) -[@indiedevcasts](https://twitter.com/indiedevcasts) published a -[new blog post](https://indiedevcasts.com/posts/ecs-introduction), exploring -object-oriented and data-oriented designs before giving an introduction to the -Entity Component System paradigm. +[@indiedevcasts] published [a new blog post][tut-ecs-intro], +exploring object-oriented and data-oriented designs before +giving an introduction to the Entity Component System paradigm. -[Introduction to the Entity Component System]: https://indiedevcasts.com/posts/ecs-introduction +[tut-ecs-intro]: https://indiedevcasts.com/posts/ecs-introduction +[@indiedevcasts]: https://twitter.com/indiedevcasts ## Tooling Updates