Original Post
I realize that this post may be hand wavy and vague, but I'd appreciate any input. I'm building a multiplayer realtime space trading/exploration game. The problem I'm running into is how to manage the game objects. Specifically, I'm having trouble keeping the object state data (like position, rotation, velocity, ect) separate from the object-drawing code. I'm using C# and DirectX. I have a Direct3D window drawing inside a picturebox. I'm trying to adhere to the model-view-controller model, but I'm also having trouble having a C# object for each object type that knows how to draw itself because the picture box actually owns the D3D device handle. Making the whole thing multiplayer is an even bigger mess since it really forces the distinction between the state data for each object and what it happens to look like. I'm running into an intermediate level question here. I've got code that draws a bunch of ships and asteroids and planets everywhere, but networking is hung up on completely abstracting out the critical networkable parts of the objects. I don't really have any idea how to structure a project like this (ok, I have lots of ideas, picking a promising one to explore is hard).