General Project Setup

Hey Guys,

this is my first game with the Unreal Engine so I have a couple of question wether I understood everything correct before I start setting up my project. I went through a couple of tutorials, but I am still not 100% sure about all the terminology like ( CharacterCoontroller, Actor, Pawn, DefualtPawn etc).
For a better understanding I will describe the game mechanics first, to give you an idea what I want to do.
My game is a thrid person exploring game. A little bit like Journey. But one of the main features is that the player is able to switch into different characters. Each character has different abilities and according to that different controlls.
Some of the characters for example are able to fly. From my current understanding the best solution would be to realize all the different characters as pawns. If the player has no control over these characters, they will be controlled by the AI.
I would programm a different movement behaviour for each of the characters. Does this make sense so far or should I rather go with a DefaultPawn / CharacterController???

Next question is, how to add physics to the characters. I am coming from Unity, where you could just add a rigidbody component to an object. Is there something similar in Unreal?

I also looked for some tutorials covering this topic but the ones I found, didnt really fit to my game :wink:

Thanks in advance.

Cheers Pascal

That’s the jist of it, yes. I assume this is where you got your information, but if you haven’t read through it, check out the Gameplay Framework documentation.

If it helps understand the concept of controllers, think of a Pawn as just a puppet. Without a puppeteer, a puppet lies inert and does nothing. But Alonzo the Flashy Puppeteer might have different techniques than Luca the Great Puppetmaster, so you want to keep the puppet separate from the puppeteer.

By extension, a Pawn can be possessed by both a PlayerController or an AIController depending on how you want to control the pawn. This approach lets you create character classes that work for both players and AIs. Try to always keep this puppeteer idea in mind when determining where and how to add logic to your classes. For each character action, I like to have both a “CanDoAction” and “DoAction” function. Both player controllers and AIs will want to query the character state to know if it can do certain actions, but they won’t do it in the same way – the player controller obviously will do it on a button press, while the AI will do it depending on what its simulation tells it to.

Just one thing: given your description, you probably want to create a Character rather than a Pawn. Character has a lot more components and logic generally associated with bipeds, which is what you want. For instance, it comes with a SkeletalMeshComponent, which takes care of the rigid body component you mentioned. It also comes with CharacterMovementComponent, which is a nice default way of handling character movement in a normal situation with gravity, a surface to walk on, etc.