tl;dr - There's very little reason to develop a game engine in-house.<p>I recently went through this decision making process myself. We're currently focusing on mobile (iOS) games and found that Cocos2D beat out Unity for us. It isn't the cost. Unity is very affordable. It was mostly the desire not to develop in C++ when only Objective-C is needed and because we're looking at developing 2D and 2.5D games and don't currently have any need for 3D. Unity <i>might</i> be a decent choice for iOS-only, 2.5D games, but I didn't see that argument made compellingly enough.<p>One of the things we used to inform our decision was working through most of Learning iOS Game Programming by Michael Daley. He builds a very simple game engine step by step in the book and it was really helpful for understanding what we're getting with a mature game engine.