See Others mode is a light-weight and easy way to bring multiplayer action to a game. At bare minimum, players can see each other as ghosts in the game world, chat with each other, and see an in-game leaderboard. However, with fairly simple tweaks, you can do much more. How about a co-op boss fight? Or a dungeon that opens if enough players gather at its gate? You could even make a puzzle in which players need to complete a set of activities together before a shared event starts.
In this mode players can't bump into each other, and they can't interact directly with the same physical game world. You can't assign the players different controls, or trigger events that are only available for a specific player.
For simplicity, we'll refer to the See Others mode as Ghost Mode, and other players in the same game session as ghosts in this article.
See Others or Ghost Mode is on by default when you start making a new game from scratch. To change the setup, open Settings -> Multiplayer
By default, the maximum number of players in the same session is set to 32. If the ghosts distract gameplay, try decreasing the max players, or set the Player display style to transparent. Decreasing the size of the of the player names may also help.
Visible player reusables setting is initially toggled to Automatic. This is a good setting for most ghost games: it means that the game will try to automatically detect the player character and show it to other players. The non-automatic setting is needed if you e.g. spawn new reusables - like a pet follower - for a player during the game and want these to be shown to others.
It's a bit tricky to playtest Ghost Multiplayer Games to ensure all players experience the game like you've intended.
If you tap Restart in playtest, you will be able to see your own ghost from the previous test run.
Currently the only means to control different ghosts in playtest requires playing the game with two accounts - either by creating those yourself and joining the game from different devices, or by inviting another HypeHype user to test the game with you.
Default player look is often a good choice, but it's quite easy to randomize how players look at the start of the game.
/ghost_example_skins.mp4
How does it work 💡
In ghost mode, all visual changes that are done to a player character using the Object Changer node will be visible to others.
In this example the Object Changer is used together with a Selector node to assign a random model for a player.
It's also possible to change items that are attached to the player - like hats. Also these changes are visible to other players. This demo contains a bit more logic.
The hit points of the enemy are updated to all players in this example.
How does it work? 💡
The example uses a Fighter Player Premade whose logic has been modified a little bit.
It's pretty easy to unlock game events when a certain number of players gather in an area.
How does it work? 💡
A Player Beacon node is placed over the visual gathering area. The node detects how many players enter its area. A Compare node checks when this number reaches 2 and executes the door opening mechanism as soon as this condition is met. If new players enter the game at this point, they will see a closed door and will have to work together to open it.
Good to know: A player must be properly inside the Player Beacon sphere for the node to detect it.
This mechanism is similar to the previous gate example. The difference is: you can use many Player Beacons to create a puzzle in which players must stand in correct spots to proceed in the game.
You could notify the players about a number of events: when someone completes the game, opens an area for everyone, dies, or finds a treasure.
/ghost_example_notification.mp4
How does it work? 💡
Notifications to all players are sent using the Player Broadcaster node, which is executed in this example when a player collides with a star. Notifications are received with a Player Broadcast Listener node. Also player names can be included in notifications: this requires adding a Multiplayer Info node to the scene.
You don't need multiplayer logic to create timed events that everyone in the session can experience. In this demo, the World Info node is used to keep track of time.
These nodes can be used to spice up ghost multiplayer games.
Player Broadcaster | The node sends a signal to all players in a session. Can be used for triggering events or notifying players. |
Player Broadcast Listener | All players will receive the signal that Player Broadcast Listener picks up (vs. regular broadcast listener which only affects individual players at a time) |
Multiplayer Info | Add this node to the scene if you need to use the Player Index, Team Index or Player Name outputs of the Player Broadcaster. They won't work otherwise! |
Player Beacon | Detects all players in a specific area |
Global State | Syncs a number for all players in a game |
World Info | Useful for creating timed events for all players |
Score | In order to show an in-game leaderboard, a game needs to have a scoring system |
Object Changer | Any changes made to a player character using the Object Changer node will be visible to others in Ghost Mode |