A game engine is a software system designed for the creation and development of video games. There are many game engines that are designed to work on video game consoles and personal computers. The core functionality typically provided by a game engine includes a rendering engine (“renderer”) for 2D or 3D graphics, a physics engine or collision detection (and collision response), sound,scripting, animation, artificial intelligence, networking, streaming, memory management, threading, localization support, and a scene graph. The process of game development is frequently economized by in large part reusing/adapting the same game engine to create different games
Which technology to choose? should you use any available game engine out there ? examples can be Unity for 3d game, cocos2d for 2d game, maybe you should use Unreal, how about physics engines ? box2d ? maybe Chipmunk with the objective C warpper? or others. my firm believe after reviewing most of the game engines out there..
If you are individual developer which want to save time choose one of the game engines out there.
If you are a business that want not only to produce a game but also to distinguish your self from others, and not be depend on
other companies to maintain the game engine for you, here are few points to consider, why you should create your own:
Flexibility - by allowing you to change the code the way you need it.
Profitability - by being creative do things differently then other competitors.
Serviceability - by building your own engine it will be more resistibility to your custom needs.
4. Productivity - by develop the engine in house even with remote stuff you are allowing your team the productivity they need to get better and to produce high quality games.