FRIENDS-HUNT

Die Jagd beginnt

"Friends-Hunt ist kein Spiel für das Smartphone.
Es ist ein Spiel für Freunde – das Smartphone sorgt nur dafür, dass es funktioniert."

Eine selbst-hostbare Progressive Web App (PWA) für Reallife-Geo-Games im Stil bekannter YouTube-Formate. Präzise GPS-Wegpunkte und Intervalle machen dein Smartphone zur mobilen Einsatzzentrale.

PHP JavaScript HTML5 CSS3 JSON OpenStreetMap Leaflet PWA MIT
Jagd starten ▶
scroll ▼

Konzept

"Friends-Hunt soll Menschen zusammenbringen, für Bewegung sorgen und einen Tag schaffen, an den man sich noch lange erinnert."

Friends-Hunt ist ein Reallife-Geo-Game, das von bekannten YouTube-Verfolgungsformaten inspiriert wurde.

Ein oder mehrere Spieler (Player) versuchen, sich innerhalb eines vorher festgelegten Spielgebiets möglichst unauffällig zu bewegen und rechtzeitig eine definierte Flucht-Zone zu erreichen.

Die Jäger (Hunter) verfolgen die Spieler jedoch nicht in Echtzeit. Stattdessen erhalten sie die Positionen der Spieler nur zu bestimmten Zeitpunkten oder über spezielle Spielmechaniken. Dadurch entsteht ein spannendes Katz-und-Maus-Spiel, bei dem beide Seiten taktisch planen müssen.

Die Spielleitung (optional) überwacht das Spielgeschehen, achtet auf die Einhaltung der Regeln und kann – falls gewünscht – durch Hinweise oder Ereignisse für mehr Ausgewogenheit und Spannung sorgen.

Das Spiel endet, sobald alle Spieler gefangen wurden. In diesem Fall gewinnen die Jäger.

Erreichen die Spieler das Spielende, ohne dass alle gefangen wurden, gewinnen die Spieler.

🎯

Die Gejagten

Bewegen sich strategisch von Start- zu Exit-Positionen und versuchen, den Huntern unter Ausnutzung von Gelände zu entkommen.

🛰️

Die Jäger (Hunter)

Verfolgen die Positionen der Spieler zeitversetzt auf der Karte. Ein Intervall-Wechsel fordert schnelles Reagieren und clevere Wege.

📡

Die Spielleitung

Behält über das integrierte Nachrichtensystem die Kontrolle und kann Spielern oder Jägern Hinweise zukommen lassen.

Silent Hunt

Die Jäger erhalten in festgelegten Zeitabständen die zuletzt bekannte Position aller Spieler. Ein typisches Intervall wäre beispielsweise jede volle Stunde.

Zwischen zwei Silent Hunts kennen die Jäger keine neuen Positionen und müssen anhand der letzten bekannten Informationen versuchen, die Spieler aufzuspüren.

Speed Hunt

Zusätzlich steht den Jägern in festgelegten Zeitabständen ein Speed Hunt zur Verfügung.

Während eines Speed Hunts wählen die Jäger einen beliebigen Spieler aus. Für diesen Spieler erhalten sie eine begrenzte Anzahl von Positionsabfragen (z. B. vier Pings), die sie jederzeit strategisch einsetzen können.

Alle Spieler wissen, dass gerade ein Speed Hunt aktiv ist – nicht jedoch, welcher Spieler verfolgt wird. Erst nachdem alle verfügbaren Positionsabfragen verbraucht wurden, beginnt die Wartezeit bis zum nächsten Speed Hunt.

Key Features

"Der eigentliche Gewinner eines Spieltages ist oft die gemeinsame Zeit."

📌

Live-Positionstracking

mit dynamisch konfigurierbaren Intervallen.

🗺️

OpenStreetMap-Integration

Vektorkarten via Leaflet – völlig ohne teure API-Kosten.

🛡️

Zero-Database (JSON)

Keine Datenbank erforderlich! Alle Spielzustände werden in JSON-Dateien verwaltet.

🔐

Sicherheit

JSON-Dateien werden serverseitig via AES-256-CBC verschlüsselt abgelegt.

👣

Schrittzähler

Auswertungen der Laufleistung nach dem Spiel direkt über GPS-Distanzberechnungen (Haversine-Formel).

🧭

Offline Queue

Tracking Signale werden Offline gesammelt und wenn wieder Online an den Server geschickt.

💬

Nachrichtensystem

Kommunikation zwischen Spielleitung, Jägern und Spielern.

👪

Rollenbasiertes System

