Blueprints: In-game messaging

Aside from character dialogues Piczle Cross Adventure also features some basic in-game messaging. In Piczle Colors some information was broadcast to the player through a fake Twitter-style social media post pop-up. When the player reached a milestone, unlocked a level, earned a trophy or anything like that, one of the game’s characters would “tweet” at them telling them so.

Piczle Cross Adventure also has similar information pop-ups. From an XP bar that shows up and increases after clearing a puzzle to a whole set of trophies the player can earn, I spent some time writing a robust messaging system in Unreal Engine 4.

When called the messaging widget checks the array (queue), takes the first message, removes it from the queue and displays it. After that it checks the queue again. If the array is larger than 0 it does the same thing again.

The messaging system lives on top of everything in the game. While player is playing the game occasionally checks for relevant messages it may need to display. Clearing a puzzle will do a quick check for new trophies based on number of puzzles cleared, and whether all puzzles in an area have been completed. Using clue roulette does a quick check to see if you’ve already received a trophy for using clue roulette. When it is relevant to do so, I just add a message ID to the queue and tell the messaging system to check itself.

New trophy notifications can pop up anywhere, any time.

If a message is already being displayed, the new message goes to the end of the queue and waits for the messaging Widget to have finished displaying its message to see if there are any other ones queued up. If not, if the queue is empty and a new message gets sent the messaging system will display it immediately.

When all the puzzles in an area have been cleared, not only does that part of the in-game map turn to full colour, the players gets a little message telling them.

Not all messages get shown immediately, though. The XP bar waits until the object unlocking sequence has completed. This was done deliberately as the unlocking animation demands the player’s attention and they might miss the XP bar popping up altogether. As the player can take control of Score-chan as the XP bar appears I thought it wouldn’t be too onerous.

Only when it is safe to do so the LEVEL UP animation plays.

The one exception is here. If the player has accrued enough XP to level up the messaging system is told so. But before it kicks off that animation it waits to see if any special events are taking place. Some puzzles end with a dialogue, others end with special animations. The messaging Widget waits until all of these have safely finished and just before the player gets control back of Score-chan it’ll kick off the level up animation.

The XP bar pops up after clearing a puzzle.

I designed the messaging system to inform but not interrupt too much. The trophy and area clear messages deliberately mimic the current consoles’ achievement popups, as I personally think they are great little Pavlovian rewards. A little ding and a message when you’ve reached a certain milestone is a great way to cheerlead the player.

Unlike Piczle Colors this time the messaging system works outside of the overall game loads and will always be displayed no matter what is happening in the background (except perhaps quitting back to the main menu). The fun personal interactions that Piczle Colors’ SocialFACE system provided are replaced this time by actual interactions between characters in the game.

2 thoughts on “Blueprints: In-game messaging

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s