2/4
Imagine what you could get done working towards your life goals if you worked on them 1.5 hour a day, 7.5 hours a week, 30 hours a month
Start your day with a warm-up
https://www.cbr.com/playstation-xbox-no-console-wars/
Read, summarize and share your opinion. Also, what was your first console if you ever had one?
Project
An Unreal Engine Project holds all the contents of your game. It contains a number of folders on your disk, such as Blueprints and Materials. You can name and organize folders inside a Project however you wish.
The Content Browser panel inside the Unreal Editor shows the same directory structure found inside the Project folder on your disk.
Blueprint
The Blueprint Visual Scripting system is a complete gameplay scripting system that uses a node-based interface to create gameplay elements from within Unreal Editor. As with many common scripting languages, it is used to define object-oriented (OO) classes or objects in the engine. As you use UE5, you'll often find that objects defined using Blueprint are colloquially referred to as "Blueprints."
Object
Objects are the most basic class in Unreal Engine - in other words, they act like building blocks and contain a lot of the essential functionality for your Assets. Almost everything in Unreal Engine inherits (or gets some functionality) from an Object.
In C++, UObject is the base class of all objects; it implements features such as garbage collections, metadata (UProperty) support for exposing variables to the Unreal Editor, and serialization for loading and saving.
Class
A Class defines the behaviors and properties of a particular Actor or Object in Unreal Engine. Classes are hierarchical, meaning a Class inherits information from its parent Class (that is, the Class it was derived or "sub-classed" from) and passes that information to its children. Classes can be created in C++ code or in Blueprints.
Actor
An Actor is any object that can be placed into a level, such as a Camera, static mesh, or player start location. Actors support 3D transformations such as translation, rotation, and scaling. They can be created (spawned) and destroyed through gameplay code (C++ or Blueprints).
In C++, AActor is the base class of all Actors.
Casting
Casting is an action that takes an Actor of a specific class and tries to treat it as if it were of a different class. Casting can succeed or fail. If casting succeeds, you can then access class-specific functionality on the Actor you cast to.
Component
A Component is a piece of functionality that can be added to an Actor.
When you add a Component to an Actor, the Actor can use the functionality that the Component provides. For example:
A Spot Light Component will make your Actor emit light like a spot light.
A Rotating Movement Component will make your Actor spin around.
An Audio Component will give your Actor the ability to play sounds.
Components must be attached to an Actor and can't exist by themselves.
Pawn
Pawns are a subclass of Actor and serve as an in-game avatar or persona (for example, the characters in a game). Pawns can be controlled by a player or by the game's AI, as non-player characters (NPCs).
When a Pawn is controlled by a human or AI player, it is considered to be Possessed. Conversely, when a Pawn is not controlled by a human or AI player, it is considered to be Unpossessed.
Character
A Character is a subclass of a Pawn Actor that is intended to be used as a player character. The Character subclass includes a collision setup, input bindings for bipedal movement, and additional code for player-controlled movement.
Player Controller
A Player Controller takes player input and translates it into interactions in the game. Every game has at least one Player Controller in it. A Player Controller often possesses a Pawn or Character as a representation of the player in a game.
The Player Controller is also the primary network interaction point for multiplayer games. During multiplayer play, the server has one instance of a Player Controller for every player in the game since it must be able to make network function calls to each player. Each client only has the Player Controller that corresponds to their player and can only use their Player Controller to communicate with the server.
The associated C++ class is PlayerController.
AI Controller
Just as the Player Controller possesses a Pawn as a representation of the player in a game, an AI Controller possesses a Pawn to represent a non-player character (NPC) in a game. By default, Pawns and Characters will end up with a base AI Controller unless they are specifically possessed by a Player Controller or told not to create an AI Controller for themselves.
The associated C++ class is AIController.
Player State
A Player State is the state of a participant in the game, such as a human player or a bot that is simulating a player. Non-player AI that exists as part of the game world doesn't have a Player State.
Some examples of player information that the Player State can contain include:
Name
Current level
Health
Score
Whether they are currently carrying the flag in a Capture the Flag game.
For multiplayer games, Player States for all players exist on all machines and can replicate data from the server to the client to keep things in sync. This is different from a Player Controller, which will only exist on the machine of the player it represents.
The associated C++ class is PlayerState.
Game Mode
The Game Mode sets the rules of the game that is being played. These rules can include:
How players join the game.
Whether or not a game can be paused.
Any game-specific behavior such as win conditions.
You can set the default Game Mode in the Project Settings and override it for different Levels. Regardless of how you choose to implement it, you can only have one Game Mode for each Level.
In a multiplayer game, the Game Mode only exists on the server and the rules are replicated (sent) to each of the connected clients.
The associated C++ class is GameMode.
Game State
A Game State is a container that holds information you want replicated to every client in a game. In simpler terms, it is 'The State of the Game' for everyone connected.
Some examples of what the Game State can contain include:
Information about the game score.
Whether a match has started or not.
How many AI characters to spawn based on the number of players in the world.
For multiplayer games, there is one local instance of the Game State on each player's machine. Local Game State instances get their updated information from the server's instance of the Game State.
The associated C++ class is GameState.
Brush
A Brush is an Actor that describes a 3D shape, such as a cube or a sphere. You can place brushes in a level to define level geometry (these are known as Binary Space Partition or BSP brushes). This is useful if you want to quickly block out a level, for example.
Volume
Volumes are bounded 3D spaces that have different uses based on the effects attached to them. For example:
Blocking Volumes are invisible and used to prevent Actors from passing through them.
Pain Causing Volumes cause damage over time to any Actor that overlaps them.
Trigger Volumes are programmed to cause events when an Actor enters or exits them.
Level
A Level is a gameplay area that you define. Levels contain everything a player can see and interact with, such as geometry, Pawns, and Actors.
Unreal Engine saves each level as a separate .umap file, which is why you will sometimes see them referred to as Maps.
World
A World is a container for all the Levels that make up your game. It handles the streaming of Levels and the spawning (creation) of dynamic Actors.
For more information, see:
What are you learning?
Unreal Engine
Why is it important?
This is one of the industry standard game engines
How do you show that you understand? What is the assignment?
Install the lerning kit and follow along
Open Epic Games Launcher
Click Marketplace
In the search, add - learning kit games
Add it to cart and "buy" it
It is free and you will not need a credit card or anything to add it to your account
then create a project
Click on Unreal Engine
Click Library
Your Unreal Learning Kit should be in your projects
Open it
It will take some time the first time you run it compiling shaders
Once you are in the game
Check out your content browser
This is where you will be grabbbing or saving items
The character is called BP_HourOfCode_Character
The game is called BP_HourOfCode_Game
Let's mess with some of the UI
In your content folder, right click on the hour of code folder
select set color and change the folder blue
Now we need to go into the Content>Hour_of_Code>Blueprints>Game folder
We are going to check out the Place Actors Panel
Actors – The term “Actors” is used to identify the various objects or elements that are in a Level. While the phrase is commonly used to identify people in film and TV, it is a more general term when used in the context of your Unreal Engine projects
This is similar to the content drawer but it only has a set pieces, you cannot bring in 3D objects from other software like Blender. You can access those from the content drawer.
To get to the Place Actors Panel
Window>Place Actors
Just like Blender, we will do most of our work in the viewport and grab assets in the content browser
Click and hol the left mouse button
Notice when you move left or right the camera turns but if you push forward or back, you actually move
When you click the right mouse button, the camera rotates
Scroll zooms in and out
Clicking and holding the scroll moves the camera left, right, up and down
If you click and hold the right mouse, you can use WASDQE control, just like Twinmotion
NOT THE NUMBER PAD!
Explore numbers 1 - 6 and notice they take you to different positions. You can set this up for your projects as well.
Select an asset and press F
This is Frame an actor or image
Click on the shapes button and drag a cub into your game
This is how easy it is to place actors in UE
The Select, move, rotate and scale tools are all similar to Twinmotion and Blender
The Hotkeys
W - Move
E - Rotate
R - Scale
Notice when you modify the object, it changes in the properties just like blender
At the top right is the World Outliner
This is where everything in your scene is held (just like Twinmotion)
You may also select an object in the world outliner and press F to frame that object rather than having to use the mouse to move to it
Press and hold the ALT key then use the left mouse to move around an object
Delete your cube
Now let's open and load the map
Find the maps folder in the content drawer and double click Level_HOC_world
load it
Click Window>Levels
Grab the Layers Tab and drag it to your Outliner Panel
Notice you can dock this panel to use later
Click on the game controller
Notice it forms a wire frame capsule around it
This is where the player will start (You can see it in the details panel just like Twin Motion)
You can also see it in the outliner
Click the Play Button
Click inside the game to play
Walk to the platform and fall in
Notice you are trapped, this game is over and it is no fun!
Hit Esc to get out of the game
Press 1 to get back to the start position
So when we walk to the platform, we fall through because there is no collision added to the object but the rest of the walls and floor do. Remember the first day of GDevelop when you immediately fell through the platform? Same deal
Select the platform
Press CTRL + B
Now it pops up in the content browser
Dock it to the bottom
You can drag object into your game directly from here
try it and delete
Hover over the object in the content drawer and check out the attributes
Notice there are zero collisions
Double click the platform object to open up the static mesh editor
Dock it just like you did with the levels
Now we are going to add collision
You can see the collision has been added so the player will not fall through it
*** WE DO NOT NEED A PERFECT COLLISION***
The more angles you use, the more geometry = the slower your game may run = Lag
Save your changes
If you see that little asterisk after the name of your object, there are unsaved changes
Also, notice how many triangles are used on this simple object
Test the game and you should be able to stand on the platform
Now we want to add platforms across to get to the other side.
You can drag them in from the content browser or duplicate them by holding the Alt + Drag from the move arrow
If you hold Alt + Shift while pulling from the arrow, you can duplicate and move the camera at the same time
Continue this until you have made it all the way across
Make sure you have at least one gap in the platforms so that your player can fall through
It's elimination time
press esc
press 1
get back to the starting point
Select the platforms by holding shift and clicking them move them out of the way
We are going to create a pain causing volume... It sounds like you are getting smacked with an encyclopedia
In the place actors search bar, search for pain
Grab the Pain Causing Volume into your game
Play the game and run into the PCV
Notice that is sends to back to the start... just like GDevelop
Use your scale tool to cover the entire area
Test it and make sure it works
Move your platforms back
If we are going to work from another spot but don't want to move our starting point, we can go to the new spot, right click and select play from here
You may also change the setting on the play button so that your game starts wherever the camera is positioned
Now we are going to want to build a path to get to the other side using the small floating island objects
Add them just like you did with the other platforms
Alt + Shift and Arrow
Test it and make sure it works
If you missed your jump, you will notice that you fall forever.... not good
Now we need to Click Window > World Settings
We are going to set up The Kill Z and although the Z could stand for zone, it is actually the Z axis
In the World settings
Open Advanced
Select the Enable World Bounds Checks
Change the Kill Z to -500
test
Click the viewpoint button
In the top right wireframe, the red line represents 0 on the Z axis so going 500 units below that line = kaput
Click the box to go back to the normal view
Save your work!