The answer to the question “what is the best game engine?” isn’t simple. As I’ve said before, it all depends on what kind of project you’re building, what sort of resources you have to work with, and what kind of workflow you’re comfortable using. The best game engine, then, is the one you program yourself. In that situation, you define all of those things for yourself, in a way that is perfectly tailored to your project, your team, and your way of thinking.
The question you’ve inevitably got to ask yourself as you approach building your own game engine is “why would I do it if I have so many good options available?” It’s hard to justify re-inventing the wheel in a world where the likes of Unity3D, Game Maker, or UDK exist, or even when you consider the libraries available for this kind of thing in Flash. However, all of these options have shortcomings to take into account. Some of them are in terms of an engine’s power, some of them are in terms of organization or workflow, and some of them are deceptively a result of how broad the tools and scope of the engine are.