This kind of benchmark is not particularly helpful, unless you also have a profile of where the CPU usage is going.
Is it physical simulation?
Is it animation calculation?
Is it driving the graphics card/rendering?
Is it debug mode code?
Anyway, Unreal can physically simulate and render 500 spheres on the screen, so if you’re OK with characters whose collision hulls are spheres, you should be able to get this going.
However, if you use advanced animations, character skinning, and so on, expect those features to have a runtime cost on each client.
It’s kind of weird to compare to Asheron’s Call, because that used a much simplified rendering and simulation mechanism. Unreal probably can’t scale down that far in fidelity, so you’re going to have to pay something for the modern facilities, if that’s what you want.
Typically, you’d want to use a single skinned mesh component per player, and you’d want to subclass Pawn directly, rather than using Character (which is tuned for a different use case.) Make your Pawn subclass use a simple sphere, and make the skinned mesh play a single animation. If you need a different behavior, change which animation asset is being played. Also, make sure your mesh isn’t using the full Unreal skeleton size, but instead limit yourself to maybe 30 bones.