Das Wichtigste ist in der oberen linken Ecke, und das musste ich tun, um das kleine "tojson: true" -Label erscheinen zu lassen. Warum ist das wichtig? Es bestätigt, dass die größte Datenübertragung im Spiel stattgefunden hat und korrekt in einem verwendbaren Format empfangen wurde. Was ist daran schwierig? Der Motor hat keine vorgefertigten Werkzeuge, die ihn richtig handhaben.
Und das ist die Kurzversion. Das Kaninchenloch geht viel tiefer. Selbst wenn Sie die Bytes zum Beispiel erhalten, können Sie sie nicht einfach in eine nützliche logische Struktur verwandeln. Wenn der Client versucht, einen 3,5-Megabyte-Block mit Knoten zu verarbeiten, friert er einfach vollständig ein. Keine Überraschung: Es muss 3,5 Millionen Zyklen laufen, in denen ein Zeichen gleichzeitig an eine Zeichenfolge angehängt wird.
All dies machte es auch notwendig, die Datenbankdaten in komprimierter Form zu speichern; sonst wäre keine Datenbank groß genug. Die Daten müssen komprimiert und dann dekomprimiert gesendet werden. Unsere aktuellen 6.000 Systeme nehmen etwa 18 GB ein, komprimiert. Unkomprimiert wären das etwa 45 GB. Und wir haben nicht 6.000 Systeme, sondern 50.000: etwa 400 GB unkomprimierte Informationen auf Planetenoberflächen. Je größer jedes Paket ist, desto mehr Traffic erzeugt es und desto länger braucht es, um den Client zu erreichen, und so weiter.
Es ist wahrscheinlich erwähnenswert, das Offensichtliche: Knoten können das Archiv auch nicht dekomprimieren. Kurz gesagt, jede Richtung schien in eine Sackgasse zu führen, aber die Informationen mussten noch übertragen werden. Avatarbilder und andere Dinge fallen ebenfalls in diese Kategorie. Kleine nachrichten, die im wesentlichen text waren, funktionierten reibungslos, aber das ist fast ein ganz anderes problem. Und die einzige offensichtliche Lösung war, Komponenten in C ++ zu schreiben, was das Projekt sofort auf die Kompilation mit Visual Studio verschieben würde. Meine erfahrung damit war schwierig; ich habe es mehr als einmal versucht. Es ist besser, so lange wie möglich bei Blueprints zu bleiben.
Was tun wir also? Schreiben Sie C++-Plugins, aber steuern Sie sie mit Knoten. Das gibt uns den Code und die Flexibilität. Kurz gesagt, ich habe mich in die Erstellung von Plugins vertieft, insbesondere mit KI. Da ich das Ende am Anfang verschenkt habe: Es funktioniert jetzt alles und es dauert ... Bruchteile einer Sekunde. Braucht jemand Plugins für Unreal Engine 5? )
