オンラインゲームを作る上での質問です。
敵(NPC)の動きというのは通常どこで管理するのがセオリーでしょうか。

1つ考えた案としては、マップにいる各クライアント側で個々に敵を生成し、それぞれの情報をクライアント側からプレイヤーの情報と一緒に送信させようと考えていました。
しかしこうした場合、マップにいるタイミングによって敵の情報を送らないといけないプレイヤーと送らなくていいプレイヤーができてしまい処理の重さに差が出てしまうのではないかと懸念しています。
サーバーで管理するにしてもサーバープログラム側でunityで行っている動きの演算を再現するのは難しいのではと考えています。
なにかいい方法はありませんでしょうか。

通信にはwebsocketを利用し、自前のwebsocketサーバーを介しています。