Unreal Ultimate 2D Topdown Udemy Course – Section 4 – Monster World Project

March 13, 2026

The Ultimate 2D Top Down Unreal Engine Course

Title:
The Ultimate 2D Top Down Unreal Engine Course
By:
Cobra Code

https://www.udemy.com/course/unreal-2d-top-down/
Udemy Course Link

Description:
Section 4 focuses on creating a small project similar to an old school Pokemon game using Paper 2D.

Overview:
This section really gets you started on using Paper2D within Unreal. Everything from handling Sprite assets to tile maps to basic animations and layer sorting are covered.

My Notes Breakdown by Sub-Sections:

16. Monster World Overview

Overview of what is covered in this section.
Shows it’s similar to an older Pokemon style game.
Sprite importing and asset management, tiles, layering.
Text box setup.

================================

17. Setting Up the Project and Importing Assets

Starting with Blank project:

  • Blueprint
  • Target Platform: Desktop

Created “New Level”

  • Empty level option

Saved this new level as its own Level asset in a folder named “Maps”

  • like Unity’s Scene assets somewhat

Project assets’ license is: CC0

  • free to use in your own games

Asset Type Conversion Rundown

  1. Characters > Flipbook
  2. Environment Tiles > Tilemap
  3. Environment Flowers > Flipbook
  4. Environment Other > Static Sprites

Creating Static Sprites

Example:
On Chest sprite:
– RMB
– Sprite Actions > Create Sprite

  • this creates a Sprite asset from the Texture asset

Importing Sprite Assets

By default, sprite assets usually look off on initial import.
After importing:

  1. Right click and select: Sprite Action > Apply Paper2D Texture Settings

This changes some of the direct art asset settings:

  1. Mip Gen Setting: NoMipmaps
  2. Texture Group: 2D Pixels (unfiltered)
  3. Editor Show Final Encode: TRUE
  4. Compression Settings: UserInterface2D (RGBA)
  5. Filter: Default (from Texture Group)
    • NOT Bilinear or Trilinear

UI:

  • also applied the Paper2D Texture Settings since it is pixel art.

================================

18. Making a Tile Set and Tile Map

Tile Set is like a palette of brushes you can use to create a Tile Map.

After placing the Tile Map into the Viewport, they rotated it 270 along the x-axis to lay it “flat” in the world.

  • They mentioned this is helpful with having the NavMesh setup work properly.

To prevent tearing between tiles, they generated a padded version of the Tile Set asset.

  • this creates another Texture asset with some padding effect to prevent them from bleeding into each other.
  • it looks like this just very literally duplicates the edge pixel all around the border of each tile a couple times and expands the tiles outward to fit them.
    • so assume this is to prevent those weird super tiny “gaps” you can get between exact sized tiles sometimes?

Creating Tile Set

Select Texture Asset
RMB
Sprite Actions > Create Tile Set


Tile Set Settings

Modify Tile Size to fit your individual tile sprite dimensions:
i.e. 16 px x 16 px

Setting Collision

  • Select Tile
  • Click “Add Box”

Removing Collider:

  • Under Single Tile Editor, click Reset next to Index [0] – 2 members.
    • * This is not very intuitive, seems very complex for section handling collider.

Tile Map

Create Tile Map:

  1. Select Tile Set asset
  2. RMB
  3. Create Tile Map

Active Tile Set:

  • Tile Set assets to select tiles from.
  • Can add multiple Tile Set assets at once.

Can “stamp” an area of selected tiles by holding Shift to create a selection for the stamp.

Tile Layer List:

  • allows for layering of tile layers

Setup:

  • where you set the full width and height of the map (in tiles)

================================

19. Preparing the Character Sprites


General

Modifying parameters of several assets at once.

  1. Shift select all the assets.
  2. RMB
  3. Asset Actions > Edit Selection in Property Matrix

Converting a Sprite Sheet to Flipbook

Select sprite Texture Asset and:

  • Sprite Actions > Extract Sprites

Extract Sprites generally defaults to Sprite Extract Mode : Auto.

  • but you generally change it to Sprite Extract Mode : Grid.
    • because you want the sprites to fit a general grid size, and not the smallest space possible.

