← Alle Beiträge

Projektarchiv

Hex Maps, C++ und ein dedizierter Server

Es gibt etwas zu zeigen, aber das kann warten. Heute werden wir über die komplizierten Teile sprechen. Erstens haben die Vorbereitungen für die Saison begonnen und ich kann jetzt weniger Zeit für die Programmierung aufwenden. Dennoch ist etwas, das nur ein entfernter Plan war und sich weigerte, auch in früheren Iterationen zu arbeiten, endlich gelungen.

Ich schaffte es, eine flache, sechseckige Karte aus Hexen zu erstellen. Jedes Hex wird berücksichtigt und kann auf viele Arten geändert werden: Textur, Höhe und im Wesentlichen alle Regeln und Variablen. Dies ist die Grundlage für die Koloniekarte und in der Tat für die Geländekarte in einem planetaren Hex.

Für die Enthusiasten: Alle Hexfelder verwenden Würfelkoordinaten, so dass Vektoren und andere nützliche Dinge wie Wegfindung und Navigation um Hindernisse berechnet werden können. Das ist notwendig, damit sich Einheiten richtig über die Karte bewegen können: Truppen, Aufklärungsgruppen, Entdecker, Hauptstraßen und Stromnetze. Ja, es ist so ernst, wenn Sie es nicht schon wussten.

Als nächstes: Das gesamte Projekt wurde auf einen Source Build verschoben und arbeitet jetzt auch mit in C++ geschriebenen Modulen. Es dauerte drei Tage des Leidens, aber es funktioniert. Warum?

In C++ können Sie absolut alles schreiben. Mit Knoten können Sie nur das verwenden, was die Entwickler und Plugin-Hersteller zur Verfügung gestellt haben. Manchmal ist das nicht genug, manchmal ist es umständlich, manchmal ist es teuer und manchmal existiert es einfach nicht. Mit anderen Worten, Sie müssen es selbst machen. C++-Code läuft auch fünf bis sieben Mal schneller als Knoten.

Ich baue jetzt die C++-Generation eines Planeten aus Hexen. Es bewegt sich, aber noch sind nicht alle Hexfelder vorhanden. Kurz gesagt, der Algorithmus benötigt mehr Arbeit und Debugging.

Am wichtigsten ist, dass ich mit C++ meine eigenen Module für Kommunikation, Verschlüsselung und Paketkomprimierung schreiben kann. Ich habe Arbeitsbeispiele. Diese Module sind bei großen Datenmengen von Bedeutung. Im Moment arbeiten wir ohne Verschlüsselung und senden JSON-Strings, was nicht effizient ist, obwohl es funktioniert. Verschlüsselung durch Blueprints scheint völlig unmöglich. Das Kommunikationsmodul, das von einem Plugin geliefert wird, ist fest auf einer früheren Engine-Version gesteckt, und niemand weiß, ob es aktualisiert wird. Es war auf 5.4 für ein halbes Jahr, während der Motor bereits auf 5,5 ist. Ich kann nicht upgraden, weil die Kommunikation fehlschlagen würde: Das Plugin funktioniert nicht mit einer anderen Version ...

Kurz gesagt, es ist nicht langweilig und es ist sehr interessant, obwohl es gelegentlich von fluchen begleitet wird.

Oh, und eine selbst kompilierte Engine lässt uns eine dedizierte Serveranwendung erstellen. Wir werden das dringend brauchen, wenn wir den Schiffskampf erreicht haben. Der Kunde existiert; Ich habe es letztes Jahr gemacht. Wir haben noch nicht den richtigen Server, aber jetzt können wir einen bauen.

Das sind die Nachrichten.

Facebook-Profil des Projekts ↗