Die Gejagten
Bewegen sich strategisch von Start- zu Exit-Positionen und versuchen, den Huntern unter Ausnutzung von Gelände zu entkommen.
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.
"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.
Bewegen sich strategisch von Start- zu Exit-Positionen und versuchen, den Huntern unter Ausnutzung von Gelände zu entkommen.
Verfolgen die Positionen der Spieler zeitversetzt auf der Karte. Ein Intervall-Wechsel fordert schnelles Reagieren und clevere Wege.
Behält über das integrierte Nachrichtensystem die Kontrolle und kann Spielern oder Jägern Hinweise zukommen lassen.
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.
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.
"Der eigentliche Gewinner eines Spieltages ist oft die gemeinsame Zeit."
mit dynamisch konfigurierbaren Intervallen.
Vektorkarten via Leaflet – völlig ohne teure API-Kosten.
Keine Datenbank erforderlich! Alle Spielzustände werden in JSON-Dateien verwaltet.
JSON-Dateien werden serverseitig via AES-256-CBC verschlüsselt abgelegt.
Auswertungen der Laufleistung nach dem Spiel direkt über GPS-Distanzberechnungen (Haversine-Formel).
Tracking Signale werden Offline gesammelt und wenn wieder Online an den Server geschickt.
Kommunikation zwischen Spielleitung, Jägern und Spielern.
Spielleitung, Jäger, Spieler.
Abgelaufene Runden können nach dem Spiel in ein Archiv verschoben werden und stehen für Statistiken im Wirtshaus bereit.
"Friends-Hunt lebt nicht nur von der Jagd, sondern vor allem von den gemeinsamen Erlebnissen."
Je nach Spielkonfiguration können zusätzliche Regeln aktiviert werden:
"Viel wichtiger als der Sieg … sind die gemeinsamen Erinnerungen."
Parks, kleine Gassen, Fußgängerzonen oder Wälder sorgen für spannende Entscheidungen und kreative Verstecke.
Je nach Spielkonfiguration kommen schnell einige Kilometer zusammen. Festes Schuhwerk macht den Tag angenehm.
Die App benötigt GPS. Ein vollständig geladener Akku oder eine kleine Powerbank können den entscheidenden Unterschied machen.
Vor allem an warmen Tagen genügend Wasser dabeihaben. Mehr Spaß, wenn niemand wegen Hitze aufgeben muss.
Haltet euch an die Regeln und gebt auch euren Mitspielern die Chance auf ein faires und spannendes Spiel.
Trefft euch nach dem Spiel in einem Biergarten, Restaurant oder beim Grillabend und schaut gemeinsam das Replay.
"Bilder zeigen die Oberfläche. Das eigentliche Spiel entsteht jedoch draußen – zwischen Freunden, Straßen und spontanen Entscheidungen."
"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 & Dauer | Festlegung von Datum, Uhrzeit und Spielzeit in Stunden. |
|---|---|
| Tracking-Intervall | Hintergrund-Standortermittlung. |
| Silent Hunt Intervall | Feste Intervalle (Minuten), in denen Jäger reguläre Positions-Updates erhalten. |
| Speed Hunt Intervall | Extrem-Phasen (Minuten) mit aufeinanderfolgenden Positions-Updates. |
| Start- & Exit-Position | Definition der finalen Exit Zone (z. B. eine Gaststätte). |
| Mitspieler / Namen anzeigen | Taktische Filter, ob Jäger/Spieler einander auf der Karte sehen und namentlich identifizieren können. |
"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)
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
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
Manifest, Service Worker unter scope: /, App Install Button aktiv.
Statisches Asset-Caching, separater Leaflet-Tile-Cache mit 2h-TTL.
Cookie (Session), LocalStorage (Last Message), IndexedDB (Offline-Tracking).
„Ich glaube, Friends-Hunt profitiert davon, nicht wie ein Produkt zu wirken, sondern wie ein Herzensprojekt.“
git clone https://github.com/septem-sensu/friendshunt.git