Why do game companies build their own game engines?

I know of at least five reasons:

  1. History: There weren’t as many good engines easily available ten or twenty years ago, so at the time, I had to start your own. Now, I already have a lot of content and know-how on the in-house engine, so the cost of switching would be too high.

  2. Capability: I want to achieve some overall gameplay effect that’s not available/possible in the current engines. For example, Unreal Engine doesn’t allow for deterministic simulation; networked games like RTS-es often need this. (Things like “engine too large” or “graphics requirements too high” or “my target is not supported” go in this bucket.)

  3. Economics: Either I have a dozen people working for free, and I can’t afford $240/month for licensing, or I plan to sell a lot, and I think 5% off the top is too much.

  4. Desire: I want to learn how to do it from scratch on my own. The goal here is not to ship the best possible game the soonest possible, but instead to learn programming/development/art/workflow.

  5. Competition: I want to license my engine to other developers who have the same needs as me, and I have some competitive advantage over other engines for this market segment.