THE
TYPING DEADTYPING DEADTYPING DEAD

Dokumentation

Spielübersicht

The Typing Dead ist ein Typing-Game mit einem einzigartigen Twist. Jedes Wort ist eine Kugel in deinem Magazin, und jeder Tippfehler kostet dich wertvolle Zeit. Tippe schnell und präzise, um die höchstmögliche Punktzahl zu erreichen.

Spielfunktionen

  • Dynamische Schwierigkeitsgrade mit verschiedenen Zeitlimits und Multiplikatoren
  • Sound-Effekte für Treffer, Nachladen und Fehler
  • Hintergrundmusik mit Ein/Aus-Funktion
  • Highscore-System mit lokaler Speicherung
  • Mehrsprachige Unterstützung (Deutsch/Englisch/Türkisch)
  • Dark Mode / Light Mode
  • Echtzeit-WPM und Genauigkeitsberechnung
  • Echtzeit-Feedback für Tastatureingaben
  • Visuelles Feedback im Resident Evil Stil
  • Zombie-Timer mit visueller Fortschrittsanzeige
  • Leben-System mit visueller Anzeige
  • Debug-Modus für detaillierte Performance-Analyse

Neue Features

  • Echtzeit-Feedback:
    • Farbkodierung für korrekte/falsche Eingaben
    • Animationen für Tastatureingaben
    • Visueller Fortschritt im aktuellen Wort
  • Verbessertes Audio-System:
    • Persistente Musikeinstellungen
    • Automatische Wiederaufnahme nach Pause
    • Lautstärkeanpassung für verschiedene Sounds
  • Erweiterte Sprachunterstützung:
    • Türkische Lokalisierung hinzugefügt
    • Dynamischer Sprachwechsel ohne Neuladen

Schwierigkeitsgrade

Tutorial

  • Zeitlimit: 60 Sekunden
  • Zeitstrafe: -1 Sekunden
  • Punktemultiplikator: 0.875x
  • Erste Schritte im Labor

Leicht

  • Zeitlimit: 40 Sekunden
  • Zeitstrafe: -2 Sekunden
  • Punktemultiplikator: 1.425x
  • Perfekt für Anfänger. Mehr Zeit, weniger Stress.

Normal

  • Zeitlimit: 30 Sekunden
  • Zeitstrafe: -3 Sekunden
  • Punktemultiplikator: 1.7x
  • Die klassische Herausforderung.

Schwer

  • Zeitlimit: 20 Sekunden
  • Zeitstrafe: -5 Sekunden
  • Punktemultiplikator: 2.2249999999999996x
  • Für erfahrene Überlebende. Weniger Zeit, höhere Belohnung.

Schwer

  • Zeitlimit: 15 Sekunden
  • Zeitstrafe: -8 Sekunden
  • Punktemultiplikator: 2.3x
  • Nur die Besten überleben. Maximale Punktzahl möglich.

Leicht

  • Zeitlimit: 45 Sekunden
  • Zeitstrafe: -4 Sekunden
  • Punktemultiplikator: 1.425x
  • Eine Test-Karte zum Überprüfen der Anzeige.

Schwer

  • Zeitlimit: 25 Sekunden
  • Zeitstrafe: -7 Sekunden
  • Punktemultiplikator: 2.125x
  • Eine brillante, aber von Schuldgefühlen geplagte Wissenschaftlerin, die die Verhaltensmuster der Infizierten studiert. Ihre Fort-12 ist präzise und tödlich effizient.

Normal

  • Zeitlimit: 28 Sekunden
  • Zeitstrafe: -5 Sekunden
  • Punktemultiplikator: 1.95x
  • Eine brillante Schülerin, die ihr Wissen nutzt, um Überlebensstrategien zu entwickeln und das Verhalten der Zombies zu analysieren.

Schwer

  • Zeitlimit: 25 Sekunden
  • Zeitstrafe: -6 Sekunden
  • Punktemultiplikator: 2.25x
  • Ein hochrangiger Bushi-Krieger, der die Steam Gun mit tödlicher Präzision einsetzt.

Schwer

  • Zeitlimit: 35 Sekunden
  • Zeitstrafe: -8 Sekunden
  • Punktemultiplikator: 2.375x
  • Ein brillanter Wissenschaftler, der seine Armbrust mit taktischer Präzision einsetzt.

Schwer

  • Zeitlimit: 30 Sekunden
  • Zeitstrafe: -7 Sekunden
  • Punktemultiplikator: 2.4x
  • Ein brillanter Virologe, der mit seiner M4A1 Sturmgewehr die Infizierten studiert.

