This week the Bored Pixels Game Jam 3 took place. This seemed like a great opportunity to learn a little Unreal Engine 4 game development.
The theme, GAMEBOY, seemed like a great opportunity to explore how the old Game Boy Color could switch render colors on original black and white Game Boy games. The core concept involved changing colors to not fall through jumping platforms. You would also shoot enemies based off their color, forcing the player to switch colors to get enemies and switch colors to land on platforms.
While using Unreal Engine 4 is a great learning exercise, the engine worked against the game in several key ways.
First, blueprints tend to get messy. I coded some of the classes in CPP however to iterate quicker, I ended up using blueprints for more and more 1 time run logic. However, several times I had gotten weird behavior, and while the blue print debugger can help you, I frequently found the blueprint error message was not helpful in figuring out why certain bugs or code failures where occurring.
Second, 2d in Unreal Engine 4 is very weak. You need to code your own way to handle 2d animations or get a decent plugin that can handle it for you. For the most part, Paper2d is deprecated, so most of its features are simple. If you plan on using 2d in Unreal engine 4, I would recommend using PaperZD or building out your own system.
Third, you cant animate characters quite as easily in engine as either Unity or Godot. You can do some 3d animation editing in Unreal but you really need external tools, where as in Godot 3 or Unity you can animate nearly any property on an object, which is preferably for rapid development.
All in all, if you get any take away out of this,
if you are prototyping a 2d game, you would be better off using Unity or Godot.
Do not take this the wrong way though, I love Unreal , but when you need to quickly iterate within a week, Godot 3 or Unity are better suited for most types of 2d games.