Problem with sluggish reactions in LAN game

I’ve been running into an odd problem. I have a system set up based on this article on the Source Engine’s multiplayer system that technically works, but it’s weirdly sluggish. When it two instances of the game (both running on the same machine) are connected, the server works fine, but the client occasionally stutters and lags.

The basic system involves sending movement input and rotations from the client to the server, the server moving the characters, and the server sending back new positions via RPC. Interpolation between values is set up so that the client can miss up to two RPCs before actually needing new positions, but it will still sometimes not work locally.

On average, each player uses 8 kB/sec of bandwidth when moving, but I wouldn’t think that would be a problem locally.

Has anybody either run into similar problems or has ideas about what I might be missing or doing wrong? I’m kinda stuck. This is the first time I’ve tried using an authoritative server.

Okay, I figured it out. Turns out it’s a far better idea to use OnSerializeNetworkView than RPCs for syncing character positions. It works much better now that I transitioned it away from RPCs.