Aktuelle Zeit: 22.12.2024, 14:18

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 11 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Server: Mehrere Welten
BeitragVerfasst: 08.11.2007, 15:04 
Offline

Registriert: 16.05.2007, 21:00
Beiträge: 166
Hi,
1.) Mein kleinens Game vier unterschiedliche maps bzw. Welten auf denen sich die Spieler von einer auf die anderen Teleportieren lassen kann. Soweit so gut, bei dem Client PC lade ich halt die Map auf der er gerade ist, aber wie sieht es beim server aus? er muss ja alle 4maps gleichzeitig bearbeiten da sich ja auf jedem Player befinden. Ich könnte zwar 4 Threads machen aber macht das die Engine mit das ich dann im Prinzip 4 Hauptschleifen habe und nur eine Device?

2.) Ich kapiere es immernochnicht wie ich es mache das ich auf dem Server kontrolliere, dass der Player nicht durch die Wand laufen kann. Duch das Tutorial Kolision und Reaktion weiß ich wie ich es auf dem Client PC machen kann aber eben nicht auf dem Server, mit mehreren.

MFG ReduX


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Server: Mehrere Welten
BeitragVerfasst: 08.11.2007, 15:21 
Offline
Moderator
Benutzeravatar

Registriert: 15.04.2007, 20:20
Beiträge: 505
Wohnort: Reelsen
1) Das musst du nicht unbedingt mit Threads machen, das geht auch alles in einer Schleife.

2) Die Kollisionsberechnung muss dann halt unabhängig von der grafischen Darstellung komplett auf dem Server durchgeführt werden.

_________________
Meine Gameengine :)
Bild


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Server: Mehrere Welten
BeitragVerfasst: 08.11.2007, 15:40 
Offline
Moderator
Benutzeravatar

Registriert: 25.03.2007, 18:11
Beiträge: 834
Wohnort: Hagen, NRW
1) Ein Irrlicht Device auf dem Server? Wozu das denn? Der Server hat die Leveldaten und schickt sie an den Client, da brauchst du kein Device einer Grafikengine zu (höchstens einmal zum laden der Daten)

2) Du hast doch alle Vertex Daten des Levels und des Spielers auf dem Server. Dann guckst du halt, ob sich die Vertices des Spielers mit denen des Levels schneiden und wenn das der Fall ist, sagst du dem Client, dass er grad in eine Wand gelaufen ist und doch mal so freundlich sein soll wieder zurück zu laufen ^^

_________________
Phenom X4 9950 BE | 6144MB DDR2-800 | GeForce 8800GT 512MB | Asus M3A32-MVP Deluxe | 2TB HDD | 520W Seasonic NT | Soprano Tower | Samsung 22" TFT + Fujitsu-Siemens 17" TFT + Toshiba 42" FullHD LCD | Windows 7 Proessional x64
Behind the Brain


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Server: Mehrere Welten
BeitragVerfasst: 08.11.2007, 17:00 
Offline

Registriert: 16.05.2007, 21:00
Beiträge: 166
Hi,
Hmm soll der client wegen der Kollisions überprüfung dann sobald er eine taste drückt die neue von ihm ausgerechnete position an den server schicken,
der zieht dann ne Linie überprüft ob was kollidiert ist, wenn nicht dann gut und wenn dann schickt der die alten pos. daten an den clienten(wo er hin soll)?
Wie bringe ich es dann aber hin den player bei den anderen player in bewegnung zu setzen? weil wenn ich die neue pos. den playern schicke siehts ja so aus als würds laggen, oder sollte ich wie in dem Tutorial(ich glaube es war das bewegungsTutorial) auf so ner Linie die Figur vom alten zum Neuen Punkt laufen lassen?

MFG ReduX


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Server: Mehrere Welten
BeitragVerfasst: 08.11.2007, 17:08 
Offline
Moderator
Benutzeravatar

Registriert: 15.04.2007, 20:20
Beiträge: 505
Wohnort: Reelsen
Zitat:
weil wenn ich die neue pos. den playern schicke siehts ja so aus als würds laggen

Wieso?

_________________
Meine Gameengine :)
Bild


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Server: Mehrere Welten
BeitragVerfasst: 08.11.2007, 17:58 
Offline
Moderator
Benutzeravatar

Registriert: 25.03.2007, 18:11
Beiträge: 834
Wohnort: Hagen, NRW
nein wird es nicht, es sei denn der server updatet nur einmal in der sekunde.
Wenn er öfter als 25 mal die sekunde updatet (was er auch auf jeden fall tun sollte), dann hast du eine flüssige bewegung

_________________
Phenom X4 9950 BE | 6144MB DDR2-800 | GeForce 8800GT 512MB | Asus M3A32-MVP Deluxe | 2TB HDD | 520W Seasonic NT | Soprano Tower | Samsung 22" TFT + Fujitsu-Siemens 17" TFT + Toshiba 42" FullHD LCD | Windows 7 Proessional x64
Behind the Brain


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Server: Mehrere Welten
BeitragVerfasst: 08.11.2007, 18:17 
Offline