Creating Flipbook Asset:

  1. Select multiple Sprite Asset
  2. RMB
  3. Create Flipbook

Working with Flipbook

Flipbook asset has a Frames Per Second parameter that can be modified to change the speed the Flipbook is played.

  • controls the general speed the animation is played

Making Character Flipbooks

They made separate Flipbook assets for each direction of the walking animation.
They also made separate Flipbook assets for the Idle of each direction.

  • each of these was just a single Spirte asset converted into a Flipbook

Folder Organization

Example for Character sprite assets:
PaperAssets > Characters > Red

  • this is the parent path to all sprite assets for this single character, Red.
  • this is also used to contain assets used directly by the game as they described.
    • so it contains all the Paper Flipbook assets (the animation assets)

PaperAssets > Characters > Red > Frames

  • placed all the individual extracted Sprite assets here.
  • (after extracting them from the Sprite sheet)

PaperAssets > Characters > Red > Textures

  • Sprite sheet placed in here (Since it is a Texture asset)

Naming Conventions

Flipbook Assets examples:
FB_Red_Walk_D

  • FB for Flipbook
  • Red is the character
  • Walk describes the animation
  • D is for down, which is the specific walking animation of that Flipbook.

FB_Red_Idle_R

  • FB for Flipbook
  • Red is the character.
  • Idle describes the animation.
  • R is for right.

================================

20. Best Project Settings for 2D Games

Common Problems:

  • motion blur and anti-aliasing can cause visual problems.

Link for “Best 2D Settings for Unreal Engine 5”:
https://cobracode.notion.site/Best-2D-Settings-for-Unreal-Engine-5-0895133a56924f1ca7f2149cf111983b

  • They just go through this list and set these settings any time they do a new 2D project.

Selecting All Assets in Project of a certain Type:

  • can use the Filter in the Content Drawer.
  • After selecting the Filter, can just enter the asset type you are interested in, and it’ll display all assets of that type in the project.

** They created Project Templates that just have all these settings set for 2D games immediately.


Project Settings

Turn OFF Auto Exposure.

  • having this can cause dark scenes to get brighter over time.
    • I saw this happening when I was tinkering with settings before and thought something was broken!

Motion Blur = OFF


Post Processing Settings

Access through Quick Add Menu.

PostProcessVolume default only applies if camera is within the volume.
Can make the PostProcessVolume affect everything by setting Infinite Extent (Unbound) to TRUE.


Texture Settings

  • For some reason for 2D Sprite Texture assets, if you set the Filter to Default (from Texture Group), it can look correct in editor but reverts to an option like Bilinear in builds which makes them blurry again.
  • to solve this, they select the Filter: Nearest.

================================

21. Character Blueprint and Pixels Per Unit

Blueprint for character:

  • created as Paper Character Blueprint

With a discrepancy between the Sprite asset and the Paper Character Blueprint size, they recommend making the Sprite larger.

  • the Paper Character makes assumptions about the general size of the character, which is what it is approximately sized at by default, so better to get closer to that instead of the other way around.

*** 1 Unreal Engine Unit = 1 cm
– this is DIFFERENT from Unity, which generally considers 1 unit as 1 m.
– this technically isn’t “real” but is a universally accepted approximation.

** There is a project wide setting to have a default Pixels per Unit set for all imported assets.


Pixels Per Unit

Sets scaling of pixels to 1 Unreal Engine Unit.

  • This is their recommended way of scaling pixel art assets.
    • this is similar to Unity.
    • this is done on the Sprite assets

They changed all their Sprite assets across the board to the same Pixels per Unit value.

  • I think this might be the ideal practice, but not positive.

Also need to change Tile Map assets Pixels per Unit values.

================================

22. Setting up the Camera and Possessing the Character

Added Player Start actor to Viewport.

  • appears to be a sort of spawn point that connects to a Game Mode (like a Game Manager)

Created new Game Mode Blueprint

  • think this is like a manager class in Unity?

*** FIXED EDITOR CAMERA ROTATION PROBLEM:
– Somehow my camera in Editor started rotating abnormally (directions were very backwards).
– You can fully reset the Editor camera by entering this command in the Console Commands:
BUGITGO 0 0 0 0 0 0

