In Heist, one player, the thief, must sneak into a museum and steal as many valuables as they can before escaping. The Security Security team must guard the valuables. The game is round-based, and places a heavy emphasis on stealth an deception. There will be no guns or killing in the game. In order to win you'll have to use a combination of communication, gadgetry, stealth, and patience.
I'm currently building a simple gameplay demo in order to playtest and refine the core mechanics as well as improve my skills with UE4 Blueprints. So far I've built the core stealing and capturing mechanics, as well as full network replication for players and objects in the level.
The Thief will win the round if they can escape with a specified set of valuables within the round time limit. The more valuables they can steal, the more cash they will earn.
The thief can be spotted at any time by the Security team. If 2 players spot the Thief, the round is over and Security have won. While the Thief by default can run faster than Security players, their movement speed will also decrease for each additional valuable they steal.
Currently the game is coded entirely in Blueprints. I plan on dipping down to C++ when it comes time to implement some of the more sophisticated features, such as the item inventory and more advanced network replication.
I'm designing the level entities with future modding in mind. For each entity that is placed in a level, the mapper is provided with a high degree of customization.
Current placable entities:
The 'Valuable' Blueprint has a trigger volume which, when touched by a player, will assign a reference of that Valuable to a property on the player's character.
When the player holds the appropriate input button, and a 'Valuable' is set on the Character, then the stealing process begins.
The work of displaying the progress bar widget, as well as cancelling the progress if the player steps out of the trigger volume is handled in the Character blueprint. When progress is completed, the item is removed from the map and added to the player's item count.
Server hosting is handled by UE4's Create Session API, which is accessible via Blueprints. This isn't as fully featured as the C++ API, but for MVP purposes it gets the job done. I will likely rewrite the session code in C++ in the future.