Punktesystem

Die Punktzahl wird basierend auf mehreren Faktoren berechnet:

  • Grundpunkte pro korrektem Wort
  • WPM (Words Per Minute) Bonus
  • Genauigkeits-Bonus
  • Schwierigkeitsgrad-Multiplikator

Tippfehler führen zu Zeitstrafen, die je nach Schwierigkeitsgrad variieren.

Technische Details

Frontend Stack:

  • Next.js 13 mit App Router
  • React mit Client-side Hooks
  • Tailwind CSS für Styling
  • TypeScript für Type Safety

Komponenten:

  • Game Components (GameControls, GameInput, GameTimer, etc.)
  • UI Components (NavigationWrapper, NotebookMenu, SettingsOverlay)
  • Debug Tools (DebugBox, ScoreToast)
  • Modal Dialogs (HighscoreModal)

Custom Hooks:

  • useLanguage - Mehrsprachigkeit
  • useAudio - Sound Management
  • useTheme - Dark/Light Mode
  • usePlatform - Geräte-Erkennung
  • useGameControl - Spiellogik
  • useInputHandling - Tastatureingaben

Features:

  • Zentrales Navigation System
  • Responsive Design
  • Lokale Speicherung für Highscores
  • Audio-System mit verschiedenen Soundeffekten
  • Mehrsprachige Unterstützung (DE/EN/TR)

Performance-Tipps

  • Beginne mit dem leichten Schwierigkeitsgrad, um dich mit dem Timing vertraut zu machen
  • Achte auf die Soundeffekte - sie geben wichtiges Feedback
  • Konzentriere dich auf Genauigkeit vor Geschwindigkeit
  • Nutze die Pause-Funktion (ESC), wenn du eine Pause brauchst
  • Beobachte deine WPM und Genauigkeit in der Debug-Anzeige

Design System

Light & Dark Mode

Light Mode

Text: text-gray-800

Accent: text-orange-500

Secondary: text-gray-600

Dark Mode

Text: text-gray-200

Accent: text-orange-400

Secondary: text-gray-400

Typografie

Game Title

font-title text-4xl text-orange-500

Section Heading

text-2xl font-title

Standard game text with base size

text-base

Small UI text for scores and stats

text-sm text-gray-600 dark:text-gray-400

Komponenten

Buttons

bg-orange-500 hover:bg-orange-600 text-white px-4 py-2 rounded transition-colors

Game Input

bg-white dark:bg-gray-800 border-2 border-gray-300 dark:border-gray-600 focus:border-orange-500

Score Display

Score: 1000
px-3 py-1 bg-orange-500 text-white rounded-full

Responsive Design

BreakpointClassDimensionBeispiel
Mobile (Default)-< 640pxtext-sm p-4
Tabletsm:≥ 640pxsm:text-base sm:p-6
Desktopmd:≥ 768pxmd:text-lg md:p-8
Large Desktoplg:≥ 1024pxlg:text-xl lg:p-12

Code-Beispiele

Game Component

import { useState } from 'react';
import { useGameControl } from '../hooks/useGameControl';

export function GameComponent() {
    const [score, setScore] = useState(0);
    const { 
        startGame,
        pauseGame,
        gameState 
    } = useGameControl();

    return (
        <div className="game-container">
            <div className="score-display">
                Score: {score}
            </div>
            {/* Game controls */}
        </div>
    );
}

Custom Hook

import { useState, useEffect } from 'react';

export function useGameTimer(initialTime: number) {
    const [timeLeft, setTimeLeft] = useState(initialTime);
    const [isRunning, setIsRunning] = useState(false);

    useEffect(() => {
        let timer: NodeJS.Timeout;
        if (isRunning && timeLeft > 0) {
            timer = setInterval(() => {
                setTimeLeft(prev => prev - 1);
            }, 1000);
        }
        return () => clearInterval(timer);
    }, [isRunning, timeLeft]);

    return { timeLeft, isRunning, setIsRunning };
}

Spielsteuerung

Spielsteuerung

  • Tippe die angezeigten Wörter so schnell und genau wie möglich
  • Jeder Tippfehler kostet Zeit und Punkte
  • Drücke ESC um das Spiel zu pausieren/fortzusetzen
  • Das Spiel endet wenn:
    • Die Zeit abläuft
    • Du keine Leben mehr hast
  • Während der Pause:
    • Der Timer wird angehalten
    • Die Eingabe ist deaktiviert
    • Ein Overlay zeigt den Pause-Status
  • Nutze die Debug-Anzeige um deine Performance zu überwachen