Original Post
I have a pretty good feel for how many different parts of a game engine work (graphics, sound, input, logic, etc...). What I'm not to certain about is how you put all of these things together to make a complete game engine. I haven't had much luck finding resources on game engine architecture, so I was hoping I could get some help here. Mainly, the things I'd like to know relate to timing and program structure. How does one design the engine such that time-constrained entities (i.e., a player moving at a walking pace) only update at constant intervals, while the renderer spits out frames as fast as it can? I know many commercial engines use a client-server model for this, but how does this work for a single player game? Does the client portion of the program open a socket and communicate to the engine that way? Are game engines generally multi-threaded? Any insight into this (articles would be especially helpful) would be great.