Settings Cameras to Orthographic helps ignore “height” differences along the z-axis.

  • including preventing character from “falling” into place at game start if it spawns above the ground.
  • They disabled Do Collision Test on SpringArm.
    • not needed for 2D games.

Character Blueprint

Added a Spring Arm.

  • with a Camera.

Setting the Default Game Mode

Go to:

  • Edit > Project Settings… > Project > Maps & Modes
    • set Default GameMode to the newly created one: GM_TopDown
  • Here you can also set the Map that opens on Editor Startup and the Game Default.
    • This feels like setting Scenes in the Build Settings for Unity.

================================

23. Enhanced Input and Character Movement

Uses new Enhanced Input Actions setup from Unreal Engine 5.1 on.

Input Actions setup requires two main parts:

  1. Input Actions
    • seems to be individual inputs.
  2. Input Mapping Context
    • the full mapping of all the inputs to their output game behaviors.
  • They noted in the character controller Blueprint Event Graph setup that using Get Controller and casting to Player Controller is nicer for multiplayer setup.
  • Directly getting the Player Controller requires setting a player index for multiplayer.

Input Actions

Created a single Input Action, Move.
Set its Value Type to: Axis2D (Vector 2D)


Input Mapping Context

This is where you associate an input (i.e. a keyboard key press of “A”) with a specific Input Action.
Can also apply Modifiers to these values based on different inputs.

  • i.e. Lets you use a single Input Action but different inputs (i.e. W and S) to go different directions based on the Modifiers.

For the IMC_TopDown (primary player controller for this project):

  • set W, A, S, and D as 4 separate input mappings all under the single IA_Move Input Action.
  • used modifiers to apply this in the different directions
    • combinations of Negate and Swizzle
    • Negate reverses direction.
    • Swizzle changes axis.

Folder Organization

Content > Input

  • main folder for all input assets
  • Input Mapping Context assets at this level

Content > Input > Actions

  • put Input Action assets here.

Player Blueprint Event Graph Setup

Need to initialize Input Mapping Context.

  • Get Controller > Cast to PlayerController > Enhanced Input Local Player Subsystem > Add Mapping Context

Created an Enhanced Action Event from our Input Action asset, IA_Move.

  • Triggered: occurs constantly multiple times as this input as held down.
    • like Unity Input.GetKey
  • Started: occurs once right when input is entered.
    • like Unity Input.GetKeyDown
  • Action Value: the return value of this input.

In this case, the Action Value would return a Vector2D based on our Input Mapping Context, including the Negates and Swizzles.

  • used this with a Break Vector2D node to separate out the X and Y values.

Add Movement Input node:

  • inherited from Pawn class
  • could take broken down x and y values as input in Scale Value along with appropriate directional World Direction values to move player in correct directions based on input.

================================

24. Directional Character Animations from Scratch

Promoted Action Value of Enhanced Action Event to Variable.

  • makes it a variable in the Blueprint you have access to.

Renamed the Action Value variable to Directionality.

  • used the values of this Vector2D to determine the direction of the player to update the sprite accordingly (with many bool checks).
  • changed Sprite by using Set Flipbook node, with the Blueprint Sprite dragged in as reference.
    • Set Flipbook seems to work somewhat like Unity when playing an animation, if using sprite assets.

Creating a Function:

  • collapsed a bunch of added nodes into a single function.
    1. Select all nodes.
    2. RMB
    3. Collapse to Function
  • then just renamed the Function to UpdateAnimation.

Enhanced Input Event > Completed

  • happens a single time when input is released.
  • like Unity Input.GetKeyUp

Branch node:

  • if else statement node

================================

25. Adjusting the map and collisions

Removed all the individual tile colliders from our Tile Set asset.
Replaced those with a single Plane in our Map with a single collider.

  • still using a collider to keep player from falling through floor.

Game is still using 3D collision for collision detection.
Changed CharacterMovement component’s Max Step Height from 45 to 10.

  • ** They recommend not using 0 because even as a 2D game where that could make sense, it can cause weird issues even walking over flat terrain and doesn’t even work for collision well anyway.