Spielleitung, Jäger, Spieler.

📦

Archiv-Funktion

Abgelaufene Runden können nach dem Spiel in ein Archiv verschoben werden und stehen für Statistiken im Wirtshaus bereit.

Regeln

"Friends-Hunt lebt nicht nur von der Jagd, sondern vor allem von den gemeinsamen Erlebnissen."

Regeln für die Spieler

  • Ein Spieler gilt als gefangen, sobald er von einem Jäger berührt wurde.
  • Der gefangene Spieler bestätigt seine Gefangennahme unmittelbar in der Friends-Hunt App.
  • Das festgelegte Spielgebiet darf nicht verlassen werden. Verlässt ein Spieler das Spielgebiet, werden die Jäger und die Spielleitung informiert. Seine Position ist für die Jäger sichtbar, bis er das Spielgebiet wieder betritt.
  • Spieler dürfen sich ausschließlich an öffentlich zugänglichen Orten aufhalten.
  • Längere Aufenthalte in Innenräumen sind nicht erlaubt.
  • Die Friends-Hunt App muss jederzeit Positionsdaten übertragen können.
  • Die Friends-Hunt App muss während des Spiels dauerhaft im Vordergrund laufen.
  • Die Nutzung privater Fahrzeuge ist nicht erlaubt.
  • Die Kommunikation mit anderen Spielern erfolgt ausschließlich über die Friends-Hunt App.

Regeln für die Jäger

  • Unbeteiligte Personen dürfen nicht aktiv an der Suche oder am Fangen der Spieler beteiligt werden. Das Nachfragen bei Passanten, ob sie einen Spieler gesehen haben, ist ausdrücklich erlaubt.
  • Jäger dürfen öffentliche und private Verkehrsmittel nutzen.
  • Alle während des Spiels entstehenden Kosten oder Strafen (z. B. Parktickets oder Geschwindigkeitsverstöße) tragen die Jäger selbst.
  • Jäger dürfen ihre Kommunikationsmittel frei wählen.
  • Gefangene Spieler dürfen zu den verbleibenden Spielern befragt werden.
  • Eigenständiges Tracking außerhalb der Friends-Hunt App ist nicht erlaubt.
  • Längere Unterbrechungen der Jagd gelten als Regelverstoß.

Optionale Regeln

Je nach Spielkonfiguration können zusätzliche Regeln aktiviert werden:

  • Spieler können ihre Mitspieler auf der Karte sehen.
  • Die Nutzung öffentlicher Verkehrsmittel kann erlaubt oder verboten werden. Ist sie verboten und die Friends-Hunt App erkennt eine Nutzung, werden die Jäger informiert und die Position des Spielers wird sichtbar.
  • Ein Mindestabstand zwischen Spielern kann konfiguriert werden. Nähern sich Spieler nach dem ersten Silent Hunt einander näher als dieser Abstand, gilt dies als Regelverstoß — die Jäger werden informiert und die Positionen der betroffenen Spieler werden sichtbar.
  • Je nach Spielkonfiguration können die Namen der Spieler auf der Karte angezeigt oder ausgeblendet werden.

Tipps für ein gelungenes Spiel

"Viel wichtiger als der Sieg … sind die gemeinsamen Erinnerungen."

📍

Interessantes Spielgebiet

Parks, kleine Gassen, Fußgängerzonen oder Wälder sorgen für spannende Entscheidungen und kreative Verstecke.

👟

Bequeme Schuhe

Je nach Spielkonfiguration kommen schnell einige Kilometer zusammen. Festes Schuhwerk macht den Tag angenehm.

🔋

Akku denken

Die App benötigt GPS. Ein vollständig geladener Akku oder eine kleine Powerbank können den entscheidenden Unterschied machen.

💧

Ausreichend trinken

Vor allem an warmen Tagen genügend Wasser dabeihaben. Mehr Spaß, wenn niemand wegen Hitze aufgeben muss.

🤝

Fair Play

Haltet euch an die Regeln und gebt auch euren Mitspielern die Chance auf ein faires und spannendes Spiel.

🍻

Gemeinsam ausklingen

Trefft euch nach dem Spiel in einem Biergarten, Restaurant oder beim Grillabend und schaut gemeinsam das Replay.

Screenshots

"Bilder zeigen die Oberfläche. Das eigentliche Spiel entsteht jedoch draußen – zwischen Freunden, Straßen und spontanen Entscheidungen."

Setup Ansicht
Setup
Gameplay Ansicht
Gameplay
Game Dashboard
Dashboard
Messages Ansicht
Messages
My Account Ansicht
My Account
System Messages
System Messages
Replay Player
Replay Player
Themes
Themes
1 / 8

