<-- this is shared/teaser/slider-teaser.html.erb -->
Project

Introduction

One keyboard. Two players. One winner. Shut Down is a fast and chaotic couch multiplayer game for two. You and a friend sit down, pick your dinosaur, and fight until someone's computer explodes. No complicated controls. No long setup. Just pure competition. Do you have what it takes to outlast your opponent — or will you end as a Dino Nugget?

Main Menu

Gameplay

Each player controls a pixel art dinosaur: one pink, one green. The goal is to bite your opponent enough times to win the match. The arena consists of a main floor and several floating platforms at different heights. Gravity pulls both characters down at all times. Jumping and positioning are important to land a successful attack. The only offensive move is the bite. It is short range and requires getting close to the opponent. The bite triggers a one-shot animation that plays to completion. Timing and positioning matter, because a cooldown restricts spamming the attack. A bite from the wrong distance misses entirely. A bite at the right moment can turn the fight around. Each dino has a set number of hit points and a fixed number of respawns. Losing all hit points costs one respawn. The dinosaur resets to its spawn point and the match continues. Once all respawns are gone, the match is over.

Some Technical Aspects

Build without a game engine: Every system that a game engine would normally provide had to be built from scratch (e.g. the game loop, input handling, collision detection, scene management, animation and UI). Each system had to communicate with the others without creating tight dependencies. This was challenging but also the most valuable part of the project. It forced a deep understanding of how these systems actually work under the hood.
Collision Detection: The collision system uses thin rectangles cast in each movement direction every frame. Before moving, the player checks whether a rectangle of the same thickness as the intended movement intersects any static collider. If it does, the movement is reduced pixel by pixel until it no longer collides. There is one important constraint: a thickness below 1 pixel results in a rectangle with no area, causing the collision check to return false.
Animation System: A finishCurrentAnimation flag ensures that one-shot animations like bite and jump play to completion before anything can interrupt them. Without it, pressing move during a bite would cancel the animation immediately, making attacks feel broken.

Fun Facts

- The dinosaurs were originally planned to be crocodiles but somehow, they changed appearance.
- The two dinosaurs have names: "Cactus" and "Strawberry". They were given by a friend during development.
- Only “Strawberry” has a nickname: “Berry”
- The bite attack once dealt damage to the biting dino not the opponent
- The Dino Nugget exists because of the line “Mach Dino-Nuggets aus deinen Gegnern!” (engl. “Turn your opponents into Dino Nuggets!”) on the poster
- Over 80 hours were invested in this project

Downloads

Appendices

Creators

Tim Bachmayer Profile Picture
Tim Bachmayer

Voice Actor

Selina Gloria Putzhammer Profile Picture
Selina Gloria Putzhammer

2D Artist

Game Design

Game Programmierung