From e80b3c18ae140cf970d2ee9af0412de596f5992f Mon Sep 17 00:00:00 2001 From: Evan Hemsley <2342303+ehemsley@users.noreply.github.com> Date: Wed, 22 May 2019 14:22:29 -0700 Subject: [PATCH] talking about renderers --- content/concepts/renderer.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 content/concepts/renderer.md diff --git a/content/concepts/renderer.md b/content/concepts/renderer.md new file mode 100644 index 0000000..a08639a --- /dev/null +++ b/content/concepts/renderer.md @@ -0,0 +1,19 @@ +--- +title: "Renderer" +date: 2019-05-22T14:16:06-07:00 +weight: 30 +--- + +A Renderer is responsible for reading the game state and telling the game engine what to draw to the screen. + +{{% notice notice %}} +Remember: Encompass isn't a game engine and it doesn't have a rendering system. So Renderers aren't actually doing the rendering, they're just telling the game engine what to render. +{{% /notice %}} + +There are two kinds of renderers: GeneralRenderers and EntityRenderers. + +A GeneralRenderer is a Renderer which reads the game state in order to draw elements to the screen. It also requires a layer, which represents the order in which it will draw to the screen. + +An EntityRenderer provides a structure for the common pattern of drawing an Entity which has a particular collection of Components and a specific type of DrawComponent. They also have the ability to draw DrawComponents at their specific layer. + +For 2D games, you will need to be specific about the order in which things draw. For a 3D game you will probably end up delegating rendering to some kind of scene/camera system.