Spiel-Konfiguration

"Jede Spielrunde ist anders. Mit wenigen Einstellungen entsteht aus derselben Idee immer wieder ein neues Abenteuer."

Jedes Match lässt sich im Administrationsbereich exakt an das Gelände und die Spieleranzahl anpassen:

Start & DauerFestlegung von Datum, Uhrzeit und Spielzeit in Stunden.
Tracking-IntervallHintergrund-Standortermittlung.
Silent Hunt IntervallFeste Intervalle (Minuten), in denen Jäger reguläre Positions-Updates erhalten.
Speed Hunt IntervallExtrem-Phasen (Minuten) mit aufeinanderfolgenden Positions-Updates.
Start- & Exit-PositionDefinition der finalen Exit Zone (z. B. eine Gaststätte).
Mitspieler / Namen anzeigenTaktische Filter, ob Jäger/Spieler einander auf der Karte sehen und namentlich identifizieren können.

Technische Architektur

"Friends-Hunt wurde nicht entwickelt, um veröffentlicht zu werden. Es wurde veröffentlicht, weil es entwickelt wurde."

Das Projekt trennt Logik und Darstellung. Custom MVC, kein Framework. Die Anwendung benötigt keine schwere relationale Datenbank und läuft dank optimierter JSON-Strukturen extrem ressourcensparend auf fast jedem Webspace.

index.php → Controller::execute()
  ├─ ?view=   → HTML-Antwort (Seitenans.)
  └─ ?result= → JSON-Antwort (AJAX)

PHP Klassenstruktur

Controller        # AJAX-Anfragen, Routings, Rollen-Management
Presentation      # Template-Engine, Cookies, Validierung
BaseObject        # Basis-Logiken, CRUD, GUID
  ├─ Player       # Usermanagement, Rollen, Auth
  └─ Game         # Spielinstanzen, Spieleinstellungen
      └─ Gameplay # Laufzeitbetrieb, Geo-Berechnungen
Controller        # AJAX-Anfragen
Presentation      # Template-Engine
BaseObject        # Basis-Logiken
  ├─ Player       # Usermanagement
  └─ Game         # Spielinstanzen
      └─ Gameplay # Laufzeitbetrieb

JavaScript Klassenstruktur

Communicator      # AJAX-Queue, Offline-Queue, Redirects
Validator         # Formularvalidierung, Fehlverwaltung
BatteryTracker    # Battery Status API
GeoMaps           # OpenStreetMaps-Integration über Leaflet
GeoTracker        # GPS, Schrittzähler, Wake Lock
Statistic         # Dashboard-Statistiken
ReplayPlayer      # Timelapse, inkl. Kartenverfolgung
Utils             # Statitische Hilfs-Methoden
BaseObject        # Kern-Objekt mit Basis-Logiken
  ├─ Player       # Usermanagement, Rollen, Auth
  └─ Game         # Spielinstanzen, Dashboard, Archiv
      └─ Gameplay # Laufzeitbetrieb, Nachrichtensystem
Communicator      # AJAX-Queue
Validator         # Formularvalidierung
BatteryTracker    # Battery Status API
GeoMaps           # Leaflet
GeoTracker        # GPS, Schrittzähler
Statistic         # Dashboard-Statistiken
ReplayPlayer      # Timelapse
Utils             # Hilfs-Methoden
BaseObject        # Basis-Logiken
  ├─ Player       # Usermanagement
  └─ Game         # Spielinstanzen
      └─ Gameplay # Laufzeitbetrieb

📱 PWA

Manifest, Service Worker unter scope: /, App Install Button aktiv.

🗄️ Caching

Statisches Asset-Caching, separater Leaflet-Tile-Cache mit 2h-TTL.

🍪 Storages

Cookie (Session), LocalStorage (Last Message), IndexedDB (Offline-Tracking).

Installation & Setup

„Ich glaube, Friends-Hunt profitiert davon, nicht wie ein Produkt zu wirken, sondern wie ein Herzensprojekt.“

  1. In GitHub auf Code → Download ZIP klicken oder das Repository klonen.
  2. Den Ordner auf einen PHP-fähigen Webserver (Apache / Nginx) hochladen.
  3. SSL-Zertifikat (HTTPS) sicherstellen – mobile Browser blockieren GPS im unverschlüsselten HTTP-Netz.
  4. Domain aufrufen, Account erstellen, Jagd starten!
git clone https://github.com/septem-sensu/friendshunt.git