Schnipp Schnapp is an online multiplayer party game for up to eight players. Cut a hedge into shape, and guess what other players are trying to shape their hedge into.
The game was made in the Godot Game engine, using Enet for multiplayer. I also made the games sound and art assets.
Schnipp Schnapp has four base Character modles, and a simple randomizer instead of a character creator, so that no two players look quite alike. A characters eyes, colors, and mouth are chosen at random, with high chances for a more "vanilla" look, and low chances for the selections and colors to go wild. The base for the characters was drawn in Affinity Desinger using vector art.
The game makes heavy use of geometry calculations to facilitate the cutting mechanic. These calculations are quite fast, but not fast enough to be run without significant lag in a real-time application. For this reason I implemented a threaded job-queue using semaphores, which calculates the geometry operations on a seperate thread, and informs the main thread when done.
Schnipp Schnapp uses mixed authority over the game state. The host facilitates the connections between the clients, and keeps track of the meta-game state. Things like scores, whos turn it is next, and if the game is completed are all decied by the host.
During a round (when a player is cutting) the player whos turn it currently is holds the authority. This way they experience zero lag while cutting. Each cuts position and angle is transmitted to all other players via network, and calculated on each machine seperatly. Sending the entire hedge mesh over the network each cut would be too expensive in a reasonalbe time-frame.