Modified the Sprite assets to make their colliders thicker.

  • thickened from 10 to 100 on the sign and tree Sprites.

================================

26. Foreground and Background sorting

  • They don’t include the individual Sprite assets in the environment Tile Map because it restricts your options for layer sorting this way with Unreal Paper.

Keys:

  1. Made all Sprites use Material: TranslucentUnlitSpriteMaterial
  2. Edited colliders of all Sprite assets we wanted to be able to walk behind to about 1/3 their full height.
  3. Moved Sprite privots to Bottom Center.
  4. In Unreal Project Settings > Engine – Rendering
    • set Translucent Sort Policy to: Sort Along Axis
    • the default axis to sort along was correct (0, -1, 0)

Shrunk player collider radius so top doesn’t have as much collision area.
Make sure Material changes apply to Sprites in Blueprints.

  • Blueprint Material settings will override base Sprite settings, so have to go into them individually to check and update if needed.

================================

27. Project files with layer sorting

  • Just a checkpoint to download a new project file if you messed up earlier steps.

================================

28. Creating a simple message UI with custom fonts

2 main parts:

  1. Widget for entire screen
  2. Modular part for message box

Widgets = UI elements in Unreal Engine

** Want to minimize use of Canvases in Unreal for optimization purposes.

Created two new Widget Blueprints:

  1. WBP_MessageBox
    • simple text containing message box.
    • Modified: padding, Screen Size – Desired, font, Auto Wrap Text to TRUE.
  2. WBP_MainHUD
    • has our singular Canvas.
    • contains the Message Box.
      • anchored and positioned to bottom center of screen

In BP_Red (Player Blueprint) we generate the WBP_MainHUD on start, and set it as a variable reference useable later.

================================

29. Making a pickup

  • They recommend creating a separate collider for interactions.
    • like separating the trigger / interactive collider from the physicsl obstacle layer collider.

Created a Blueprint for the item itself, BP_Pickup.

  • in this Blueprint, created a GetPicked function.

In the player Blueprint (BP_Red):

  • added new Input Action event for Interact
  • on Started of this action, do check
    • so it only happens a single time on input
  • when interacting, do a Overlapping Actors collision check to find in range colliders.
  • check by cast if any are BP_Pickup
  • if so, invoke GetPicked function

Blueprints

Events cannot have a return type.

================================

30. Showing the item message

Shortcuts:
Ctrl + P = brings up search window for assets

Created function within the WBP_MainHUD to change visibility.
BP_Red (player controller) invokes control of message display using collision detection with interact Input Action.
Setup simple Retriggerable Delay to have message go away after some time.
Made BP_Pickup ItemName string and ItemID int Instance Editable so we could have different BP_Pickup actors in Viewport with different ItemName and ItemID.

================================

31. NPC Dialogue and Interfaces


Technical

Casts are a hard reference.

  • So if you load a Blueprint with a cast, it must also load any casted Blueprint types.
  • increases load times.

** Can use Reference Viewer to see dependency chains.

They setup a Blueprint Interface.

  • reduces hard references.
  • more scalable Blueprint setup in BP_Red (player controller).

Valentines Game – First Prototype

March 3, 2026

Valentines Game

Description:
About a month ago for Valentine’s Day, I created a very quick rough game prototype for my wife as a gift.

Overview:
I wanted to create a very small, quick game as a gift for my wife for Valentine’s day. The main goals of this project were: make it nice and personalized, create something playable very quickly (since I had about 4 days to make it at the time), and learn to create digital art in some form.

The very small timeline was a good test to see how quickly I could put a playalbe demo of something together. Making it personalized and learning to create digital art went hand in hand, and I decided to get back into using Aseprite as a seemingly quick way to get into making digital art in some form since it is pretty basic and you can emulate existing sprite art relatively easily.

Aesprite:
As mentioned, my art software of choice for this project was Aesprite. It was actually very quick to pick this up if you do not need any fancy art tools besides “click to make pixels and sprites”. I could immediately generate single frame sprites and export those to easy to use 16 px x 16 px PNGs to use in the game. And I knew for the player I wanted the sprite to change as it constructed its own sweater, so that provided a quick pathway to starting to learn how to setup a basic sprite sheet in Aesprite by just adding a few frames to a given Aesprite file (which will be helpful for getting into animation later).

