Looking for some advice. I am proficient in c++ however my only game development experience was in GameMaker.
Is Unreal a suitable engine to create a 2D top down shooter? In the initial template that you can use- it seems that its just a 3d game with the camera fixed looking down.
Should I learn Unreal and then use it to write my game? I’m very keen to as I do prefer c++ to other languages, however don’t want to make my life harder by using a powerful 3d engine such as unreal.
It’s totally suitable to create 2D games. That being said you are correct and it will be 3D engine running your 2D game where you sort of omit the axis you don’t use (or use it for layering sprites/models).
Given that you know C++ you should be able to pick up other programming languages quite easily so I wouldn’t use programming language as only reason to pick engine. But as we all know making games involves so much more than just programming and that is where Unreal provides IMO the best tools to get stuff done. You don’t even have to know any programming to make games if you use Blueprints.
If you really want to use C++ it might be a good idea. But in general I do not recommend learning UE4 only for using it to make 2D games. It’s 2D capabilities are relatively primitive and not in active development. Coupled with its high overhead there are better alternatives.
If I were you I would try a lightweight 2D framework which supports C++ scripting, for example http://www.cocos2d-x.org