• Gameserver für kooperatives Handeln – maßgebliche Simulation, Matchmaking und Anti-Cheat basierend auf Node.js + Colyseus

    3 Stunden vor
    • Gewünschtes Budget bis zu 850.75 USD
    • Warten auf einen Auftragnehmer...
  • Die Ausgangssituation ist, dass es in Unity (Netcode für GameObjects) einen Prototypen eines kooperativen Spiels für 2-8 Spieler gibt. Bei P2P sind Probleme aufgetreten – nicht synchron, keine Verzögerungskompensation, der Host beendet sich – das Spiel bricht zusammen, Betrüger ändern die Schadens- und Geschwindigkeitsparameter. Sie müssen zu einem dedizierten, seriösen Server mit Räumen, Matchmaking und minimalem Anti-Cheat wechseln und dabei die aktuelle Kampf- und Inventarlogik beibehalten.

    Technische Umgebung – Linux (Ubuntu 22.04), Docker, Node.js 20 LTS, Colyseus 0.15+, Redis (für Warteschlangen und Präsenz), PostgreSQL (für Konten und Fortschritt), Nginx (TLS-Terminierung), GitHub Actions (CI). Unity 2022 LTS-Client, WebSocket-Transport (kein WebRTC). Bereitstellung in einer Region (noch nicht in mehreren Regionen).

    Was passieren sollte, ist ein funktionierendes Server-Backend mit einer zuverlässigen Simulation der wichtigsten Mechanismen (Bewegung, Einstecken von Schaden, Tod/Respawn, Beute und Inventar) und einer Match-Infrastruktur. Das Ergebnis sollte in Docker Compose reproduzierbar bereitstellbar sein und über einen grundlegenden Satz an Metriken/Protokollen für die Diagnose verfügen.

    Arbeitsumfang nach Etappen
    1) Analyse des aktuellen Netzwerkmodells – Analysieren Sie das Client-Nachrichtenprotokoll, markieren Sie die Zustände, die zu Serverzuständen werden sollen, und schlagen Sie ein Ereignis-/Snapshot-Schema vor. Das Ergebnis sollte ein ein- bis zweiseitiges Dokument mit einer Liste des maßgeblichen Status, einer Liste der Client-Befehle und einem Migrationsplan sein.
    2) Implementierung des Colyseus-Servers
    - Ordnen Sie Räume dem Lebenszyklus zu: Warten – Starten – Spielen – Beenden
    - Matchmaking nach Modus und MMR-Bereich (vereinfacht) mit einer Warteschlange in Redis
    - Autorisierende Verarbeitung von Client-Befehlen: Bewegung eingeben, Gegenstand verwenden, angreifen, aufnehmen, fallen lassen
    - Servervalidierung: Geschwindigkeit, Angriffsfrequenz, Aufnahmeradien, Abklingzeiten
    - Tickrate 20/s, Status-Snapshots 10/s, Interpolation auf dem Client bleibt auf der Unity-Seite (Sie müssen das Datenformat bestimmen)
    3) Speichern und fortfahren
    - PostgreSQL-Schema: Benutzer, Sitzungen, Fortschritt (Minimum), match_results
    - JWT-Autorisierung (Zugriffstoken) und Serververifizierung am Eingang des Raums
    - Spielergebnisse aufzeichnen und MMR aktualisieren
    4) Anti-Cheat-Mindestniveau
    - Ratenbegrenzung für Befehle
    - Server prüft auf unmögliche Zustände (Teleport, Speedhack, Schnellfeuer)
    - Verstoßsystem: N verdächtige Ereignisse pro Spiel – in match_results markieren und aus dem Raum werfen
    5) Infrastruktur und Qualität
    - Docker Compose: Gameserver, Redis, Postgres, Nginx
    - Gesundheitschecks, strukturierte Protokollierung (Pino oder ähnlich), grundlegende Metriken (Prometheus-Endpunkt oder einfache Zähler in /metrics)
    - GitHub-Aktionen: Linting, Tests (Mindesteinheit für Befehlsvalidierung), Erstellen eines Docker-Images

    Einschränkungen
    - Sie können keine verwalteten Dienste nutzen, alles muss auf einer Maschine in Docker Compose funktionieren
    - Ohne den Kauf kostenpflichtiger Anti-Cheat-Lösungen und ohne Kernel-Treiber
    - Der Unity-Client kann nur minimal geändert werden – es ist möglich, eine dünne Adapterschicht für ein neues Protokoll und eine neue Interpolation hinzuzufügen, ohne jedoch das gesamte Spiel neu zu schreiben
    - Externe Abhängigkeiten sollten verbreitet sein und aktiv gepflegt werden

    Messbare Akzeptanzkriterien
    – Wird mit einem Docker-Compose-Up-Befehl ausgelöst, woraufhin Folgendes verfügbar ist: /health, /metrics, Übereinstimmungen erstellen und Clients verbinden
    - Bei einer Auslastung von 8 Spielern in einem Raum hält der Server 20 Ticks/s ohne eine Verschlechterung von mehr als 10 % auf einem 4-vCPU-8-GB-Computer aufrecht (überprüft mit einem einfachen Bot-Skript oder einem integrierten Ladeskript).
    - Der Server lehnt mindestens 5 Arten von Cheat-Befehlen ab: Geschwindigkeitsüberschreitung, beschleunigter Angriff, Versuch, Schaden anzurichten, ohne das Servermodell zu treffen, Beute außerhalb des Radius aufsammeln, Spam-Befehle über das Limit hinaus
    - Match-Ergebnisse werden in PostgreSQL geschrieben, MMR wird aktualisiert, Benutzer-Neuanmeldung speichert Fortschritt
    - Das Repository verfügt über eine README-Datei mit Startschritten, Umgebungsvariablen und einer Beschreibung des Nachrichtenprotokolls

    Verfügbare Materialien – aktuelles Unity-Projekt (Repository), Beschreibung der Spielmechanik, Liste der Nachrichten/Ereignisse im aktuellen Prototyp. Das endgültige PR/Repository mit dem Server, den Konfigurationen, Datenbankmigrationen und den minimalen Client-Änderungen, die für die Verbindung mit dem neuen Server erforderlich sind, wird erwartet.
Ihr Angebot

Sie haben für diese Bestellung noch kein Angebot abgegeben.
Klicken Sie auf „Angebot senden“, um Ihr Angebot zu senden.

Brauchen Sie eine ähnliche Aufgabe?

Wenn dieses Projekt Ihrem Bedarf nahe kommt, können Sie in der Kategorie fertige Dienstleistungen anzeigen oder Ihre eigene Aufgabe mit dem erforderlichen Budget, der Frist und den Anforderungen veröffentlichen.

The project «Gameserver für kooperatives Handeln – maßgebliche Simulation, Matchmaking und Anti-Cheat basierend auf Node.js + Colyseus» can be used as a reference for your own brief: what should be done, what result is needed and what budget to set.