Screenshot of Current State of Game:

Screenshot of Valentine's Game Prototype

Unreal Ultimate 2D Topdown Udemy Course – Overview

March 3, 2026

The Ultimate 2D Top Down Unreal Engine Course

Title:

The Ultimate 2D Top Down Unreal Engine Course


By:
Cobra Code

Udemy Course Link

Description:
Comprehensive course of learning the basics of Unreal and creating 2D projects with it, with a focus on Paper2D.

Overview:
I wanted to get some general Unreal experience, and was recommended this interesting tutorial, so figured this would be a good place to start. While Unreal is primarily an engine for 3D projects, this course specifically targets how to create a 2D project using it. I thought this would actually be a good starting point because it still covers all the general Unreal basics, while exploring something a bit off the conventional path seemed like it’d also help teach me some of the more niche aspects of the engine thereby making it wider than a lot of other intro courses.

This course also has you create several entirely separate 2D projects, covering a lot of types of games I am interested in. The first is a fully topdown adventure demo in the lines of a Pokemon type game. The second is another fully topdown game that resembles older 2D Zelda titles, with combat. The third is what they call a 2D/3D hybrid, resembling an Octopath Traveler, which combines 2D and 3D assets, and is something I could see Unreal being particularly good to use to build.

Planning and Designing 2D Character Controllers: Using Lucid Chart

January 28, 2021

Planning

2D Platformer Design



Lucidchart

Description:
Visualization tool for diagramming and flowcharting.


Overview

I want to begin designing the 2D platformer character controller creation tool, so I looked for diagramming and flowcharting tools and turned to Lucidchart. I have used it a couple times in the past, and thought it would be a good source to go to again for this. It covers both the helpful programming diagramming as well as just general note and design organization is a clean and visual way.

Design Start: Inspirations and Controller Component Breakdown

Since I want to make a strong character controller creating tool, I want to gather good resources to draw from to see what different components I want to include in the tool. To start this, I began laying out all the basic components that I think can make up a 2D platforming character in a game that I am interested in covering. To support this, I have also began listing games with strong or unique 2D platforming character controllers that I want to draw options and information from. This are shown below in the images created with Ludicchart (these are just the beginnings to start getting the information down and figure out how to start organization).

2D Platformer Character Controller Components: Start


Games to Research and Draw Inspiration

As I started to fill in the games, I noticed that some of them are distinctly different in what I consider pacing so I decided to separate those out for now. Recent Yoshi games and most Kirby games tend to be a bit easier on the difficulty side, especially compared to a lot of games on my list, which I think in turn makes them feel a bit lower paced. This may not be the most accurate term, as there are times a game such as Hollow Knight can be a bit slower paced, but I do not think it has anywhere near the feel that Yoshi and Kirby games has I am trying to convey.

Summary

So far Lucidchart has been fantastic just for visually organizing my thoughts and notes so far. The components are very cleanly organized because I can lay out the major component names, while attaching notes to those individual components to give a longer description as well as some game examples to explain them better.

via Blogger http://stevelilleyschool.blogspot.com/2021/01/planning-and-designing-2d-character.html

2D Platformer Follow Camera Tutorial by Press Start and my Chunk Camera Concept

January 26, 2021

Camera

2D Platformer Design


Title:
Mario Style Camera Follow Tutorial

By:
Press Start


Youtube – Tutorial

Description:
Camera tutorial that follows similar to Mario for 2D platformers.


Overview

I got to implementing this tutorial into my 2D platformer project, which let me observe some of the pros and cons of this approach the way they created it. They created a direct following camera, which used a threshold to determine if the player is some distance from the center of the camera, and if so, starts to follow them as they move. I also created my own camera controller variation which moves in more

Camera Controller: Follow Camera (by Press Start)

This is the camera controller created in the tutorial linked above. The camera follows an object, generally the player, smoothly as they press against the borders of the camera threshold. The object must move some significant amount of distance before the camera moves. This keeps the camera from constantly moving, keeping more of the environment in a static frame longer.

