Using Pawn or Character when developing a simple localplayer fixed-camera RPG game?

I knew that Unreal is good at making game with free camera and complex character, and I worked a lot on that before.

However, this time I want to make a simple game:

  1. Fixed camera: player cannot control the camera, it is fixed at a given angle and distance.
  2. Localplayer: it will not contain any network stuff here.
  3. Simple movement: as many simple RPGs, the character can only walk\run, but cannot jump/crounch/fly…
  4. No need for realworld-like physics

Perfect examples to describe what I am doing are “Animal Crossing” and “Octopath Traveler”

In my opinion, the Character class and Character Movement Component are very heavy and
complicated. There are a lot of things about complex character function used mainly for acting game. So, I tried to start with Pawn class, together with PawnMovementComponent, for this time.

But after few days I found that it is diffcult to achieve functions like:

  1. Go up/down stairs and slopes.
  2. Falling down at the edge of the cliff/balcony. (Without simulated physcis of course)

I tried to use many linetracing stuff to update the movement tick, but it’s hard to get a smooth, elegant result. Lots of bugs occur and the code is messy and ugly.

So, my question is, in this situation, should I use the build-in Character class, as there are lots of functions that I don’t need, or keeping using the Pawn class.

I tried to read the code of the Character class and the Character Movement Component, there are 20k+ lines, and I finally give it up. I think Unreal Engine should have something between Pawn and Character classes.

My suggestion in general is as follows:

Create a Character but try to use it as a pawn wherever you can. As a rule you should always try to use the most “base” class that serves your purpose.

The Character Movement Component is relatively heavy bit it is well written and very well supported. It provides a lot of features you might need like animation and networking.

Once you have your prototype playable you will surely know what “character features” you use (where) and you can decide on your own weather you want to switch to a Pawn and write those features on your own.

In other words:
Leverage what you have for free but don’t relay on it. Use (and store) your Character as a Pawn (hell, even like Actor where you can) but use its functionality when needed.

P.S.
Epic are aware that the CMC is a beast and are moving away from it. Check Mover if you want to see where the things are going: Comparing Mover and Character Movement Component in Unreal Engine | Unreal Engine 5.5 Documentation | Epic Developer Community

That’s really helpful stratagy.

So as you said, I am going to create a Character but tell myself that’s a pawn, and treat the Character fuctionalities as a cheat sheet, use it when I don’t know how to write it myself!

Is that a good start?

Thank you for your sharing on the experience!

you can use pawn/floating pawn movement as a light weight starting point