HX3 Foren

HX3 Foren (https://hx3.de/)
-   Editing & Scripting (https://hx3.de/editing-scripting-187/)
-   -   Traffic minimieren und Server entlasten (https://hx3.de/editing-scripting-187/traffic-minimieren-server-entlasten-23829/)

manatarms 14.05.2014 00:19

Traffic minimieren und Server entlasten
 
Hallo Leute,

ich hoffe ihr könnt mir mit euer Erfahrung helfen. Mir geht es im Grunde um die Frage wie man am besten Objekte erzeugt, lokal oder auf dem Server, um eine stabile Spielumgebung zu gewährleisten. Ich kenne folgende zwei Varianten wie man die mission.sqm verwenden kann.

Variante A: Mission liegt auf dem Server. Ich habe in meiner Mod beispielsweise "@R2R" eine mission.sqm reingepackt und in der config.cfg diese angegeben wo sie liegt

PHP-Code:

class CfgMissions
{
    class 
MPMissions
    
{
        class 
R2R
        
{
            
// directory = "R2R\mission\R2R.Altis";
       
};
   };
}; 

Zusätzlich steht dies noch in der server.cfg

PHP-Code:

// MISSIONS CYCLE
class Missions
{
    class 
R2R
    
{
        
template="R2R.Altis";// omit the .pbo suffix
        
difficulty="regular";// difficulty: recruit, regular, veteran or mercenary  
    
};
}; 

Nach meinem Verständnis wird hier einfach zwischen Clients und Server synchronsiert, der Server muss alle Objekte erstellen die in der Mission sind und diese dann mit allen Clients abgleichen. Die Mission liegt nur auf dem Server ab !!!

Variante B: Mission liegt auf dem Server, wird aber von jedem Client während er connected runtergeladen und im MPMissionCache gespeichert.

Was habe ich eigentlich vor ?
Um ein bestimmtes Szenario abzubilden habe ich vor mehrere 100 Objekte auf der Map zu platzieren. Hierzu nutze ich bereits den Editor, jedoch kommt es auch öfter vor das ich Objekte genauer positionieren oder rotieren möchte und der Editor kein zufriedenstellendes Ergebnis liefert. In dem Fall gehe ich in die Vorschau setze mein Objekt z.B. eine Schildkröte ab und lese die Koordinaten aus. Im nächsten Schritt erzeuge ich im Editor ein Dummy-Objekt und trage das bspw. ins Init ein

PHP-Code:

deleteVehicle this;
object "Turtle_F" createVehicle position player );
object setPosATL 3777.7112368.20.0845795 ];
object setVectorDirAndUp[ [ 0.7375970.675241], [ 00] ] ; 

Somit habe ich meine Schildkröte genau wie und wo ich sie haben will. Btw, später soll das ganze in ein Skript ausgelagert werden.

Zu meinen Fragen:
Welche Variante bevorzugt Ihr bzw. wann sollte man welche einsetzen ?
Welche Variante verbraucht weniger Traffic und entlastet insgesamt den Server ?

Eine Alternative wäre noch die Objekte nur lokal zu erzeugen, also jeder Client muss zwangsläufig Variante B nutzen. So etwas könnte dann programmiert sein

PHP-Code:

if( !isDedicated then
{
deleteVehicle this;
object "Turtle_F" createVehicleLocal position player );
object setPosATL 3777.7112368.20.0845795 ];
object setVectorDirAndUp[ [ 0.7375970.675241], [ 00] ] ;
}; 

Dann würde jeder Client Objekte nur für sich erzeugen unbd das sollte doch den Server auch entlasten ?

Es wäre enorm hilfreich wenn mir jmd nochmal genau die Hintergrundprozesse erklären könnte, damit ich besser einschätzen kann, welche weitere Vorgehensweise effizienter ist.

Danke schonmal vorab für eure Hilfe.

Gruss

manatarms

manatarms 14.05.2014 18:56

Hallo,

ich habe die letzten Stunden nochmal Zeit gehabt mir das ganze durch den Kopf gehen zu lassen und bin zu einem Entschluss gekommen es wie folgt zu machen.

Ich joine auf den Server und platziere die Objekte inGame wie ich sie haben möchte. Diese werden in meiner DB gespeichert. Dann lese ich aus der DB die Daten aus und geniere automatisch aus jedem Datensatz eine Scriptzeile wie bspw.

PHP-Code:

deleteVehicle this;
object "Turtle_F" createVehicleLocal position player );
object setPosATL 3777.7112368.20.0845795 ];
object setVectorDirAndUp[ [ 0.7375970.675241], [ 00] ] ; 

Es gibt also im Anschluss immer ein grosses Skript das jedes einzelne Objekt erzeugt. Dieses Skript bekommt jeder Client bzw. es wird immer lokal ausgeführt. Es braucht keine Synchronization, weil es nur statische Objekte sind.

Wie findet Ihr meine Idee ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:05 Uhr.

Angetrieben durch vBulletin, Entwicklung von Philipp Dörner & Tobias


SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119