There is an offset distance which is the distance from the edge of the camera that sets the bounds of the threshold box. When the follow object moves outside of this box, the camera begins to follow it. As long as the object continues to move out of the box, the camera will continue to keep following it.

Unity Orthographic Size

Orthographic Size: half the height in world units that the camera renders


The horizontal dimension rendered is solely determined by the screen ratio along with the height determined by orthographic size. Determining the size of a camera to fit objects vertically is very straightforward, as it is just half of the world units you would like to render. If you want to fit something horizontally however, you must include the screen ratio and use that as a multiplier (screen height / screen width) to convert the world width into an orthographic size value.

Issue: Stuttering

Originally the camera following gave a stuttering, glitchy effect while following the player at times, especially when jumping. I believe this is a result of changing the speed value set for the camera to match the player speed when it is large, since it uses the magnitude of the player’s velocity vector. This can change a lot very quickly, especially when jumping since this combines the x and y vector values of the player’s movement at that point.

Changing this speed check and set to solely the x-axis helped with consistency for most movement because most movement is horizontal. This however will most likely have a large impact if there is a lot of vertical movement since it will still be looking at the player’s velocity in the x to move the camera, regardless of their y velocity.

My Implementation of the FollowCamera Script with Modification

Alternate Camera Controller: Chunk Camera

Because of the stuttering effect I originally encountered, I tried making another type of camera controller that I thought may be a good option. I wanted to use a chunk movement approach where once the player reached the threshold of the current camera position, it would move the camera in that direction an entire chunk distance, centering the camera on the next location as opposed to directly moving with the player. The idea with this is that it keeps the camera movement more consistent, as well as showing the player much more of the next area they intend to move into more quickly.

I approached this by creating an IEnumerator named TransitionCamera that activates when the player hits a threshold. This begins a Lerp movement for the camera to the next designated chunk area, determined at Start based on the screen size and the threshold distance. A chunk distance is determined as: screen size – threshold distance. This centers the camera one full screen over, with an overlap from the previous screen equal to the threshold distance.

I also added a check to stop the coroutine if it was running and it was determined that it should start moving again to prevent weird whiplash effects if a player somehow was able to move back and forth between two screens very quickly. While mostly effective, this did have the negative resulting bug of slightly offsetting the camera completely over time because the TransitionCamera coroutine would be stopped prematurely and start moving to a new location solely determined by the current location +/- the chunk distance.

My Chunk Camera Variation

Summary

The original FollowCamera camera controller had more issues than I anticipated, so making it clean and consistent will take significantly more work. The jitteriness of the original implementation is unusable, but the modification at least makes it decent to use as a base for now as long as most movement is horizontal.

The chunk camera modification is at least cleaner already, although it still needs a bit of tweaking to make something that does not get slowly offset over time. This however probably only works for specific games and cannot be used for every 2D game case. Having both of these options is nice moving forward and is easy to switch between.

via Blogger http://stevelilleyschool.blogspot.com/2021/01/2d-platformer-follow-camera-tutorial-by.html

Unity Tilemap 2D Basics and Unity Learn Introduction

January 20, 2021

Tilemap 2D

Unity

Beginner Programming: Unity Game Dev Courses


Unity Learn Course – Introduction to Tilemaps – 2019.3



Description:
Basics of using Tilemaps for 2D projects in Unity.


Tilemap Basics

Grid

  • Only one in scene
  • Creates layout for scene that Tilemaps rely on
  • Cell Size: size of each square on Grid; applies to all Tilemaps within Grid
  • Cell Gap: space between each square on Grid; applies to all Tilemaps within Grid
  • Cell Layout: layout of tiles on grid; Options such as rectangle, hexagonal, isometric, isometric z as y
  • Cell Swizzle: direction Grid is facing; options such as XYZ, XZY, etc.

Tilemap

There can be multiple in a scene and it has two components: Tilemap and Tilemap Renderer.

Tilemap Component

Controls how the Tilemap behaves and how tiles within it work.

  • Controls how Tilemap behaves and how tiles within work
  • Animation Frame Rate: affects spped of animated tiles in Tilemap
  • Color: color and transparency
  • Tile Anchor: where tile is anchored to grid
  • Orientation: direction tiles are facing

