If you boil them down, games like Unreal Tournament are simply interpreters. They are shells that churn through a frothy sea of sounds, textures, models and logic to produce a highly enjoyable game in which a click of the mouse causes somebody else's virtual head to pop in a greasy, bloody sort of firework.
Mozilla is the same way.
What began as a spark in the back of my head as to how to write extensions for Firefox has turned into a full fascination of development with Mozilla. Mozilla is just a shell where user interfaces, logic and graphics appear to be stored in a nifty component system called chrome.
I have begun occasionally reading Rapid Application Development with Mozilla that, while not being terribly well written, provides a decent explanation of what's going on. Now I have to figure out how I can develop with Mozilla on the Mac...