Game Design - Multiplayer Games Part 2: Simplicity
Games for friends
Sometimes the best moments in gaming come when your heart is pounding as you try to decimate your friends in some good old-fashioned multiplayer fun. This series of posts focuses on some of the games we've built to deliver these moments. The next one up is Simplicity.
This is a multiplayer puzzle game that was inspired by Super Puzzle Fighter. Players play side-by-side and are given the same set of puzzle pieces (called orbs). The orbs are colour-coded and must be stacked according to their colours. When a smash gem arrives, the player can use it to smash all of the connected orbs of the same colours as the gem. In so doing, the player's field is cleared up a bit and an equivalent number of orbs are sent across to the opponent's field. The first player to reach the top of the play area loses the match. An actual match can be seen in the video below:
Simplicity is a real-time multiplayer game. Players are able to drop orbs at any time. This makes the networking aspects of the game somewhat more complicated than a turn-based game like Psychic. The clients use HTML5 websockets for their networking and they talk to a node.js server. All the clients are responsible for is handling input and displaying the results received from the server. Whenever an orb is dropped, it's column position is sent to the server. The server then validates the move (to prevent clients from cheating) and broadcasts the move as well as the results of dropping the orb to the clients. The server is therefore the one who determines which orbs need to be removed from the player's field and which orbs are to be dropped onto the opponent's field. When the clients receive the results from the server, they display the results to the users. The server also determines whether the game is over and who the winner is.