Tilemap Renderer Component

Change how tiles are rendered and sorting order.

Modes

Chunk Mode

  • Sprites on Tilemap rendered in batches with each batch being treated as a single sort item in the 2D transparent queue
  • reduced draw calls for performance
  • other renderers cannot be layered or rendered in between part of the Tilemap
  • ideal for terrain base layer or other “single depth” maps


Individual Mode

  • sprites sorted based on position in Tilemap and Sort Order
  • render to allow interweaving of sprites
  • good for allowing sprites to pass behind other sprites
Other Parameters
  • Detect Chunk Culling: detect chunk bounds automatically or set them manually
  • Chunk Culling Bounds: extension of bounds for culling in Chunk Mode
  • Mask Interaction: can make Tilemap visible only inside or outside a Sprite Mask
  • Material: change material used to render each tile
  • Sorting Layer: Layer defining Sprites’ overlay priority during rendering
  • Order in Layer: helps determine which Layer is rendered first

Tilemap Collider 2D

This is an additional component of the Tilemap object (with Tilemap Renderer). This makes the entire Tilemap have colliders. Having many individual tile colliders can cause objects or players to get caught on the seams, so the tile colliders can be combined using composites. This can be done on the Tilemap Collider 2D, just toggle on “Used By Composite” and add the components: Composite Collider 2D, and Rigidbody 2D.

The following image shows my use of these tile map basics using Unity assets from a separate Brackeys tutorial. I experimented with adding flipped and rotated versions of some of the existing sprites to the tilemap and using the automatic colliders of the tiles. I had issues with the separate tile colliders because they would catch the player moving along the floor, so this image shows the composite collider solution to fix the colliders. This solved that issue and cleaned up the colliders.


Basic Use of Tilemap and Colliders

Keyboard Shortcuts: Rotate and Flip

Flip Sprite: { “Shift + [“

Rotate Sprite: [

Summary

Tilemaps are actually extremely easy to use and seem to give pretty effective results. I did have the issue with the individual colliders immediately after using the automatic colliders, but it appeared to be resolved with the composite colliders, which combine the colliders into large contiguous colliders. The difference between selecting, moving, and brushing tiles can be weird sometimes, but I was able to get the hang of it eventually and the process became fairly smooth after a while. Finding the keyboard shortcuts for rotating and flipping was also a bit strange, but was very useful once I found it.

via Blogger http://stevelilleyschool.blogspot.com/2021/01/unity-tilemap-2d-basics-and-unity-learn.html

Jump Physics and Controller for 2D Platformer Tutorial by Press Start

January 19, 2021

Player Controller

2D Platformer Design


Title:
A Perfect Jump in Unity – A Complete Guide

By:
Press Start


Youtube – Tutorial

Description:
More involved tutorial for jump controls for 2D platformer.


Overview

This tutorial goes more in depth on the jump control and mechanics for 2D platformers. This starts to involve logic for varied jump heights when holding the jump button as well as ensuring the proper number of jumps (generally a single jump, but can help lead to double jump or multi-jumps). This tutorial also involves some simple animations through script to help add life to the jump mechanic, such as squeezing during the jump.

via Blogger http://stevelilleyschool.blogspot.com/2021/01/jump-physics-and-controller-for-2d.html

2D Platformer Mario Style Camera Follow Tutorial by Press Start

January 14, 2021

Camera

2D Platformer Design


Title:
Mario Style Camera Follow Tutorial

By:
Press Start


Youtube – Tutorial

Description:
Camera tutorial that follows similar to Mario for 2D platformers.


Overview

I want to get back to working with 2D platforming programming and came across this useful tutorial for creating a decent camera controller. Tutorials like this are always nice as the camera is a very critical element of the overall feel of a 2D platformer, but it isn’t something I necessarily want to focus my time on for now, so this gives me a good starting point that I can quickly implement and tweak for my needs starting out. If it becomes more critical later in the process, I can come back to it with other methods.

via Blogger http://stevelilleyschool.blogspot.com/2021/01/2d-platformer-mario-style-camera-follow.html