Registriert: 16.05.2007, 21:00
Beiträge: 166
Hi,
Danke für eure Antworten!
Hab nurnoch eine Frage dazu:
Wenn der Client die neuen pos. erhält soll sich die Figur ja in die Lauf animation versetzen. Wenn ich die Figur wie gesagt auf ner Linie bewegen lasse setze ich die Frames ja auf die Lauf bewegung nur wie mache ich das wenn ich immer auf die Punkte setzen lasse? weil ich weiß ja nie wann der Player sich nicht mehr bewegt, sprich auf ner Linie setze ich am Anfang die Figur in die Lauf bewegung undam Ende hebe ich dies wieder auf aber bei den Punkten weiß ich ja nicht wann die Figur fertiggeloffen ist.

MFG ReduX


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Server: Mehrere Welten
BeitragVerfasst: 08.11.2007, 18:40 
Offline
Moderator
Benutzeravatar

Registriert: 25.03.2007, 18:11
Beiträge: 834
Wohnort: Hagen, NRW
der client könnte ja am anfang der bewegung eine nachricht an den server schicken, dass er anfängt zu laufen und wenn der client aufhört schickt er eine weitere entsprechende nachricht. so wissen auch die anderen clients wann wer läuft

_________________
Phenom X4 9950 BE | 6144MB DDR2-800 | GeForce 8800GT 512MB | Asus M3A32-MVP Deluxe | 2TB HDD | 520W Seasonic NT | Soprano Tower | Samsung 22" TFT + Fujitsu-Siemens 17" TFT + Toshiba 42" FullHD LCD | Windows 7 Proessional x64
Behind the Brain


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Server: Mehrere Welten
BeitragVerfasst: 09.11.2007, 10:00 
Offline
Newsposter
Benutzeravatar

Registriert: 12.03.2007, 10:42
Beiträge: 338
Wohnort: Berlin
So und hier mal wieder ein wenig Theorie von mir denn die kann ich besser als die praxis xD

Also zu deiner ersten Threadfrage:
1) siehe bei den andren xD
2) ich würde mir eine Struktur/Klasse/liste anlegen in der ich alle objekte der welten und ihre weltzugehörigkeit speichern würde. Um dann zu prüfen ob etwas kolidiert würde man nun die entsprechenden objekte der entsprechenden Welt raussuchen die bewegung berechnen und prüfen ob es kolisionen gab.

und nun zu dem rest:
grundsätzlich werden fasst alle berechnungen serverseitig gemacht. Das grundlegendste prinzip ist, dass man den aktuellen Tastatur-Status an den server schickt und dieser anhand der aktuell gedrückten tasten die bewegung bzw. kollision berechnet und die aktuelle position und das aktuelle animationsframe an den client zurück schickt. am ende kommt es fasst immer darauf hinaus das der client nur die anzeige und eingabe abarbeitet und halt die eingabe an den server schickt.

um jetzt kein ruckeln beim bewegen zu kriegen müsstest du wirklich um die 25 updates schicken aber auch dann hatt man noch wie ein lag drin deswegen berechnet der cient eine ungefähre position und rotation des objektes
zB: oldPos1,oldPos2 // dürfte selbst erklärend sein sollte aber ein struct sein in dem auch timestamps gespeichert sind
tmpPos.time = (oldPos2.time - oldPos1.time) // um die zeit die dazwischen war zu erhalten
tmpPos.pos = (oldPos2.pos - oldPos1.pos) // um den positionsunterschied zu bekommen
newPos.time = timestamp()
newPos.pos = oldPos2.pos + (tmpPos.pos * ( ( (newPos.time-oldPos2.time) / tmpPos.time * 100 ) / 100))

so würde ich zumindestens eine ruckel /lag freiebewegung berechnen

und was die animation angeht könnte man auch anhand des gesendeten tastatur status einfach dem client sagen so du hast jetzt den animation-state WALK oder RUN oder KNEEL oder as auch immer.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Server: Mehrere Welten
BeitragVerfasst: 13.11.2007, 20:15 
Offline

Registriert: 16.05.2007, 21:00
Beiträge: 166
Hi,
Hab da nochmal ne Frage zu den Welten.
Sollte ich da am besten ne Hightmap machen und ne Texture drüberlegen und das wasser und die Gebäuden etc. dann so draufbringen`?

MFG ReduX


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Server: Mehrere Welten
BeitragVerfasst: 13.11.2007, 21:05 
Offline
Newsposter
Benutzeravatar

Registriert: 12.03.2007, 10:42
Beiträge: 338
Wohnort: Berlin
Zitat:
Sollte ich da am besten ne Hightmap machen und ne Texture drüberlegen und das wasser und die Gebäuden etc. dann so draufbringen`?

is glaub ich die einfachste möglichkeit oder?


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 11 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de