Muesli

This game has been developed in the course of an Interdisciplinary Team Project with students of the design courses. My job was to implement gameplay and the networking infrastructure. The game is a competitive 2D multiplayer title that can be played with up to four players over the local network. The players each control a hero who is located in an arena with the others. The goal of the game is to defeat the other player’s heroes and survive as the last one. A feature of the play area and core mechanic is the layout of the arena. Except for a few predefined areas, for example the player’s spawn points, the arena is composed entirely of water and can not be entered by players.

In order to get through the arena and to the opponents, the players have to lay floor plates and use them as paths. To achieve this the players need a sufficient supply of tiles which are one of the two resources in the game besides gold. In addition to the construction of paths, the tiles are required in combination with gold for the construction of buildings. Gold can also be used to purchase upgrades for the character which permanently improve the attribute values. The players periodically receive a resource income which they can increase by the construction of mines on predefined resource fields. However, in order to increase the income, a connection of own floor plates from the mine to the start field of the player must be built. Since the opponents’ floor plates can be destroyed by the use of tiles, it is possible to sabotage the income of the other players. In addition to the mines, the players can build towers that strengthen their own character or slow their opponents down.

At the beginning of a round the players choose their hero from a group of four unique characters. These differ in their attribute values such as hit points or speed, their primary attack and an ability. The following characters are selectable:
Mage: Shoots fireballs as a primary attack and can cast a powerful frost nova that freezes all enemies around. He should use this to escape his opponents as he would be easily defeated in close combat.
Thief: A fast character fighting with two blades at the same time. He can throw a smoke bomb to become invisible to his opponents. If he starts an attack being invisible the first hit deals bonus damage.
Viking: A slow but tough hero, swinging a battle ax. His opponents should be careful of his storm attack with which he can quickly reach and stun them in addition.
Mechanic: Wields a shotgun with which she can harm several enemies at the same time. Additionally, she places hidden bombs on the ground which explode on contact with the other characters and cause tremendous damage.

Besides managing the resources and finding the right balance between tiles and gold, the fight against the other characters is a focus of the game. For a kill of another character the players receive a high gold sum as a reward which they can invest in additional upgrades. Furthermore, there is a special building in the center of the map which can be captured by the players for a certain period. As long as they hold this building, the cooldown of their abilities is reduced which gives them a great advantage over their opponents. This is intended to encourage the players to play aggressively and to give them an exciting experience.

In order to simplify the network architecture it was implemented on the basis of TCP. Since the game is designed for local multiplayer the overhead in network traffic generated by TCP compared to UDP can be neglected. A client/server architecture with an authoritative server was developed. To compensate for resulting problems, such as input delays and rendering lags, various advanced techniques such as client side prediction, server reconciliation and entity interpolation have been used.