title: How is a real-world simulation designed?
body: <p>I am fascinated by the performance of applications such as "Rollercoaster Tycoon" and "The Sims" and FPS games.  I would like to know more about the basic application architecture.  (Not so concerned with the UI - I assume MVC/MVP piriciples apply here. Nor am I concerned with the math and physics at this point.)</p>
  
  <p>My main question deals with the tens or hundreds of individual objects in the simulation (people, vehicles, items, etc.) that all move, make decisions, and raise &amp; respond to events - seeming all a the same time, and how they are designed for such good performance.</p>
  
  <p><strong>Q: Primarily, are these objects being processed in a giant loop, one at a time - or is each object processing in it's own thread</strong>?  How many threads are practical in a simulation like this? (Ballpark figure of course, 10, 100, 1000)</p>
  
  <p>I'm not looking to write a game, I just want the design theory because I'm wondering if such design can apply to other applications where several decisions are being made seemingly at the same time.</p>