From db16b1428a5157c06480fb3a83760ed4a3165fd7 Mon Sep 17 00:00:00 2001 From: Evan Hemsley <2342303+ehemsley@users.noreply.github.com> Date: Thu, 23 May 2019 17:45:22 -0700 Subject: [PATCH] decoupling manifesto --- content/pong/move_paddle/decoupling.md | 174 +++++++++++++++++++++++ content/pong/move_paddle/magic_values.md | 69 +++++++++ static/images/faster_paddle.webm | Bin 0 -> 115164 bytes 3 files changed, 243 insertions(+) create mode 100644 content/pong/move_paddle/decoupling.md create mode 100644 content/pong/move_paddle/magic_values.md create mode 100644 static/images/faster_paddle.webm diff --git a/content/pong/move_paddle/decoupling.md b/content/pong/move_paddle/decoupling.md new file mode 100644 index 0000000..f7c75c8 --- /dev/null +++ b/content/pong/move_paddle/decoupling.md @@ -0,0 +1,174 @@ +--- +title: "Decoupling" +date: 2019-05-23T16:37:26-07:00 +weight: 30 +--- + +There's more to decoupling than just objects not directly referencing each other. + +Really, when we talk about decoupling, we are saying that we don't want the structure of the program having unnecessary direct connections. + +This is a pretty abstract principle, but there is a nice illustration of it in our program as it exists right now. + +Right now our InputEngine is sending Messages to our MotionMessage. Is that actually what we want? + +What I am saying is... can you think of an example where something other than direct input might want to control the movement of a paddle? + +What about AI? What about an "attract mode"? + +There's also a lot of structure about the paddle entity being embedded into the logic of the InputEngine. That doesn't feel good to me either. + +Let's put something in between them. + +We have to ask ourselves: how is it that we want the game to react when we press the buttons? We want the correct paddle to move up or down. That seems like a good abstraction for a Message. + +Create a file: **game/engines/paddle_move_up.ts** + +```ts +import { ComponentMessage, Message } from "encompass-ecs"; +import { PlayerComponent } from "game/components/player"; + +export class PaddleMoveUpMessage extends Message implements ComponentMessage { + public component: Readonly; +} +``` + +and a file: **game/messages/paddle_move_down.ts** + +```ts +import { ComponentMessage, Message } from "encompass-ecs"; +import { PlayerComponent } from "game/components/player"; + +export class PaddleMoveDownMessage extends Message implements ComponentMessage { + public component: Readonly; +} +``` + +Uh oh, something seems weird here too. Why PlayerOneComponent? Sounds like we need some abstraction. + +Create a file: **game/components/player.ts** + +```ts +import { Component } from "encompass-ecs"; + +export abstract class PlayerComponent extends Component {} +``` + +*abstract* means that the class cannot be used directly, but must be inherited. + +Change **games/component/player_one.ts**: + +```ts +import { PlayerComponent } from "./player"; + +export class PlayerOneComponent extends PlayerComponent {} +``` + +And create **games/component/player_two.ts**: + +```ts +import { PlayerComponent } from "./player"; + +export class PlayerTwoComponent extends PlayerComponent {} +``` + +One more thing: Why do we have separate MoveUp and MoveDown messages? The only distinction is the direction, which can easily be represented by a number. Let's consolidate everything. + +Delete our PaddleMoveUpMessage and PaddleMoveDownMessage. + +Create a file: **game/messages/paddle_move.ts** + +```ts +import { ComponentMessage, Message } from "encompass-ecs"; +import { PlayerComponent } from "game/components/player"; + +export class PaddleMoveMessage extends Message implements ComponentMessage { + public component: Readonly; + public direction: number; +} +``` + +Now we're ready to rumble!! + +Create a file: **game/engines/paddle_movement.ts** + +```ts +import { Emits, Engine, Reads } from "encompass-ecs"; +import { PaddleMoveSpeedComponent } from "game/components/paddle_move_speed"; +import { PositionComponent } from "game/components/position"; +import { MotionMessage } from "game/messages/component/motion"; +import { PaddleMoveMessage } from "game/messages/component/paddle_move"; + +@Reads(PaddleMoveMessage) +@Emits(MotionMessage) +export class PaddleMovementEngine extends Engine { + public update() { + for (const message of this.read_messages(PaddleMoveMessage).values()) { + const player_component = message.component; + const player_entity = this.get_entity(player_component.entity_id); + + if (player_entity) { + const position_component = player_entity.get_component(PositionComponent); + const move_speed_component = player_entity.get_component(PaddleMoveSpeedComponent); + + const motion_message = this.emit_component_message(MotionMessage, position_component); + motion_message.x = 0; + motion_message.y = message.direction * move_speed_component.y; + } + } + } +} +``` + +Finally, we revise our InputEngine to send PaddleMoveMessages. + +```ts +import { Emits, Engine } from "encompass-ecs"; +import { PlayerOneComponent } from "game/components/player_one"; +import { PaddleMoveMessage } from "game/messages/component/paddle_move"; + +@Emits(PaddleMoveMessage) +export class InputEngine extends Engine { + public update() { + const player_one_component = this.read_component(PlayerOneComponent); + + if (player_one_component) { + const player_one_entity = this.get_entity(player_one_component.entity_id); + + if (player_one_entity) { + if (love.keyboard.isDown("up")) { + const message = this.emit_component_message(PaddleMoveMessage, player_one_component); + message.direction = -1; + } else if (love.keyboard.isDown("down")) { + const message = this.emit_component_message(PaddleMoveMessage, player_one_component); + message.direction = 1; + } + } + } + } +} +``` + +And don't forgot to add our new Engine to the WorldBuilder. + +```ts +world_builder.add_engine(PaddleMovementEngine); +``` + +Look at how concise and easy to understand everything is now! And when we get around to adding Player 2 we'll barely have to do any work at all, because everything that drives Player 1 can be used to drive Player 2. + +Decoupling isn't just a law we follow just because someone told us it was a good idea or whatever. It exists as a principle to remind us to try to express our ideas at a higher level, so we can write more powerful and concise code and create less room for error. + +When you get more experienced you'll be able to sniff out tightly coupled code very easily. Don't stress about it too much, but keep the idea in the back of your mind always. + +Before we move on, let's make the paddle a little zippier. + +```ts +move_speed_component.y = 400; +``` + + + +That's more like it. diff --git a/content/pong/move_paddle/magic_values.md b/content/pong/move_paddle/magic_values.md new file mode 100644 index 0000000..1913063 --- /dev/null +++ b/content/pong/move_paddle/magic_values.md @@ -0,0 +1,69 @@ +--- +title: "Magic Values" +date: 2019-05-23T15:51:58-07:00 +weight: 25 +--- + +Our code right now is violating one more good architecture principle. + +```ts +if (love.keyboard.isDown("up")) { + const message = this.emit_component_message(MotionMessage, player_one_position_component); + message.x = 0; + message.y = -10; +} +``` + +*Magic values* refer to numbers that have been placed directly in the code. The values being set to *message.x* and *message.y* above are magic values. Why are magic values bad? + +Magic values introduce the possibility of duplication. Let's say I start adding my code to be able to move paddles down. Now I have to change the numbers in two different places. If I ever change one without changing the other, I have introduced a bug. + +There's another reason to avoid magic values too. Suppose I haven't looked at the InputEngine for a while, but I suddenly decide that the paddles are moving too slow. Intuitively, I would want to look for a Component that contains those values, but instead, they would be hidden in the InputEngine. This isn't what you would really expect - why would Input have anything to do with the speed of the paddles? + +Organizing your information consistently is crucial to being able to easily find things that you need to change. You'll thank yourself later. + +Let's make a new Component. + +Create a file: **game/components/paddle_move_speed.ts** + +```ts +import { Component } from "encompass-ecs"; + +export class PaddleMoveSpeedComponent extends Component { + public y: number; +} +``` + +And let's add it to our paddle Entity. + +In **game/game.ts** + +```ts +const move_speed_component = paddle_entity.add_component(PaddleMoveSpeedComponent); +move_speed_component.y = 10; +``` + +Now let's tell our InputEngine to use it, and why don't we go ahead and make the "down" key move the paddle downward too. + +```ts +... + +if (player_one_entity) { + const player_one_position_component = player_one_entity.get_component(PositionComponent); + const player_one_move_speed_component = player_one_entity.get_component(PaddleMoveSpeedComponent); + + if (love.keyboard.isDown("up")) { + const message = this.emit_component_message(MotionMessage, player_one_position_component); + message.x = 0; + message.y = -player_one_move_speed_component.y; + } else if (love.keyboard.isDown("down")) { + const message = this.emit_component_message(MotionMessage, player_one_position_component); + message.x = 0; + message.y = player_one_move_speed_component.y; + } +} + +... +``` + +I'm starting to get get a bad feeling about this. Are you? Let me explain. diff --git a/static/images/faster_paddle.webm b/static/images/faster_paddle.webm new file mode 100644 index 0000000000000000000000000000000000000000..fa1072d70e97880e9003611caea74b09914c4e1f GIT binary patch literal 115164 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 literal 0 HcmV?d00001