I think I’m down to three choices for the game engine, ordered by my preference.
Unity, 2D: Top down, sprite based 2D. Unity is great to work with and has a solid 2D component that has been pretty easy to work with.
Unreal, 3D: Third person, low-poly. I love to code and that kind of leaves Unreal out in the cold. It has an amazing visual design system called Blueprints. You can also write everything in C++, which I’m not very proficient with. By far, Unreal has the most potential graphics wise. It also ships with a very good multiplayer system.
In house, 2D: Top down, sprite based 2D. From a code persepective, this has the most potential. I get to write everything from scratch and control every aspect of the design. On the downside, I have to write everything from scratch. I actually think this is a very cool option.