# Course: Let's Make a Game! - Brick Breakers

**URL:** <https://forums.unrealengine.com/t/course-lets-make-a-game-brick-breakers/578887>\
**Category:** Tutorial & Course Discussions\
**Tags:** unreal-engine\
**Created:** [June 10, 2022, 5:53pm UTC](https://forums.unrealengine.com/t/course-lets-make-a-game-brick-breakers/578887 "2022-06-10T17:53:27Z")\
**Posts on this page:** 9\
**Page:** 3

<div class="post-metadata">

**Author:** ![Culveyhouse](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Culveyhouse](https://forums.unrealengine.com/u/Culveyhouse)\
**Post date:** [October 30, 2022, 11:52pm UTC](https://forums.unrealengine.com/t/course-lets-make-a-game-brick-breakers/578887/44 "2022-10-30T23:52:00Z")

</div>

I have very good news for anyone attempting to build Brick Breakers using this tutorial. Although it’s a real mess and very difficult to follow, you _can_ prevail and produce a fun game.

Even though I praise Sam for giving us this tutorial and opportunity to make a really cool little game with no C++ coding, this is a really, really poor way to recruit people into using Unreal Engine 5.

Because of this, I decided to build this game a 2nd time, but this time I stream my game development, live on Twitch (then re-running & storing them on YouTube). By the time I’m finished, there should be about 5 streams total (I just streamed the 2nd one yesterday). In the streams I cut through the mistakes and errors in the tutorial (and solve my own goofs, hah).

If anyone would like to start skimming through the streams, here’s the growing playlist for Brick Breakers. Also, yes I might criticize the author a lot, but just ignore it. It’s all in good humor:

Game Development streams of Brick Breakers: (start with Tiny Game #3 streams)  
https://www.youtube.com/embed/videoseries?list=PLsyeQweJOrgJHX8RuwEaHyLx1j1JFgarH&wmode=transparent&rel=0&autohide=1&showinfo=1&enablejsapi=1

---

<div class="post-metadata">

**Author:** ![Culveyhouse](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Culveyhouse](https://forums.unrealengine.com/u/Culveyhouse)\
**Post date:** [November 7, 2022, 1:29am UTC](https://forums.unrealengine.com/t/course-lets-make-a-game-brick-breakers/578887/45 "2022-11-07T01:29:11Z")

</div>

This is an optional feature for anyone who has finished this tutorial: I noticed that the ball can often get “stuck” bouncing nearly horizontally, essentially messing up the game. I spent a whole day making a fix, and here’s what I attached to the BP\_Ball’s Event Hit node. It checks if the ball’s vertical movement is below a certain threshold, then it swaps the X and Z velocity and tosses in a touch of randomness too. It works really well, even if it looks slightly odd when it triggers. Feel free to replicate this in your ball’s event hit logic:

Add two public variables too:

1. horizontal\_movement\_trigger , I set it to 400
2. deflect\_randomizer, I set it to 375

 ![Screenshot 2022-11-06 172511](https://d3kjluh73b9h9o.cloudfront.net/original/4X/c/c/9/cc9852a582f862c373d4b11064b241ca87a27f9b.png)

---

<div class="post-metadata">

**Author:** ![Culveyhouse](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Culveyhouse](https://forums.unrealengine.com/u/Culveyhouse)\
**Post date:** [December 30, 2022, 6:42am UTC](https://forums.unrealengine.com/t/course-lets-make-a-game-brick-breakers/578887/46 "2022-12-30T06:42:26Z")

</div>

Hi brickbreakers… well I finally completed my version of Brick Breakers, and I released it! Not only is it available publicly, but I also have all of the code/files checked into GitHub publicly too.

Here it is. Building the levels was a lot of fun and a learning experience. There are rotating bricks, embedded bricks, and the chaos/destruction system, which bugs out often unfortunately.

I used UE 5.0.3 for this, and I hear some of the chaos-related crashes have been identified and solved in 5.1.

Please download it and let me know what you think!

> **[Brick Breakers (Tiny Game #3) by Simple Shorts](https://simpleshorts.itch.io/brick-breakers-tiny-game-3)**
>
> This is my first full game with a game loop I created in UE5 via an Epic tutorial.

---

<div class="post-metadata">

**Author:** ![osmanzort](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@osmanzort](https://forums.unrealengine.com/u/osmanzort)\
**Post date:** [January 10, 2023, 5:24pm UTC](https://forums.unrealengine.com/t/course-lets-make-a-game-brick-breakers/578887/47 "2023-01-10T17:24:31Z")

</div>

I agree with most people here; this “tutorial” has been very hard to follow, not because it’s introducing advanced concepts or whatever but because everything is either inconsistent or too vague. There are naming inconsistencies, what it tells me to do and what it shows are almost always different. Most of the time I’m not sure where I need to put the code so I need to read the sentence 20 times and then toss a coin. It’s a real pain to follow through, I wish it was prepared better because i really liked the project.

---

<div class="post-metadata">

**Author:** ![PwTa](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/pwta/32/590260_2.png) [@PwTa](https://forums.unrealengine.com/u/PwTa)\
**Post date:** [January 20, 2023, 2:24am UTC](https://forums.unrealengine.com/t/course-lets-make-a-game-brick-breakers/578887/48 "2023-01-20T02:24:02Z")

</div>

Another “I agree with everything that’s been said” response. I’ve been a technical artist for 28 years, and this is the furthest thing I’ve ever seen from a “beginner” tutorial in context of incomplete/error-ridden execution and a lack of proper & thorough explanation. If you’re going to pitch a learning resource to new devs then it _ **needs** _ to be as methodical and as near to perfectly precise as possible. It also needs to provide background and basis for fairly abstract concepts, e.g. interfaces, and also not introduce concepts (data persistence) and implement code for said concept without follow-through (nowhere was the actual creation of the interface elements which utilized the persistent data covered).

Also, don’t bait-and-switch polished visuals where properly prototype-quality asset instances should exist as part of the explanation up to that point. Oh yes, and for true beginners, things like basic setup of game levels such that the emissive materials glow (post process volume) and how to achieve the stylized background in the game (manipulation of atmospheric elements and exponential height fog) is also important. Don’t show stuff like that unless it’s explicitly explained, or links to resources which detail how to do it are provided.

This could be a brilliant intermediate-level, fully-fledged game implementation tutorial in a familiar and fun genre. However, as it stands, I think it’s gets people excited and then, almost universally, frustrates the hell out of them because they think this it is “beginner level”, and the full scope of this game implementation is **absolutely** not. At least not in context of its target audience.

---

<div class="post-metadata">

**Author:** ![WoodAndGears](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@WoodAndGears](https://forums.unrealengine.com/u/WoodAndGears)\
**Post date:** [February 14, 2023, 8:07am UTC](https://forums.unrealengine.com/t/course-lets-make-a-game-brick-breakers/578887/49 "2023-02-14T08:07:41Z")

</div>

Excellent contribution! I’ll watch all of this.  
Part of the issue (this is my first tutorial) is that I cannot find the video you are following. I see nothing but a text description in the Epic Dev Community which is even harder to get right.  
(Currently, my spline move is sort of working, but the paddle is perpendicular to the spline when moving… even though it isn’t in the blueprint. Hope to sort that out.)

---

<div class="post-metadata">

**Author:** ![iiizno](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/iiizno/32/88719_2.png) [@iiizno](https://forums.unrealengine.com/u/iiizno)\
**Post date:** [March 27, 2023, 3:16pm UTC](https://forums.unrealengine.com/t/course-lets-make-a-game-brick-breakers/578887/50 "2023-03-27T15:16:52Z")

</div>

Hi every-one. I’m trying to do this course using the new Enhanced input system.  
I can move the mouse cursor, but the Set Play Rate is … weird and looks really buggy. Any one tried and succeeded to have proper movement with the Enhanced Input mapping?

---

<div class="post-metadata">

**Author:** ![RobMeade](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@RobMeade](https://forums.unrealengine.com/u/RobMeade)\
**Post date:** [December 30, 2023, 4:56pm UTC](https://forums.unrealengine.com/t/course-lets-make-a-game-brick-breakers/578887/53 "2023-12-30T16:56:36Z")

</div>

Hey,

I appreciate its a bit late based on when you posted, but I thought I’d offer what I did using the Enhanced Input System, perhaps it will help the next person who follows along…

I’m currently using version 5.3.2.

First, we’ll create our **InputAction**

- Create an **InputAction** , I named mine _IA\_MoveHorizontally_
- Set the **Value Type** to Axis 2D
- Leave the **Triggers** and **Modifiers** empty
- Save

 ![image](https://d3kjluh73b9h9o.cloudfront.net/original/4X/f/7/4/f74e14f4be4791d4c8d875ca2a779e4c5736acdd.png)

Next we create our **InputMappingContext** ;

- Create an **InputMappingContext** , I named mine _IMC\_Default_
- Click the _Add Mapping_ icon (+)
- Select **IA\_MoveHorizontally**
- Click the _Add a Control Binding_ icon (+)
- Change the type to the mouse, and select **Mouse XY 2D-Axis**
- Save

I also added keyboard support;

- Add entries for keys **A** and **D**
- For the **A** key entry I added a **Negate** modifier for the **X** axis

 ![image](https://d3kjluh73b9h9o.cloudfront.net/original/4X/f/a/a/faab3cb0e153c01c8ed6a0935d36c2a385b9718a.png)

- Open the PlayerController asset you created, I named mine _BP\_PlayerController_
- Add the **BeginPlay** event
- Add the following nodes to add the **InputMappingContext** asset you created above

 ![image](https://d3kjluh73b9h9o.cloudfront.net/original/4X/1/1/0/1108295eaea02dad616f7b64118db732f7e5d881.png)

We need to add our **InputMappingContext** (_IMC\_Default_) to the **EnhancedInputLocalPlayerSubsystem** ;

- Check you’ve set the _Mapping Context_ property in the **Add Mapping Context** node
- Click Compile
- Save

Next we respond to our **InputAction** event;

- Right-click on the graph and type _IA\_MoveHorizontally_
- Select the item under _Enhanced Action Events_

![image](https://d3kjluh73b9h9o.cloudfront.net/original/4X/a/8/7/a87b3e633ab669705fc8e5d0d5940a04d2cd9482.png)

Here, you can add the nodes as per the course where the original Input system was used.

I did however make one addition, which was to call the Paddle’s **StopMoving** function from the **Completed** execution pin on the event;

 ![image](https://d3kjluh73b9h9o.cloudfront.net/original/4X/c/9/c/c9c462e390275d0ae2a1f1e193bbd30779c96922.png)

At this stage, the mouse moves as you would expect. Additionally, I have the keyboard support, although be aware that the maximum speeds of mouse vs keyboard will differ. One approach to resolve this would be to clamp the mouse movement at the maximum keyboard value (e.g. axis value 1 \* PaddleSpeedMultiplier).

Hope this helps 🙂

---

<div class="post-metadata">

**Author:** ![Bumhauer1](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Bumhauer1](https://forums.unrealengine.com/u/Bumhauer1)\
**Post date:** [October 7, 2024, 9:53am UTC](https://forums.unrealengine.com/t/course-lets-make-a-game-brick-breakers/578887/54 "2024-10-07T09:53:05Z")

</div>

Hey man.  
I can say as a real newby in UE with some theoretical basis that this course was not bad at all!  
I camly studying it in timeline process and what I see now when I trying open it link?  
The course is gone! Man, this is bad, really, because I don’t end studying it.  
Can you restore whole course please? Thanks.

Even if course contained some inaccuracies - this is only useful for self-studying, and I don’t see in that a tragedy.  
The haters to hell, man.

Your course was pretty unique for whole that site because gave a full scope look on full game dev process in compact form with by means UE.  
And not in sh\*tty form of youtube video (hate that) but in a great html-text pages.  
Ask again about restoring it, or at least declare if you will publish another equal course sooner.  
Thanks :(.

[Previous page](https://forums.unrealengine.com/t/course-lets-make-a-game-brick-breakers/578887.md?page=2)
