We built a 3D game full of 2D mini games, where the player is the only crew member on a spaceship and must run around keeping the shields powered, dodging missiles and charging up the gun.
The most awkward thing was controlling the game events to keep communication clear and not overloading the player with information while keeping the feeling of panic. I'm not sure we pulled it off perfectly but it works for the most part.
We used UE4 and I implemented an event queue in C++ built of inline instanced UObjects. We could then have Blueprint derived classes that provided the functionality for the event and declared when the queue could move on to the next. This allowed us to gate events by dialogue, world effects, player location etc on a per event basis. It made all the game logic very modular which was great for us as it minimised changes in one system breaking another.
You can check out the game and the project source on our game page.
If anyone has the mad inclination to open the project you'll need UE4.22.3 and VS2017.