DogFight - Multiplayer

Spiele, Demos, Grafikzeug und anderes unterhaltendes.
orange-blue
Beiträge: 556
Registriert: 04.09.2004 22:23
Kontaktdaten:

Beitrag von orange-blue »

:P Ich hab ein Notebook und bei mir sind die Tasten ganz ok und die Flugzeuge sind sau lahm.
Ich find das ist ur unbequem die Shift-Taste über den Cursor-tasten.
Achja: Threads helfen bei Netzwerkspielen nicht.
Wieso nicht?
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

orange-blue hat geschrieben:Hab mal eine MP fürs windows Solitär gemacht, und da is mir das nicht so langsam vorgekommen.
Du kannst Solitär nicht mit diesem Spiel vergleichen. Solitär ist runden basiert, d.h. dass der Netzwerk verkehr durchaus etwas langsamer laufen kann aber trozdem alles syncron läuft. Epyxs Spiel muss (alle) Clients gleichzeitig innerhalb von sekunden syncronisieren, sonst läuft alles asyncron und das sieht "dumm" aus /:->.
Bild
orange-blue
Beiträge: 556
Registriert: 04.09.2004 22:23
Kontaktdaten:

Beitrag von orange-blue »

Du kannst Solitär nicht mit diesem Spiel vergleichen. Solitär ist runden basiert
:? Seit wann ist Solitär rundenbasierend??
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

Ich hab jetzt Solitär mit Hearts verwechselt :freak:. Aber wie soll man Solitär zu zweit spielen o_O ? Das würd ich gern mal sehen (auch wenn es offtopic ist)
Bild
Benutzeravatar
Epyx
Beiträge: 247
Registriert: 29.08.2004 01:40
Computerausstattung: AMD64 X2 DualCore 6000+ , 3GB Ram , WinXP sp3
2x Ati Radeon HD4800 ~ CrossFireX
Kontaktdaten:

Beitrag von Epyx »

Ich habe mir jetzt mal die UDP Lib runter geladen, habe ich denn überhaupt eine chance das es damit schnell genug läuft wenn ich alle Positionen inkl. der Schuss Positionen übertragen lasse???

da wären für den Host zb.
Kennwort "Plane:" - 6 Byte
Winkel Flugzeug1 - max 3 Byte
XPos Flugzeug1 - max 3 Byte
YPos Flugzeug1 - max 3 Byte

XPos Flugzeug2 - max 3 Byte
YPos Flugzeug2 - max 3 Byte

Kennwort "Fire:" - 5 Byte - Wenn der Host schießen möchte

(Bis hier hin ist es so wie es derzeit gemacht wird, also effektiv 33 Bytes inkl. Trennzeichen und Abschluss Kennzeichen)
Wenns schnell genug läuft würde ich gerne die Schüsse nur vom Host aktualisieren lassen und die neuen Positionen zum Client übertragen.
Das wären also pro Schuss max 6 Byte für X und Y pos +2 Byte für die Trennzeichen, das halt mal 6 weil die Flugzeuge max. 6 schuss gleichzeitig haben. Also 48 Byte die sich beim Übertragen dazu packen + 5 Byte für "Bull:" als Kennwort für die Schüsse.
Also insgesamt maximal 86 Bytes die permanent zum Client übertragen werden (sollen).

Beim Client ist sehr viel weniger,
Kennwort "winkel:" - 7 Bytes
Winkel des Flugzeugs - max 3 Byte + Trennzeichen 1 Byte
Und Evtl,
Kennwort "fire:" - 5 Byte + 1 Byte Abschluss Zeichen.

Also maximal 17 Zeichen die da ständig übertragen werden sollen.
If you can't make it good, at least make it look good.
Bill Gates
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Beitrag von PMV »

Hm, so viel wird da ja garnicht übertragen ... kann es nicht sein, das deine Engine vielleicht irgend wo ein Delay() drinn hat, oder das darauf gewartet wird, bis Daten Empfangen wurden oder sonnst irgend wo gewartet wird?

Wie viel FPS hat denn das Spiel? und wie hoch ist diese Rate für die Komunikation mit dem Host. Also wie oft werden Daten zwischen Host und Client pro Sekunde übertragen? (oder vielleicht besser pro Minute)
Und wenne noch UDP rein machst, dann würd ich dir zum testen empfehlen das auch mal hierfür zu testen. Es wird bestimmt auch für andere ziemlich interezant sein, was da raus kommt, auch wenn du deinen Code nicht preis geben willst :D

Versuch doch mal das zu testen und raus zu finden. Je nach höhe oder wenns ziemlich gering ist, müssteste mal genauer schauen, warum die Rate nicht höher ist ... das wäre so meine nächsten Schritte :D

MFG PMV
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
orange-blue
Beiträge: 556
Registriert: 04.09.2004 22:23
Kontaktdaten:

Beitrag von orange-blue »

Stimmt! Könnte es nicht wirklich sein das du auf ne antwort von der anderen seite wartest?
ne andere sache:
Wäre es nicht schlauer das X2 und Y2 vom Client geschickt werden?!?

@LittleFurz: MP ist übertrieben, das Programm schickt eigenltich nur die Punkteanzahl, an den anderen. War auch mehr ein test als ein richtiges spiel.
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

orange-blue hat geschrieben:
:P Ich hab ein Notebook und bei mir sind die Tasten ganz ok und die Flugzeuge sind sau lahm.
Ich find das ist ur unbequem die Shift-Taste über den Cursor-tasten.
Achja: Threads helfen bei Netzwerkspielen nicht.
Wieso nicht?
Threads sorgen aller höchstens für verwirrung. Wenn du die Spieler in eine LL steckst kommt es manchmal zu unordnung zwischen den Threads und dem Hauptprogramm. Die Threads müssen also neben dem Hauptprogramm ablaufen, sodass es nicht zu zerstückelten Daten kommt. Außerdem: Was will man mit 1 Leitthread und n Playerthreads?
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Beitrag von PMV »

Also ... meiner meinung nach würden thread schon helfen ... wenn man z.B. den austausch bzw den Empfang der Daten und der Verarbeitung in einen Thread packt, ruckelt das Spiel selber nicht, da es von dem Datenfluss unabhängig ist. Dabei ließe sich dann einfacher die unterschiedliche geschwindigkeit zwischen Datenstrom und das Spiel selber besser bestimmt und regulieren.

Natürlich muss man dann wissen, wie man mit Threads umgehen muss bzw worauf man achten muss, also für Anfänger bzw alle, die sich noch nicht mit Threads beschäftigt haben ne etwas größere herrausforerung. Aber richtig gelöst könnte es durchaus die oben genannten Vorteile bringen :D .

Aber ohne Thread sollte das ganze genau so gut Lösbar sein. Dürfte also hierbei vom Programmierer selber abhängen, was er möchte und eventuell auch über seine Kentnisse.

MFG PMV
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Ich habs mit 3 verschiedenen kommunikationsvarianten probiert, nur dann waren die Spieler immer unterschiedlich schnell. Und das bringt auch nur wirklich was, wenn man keinen dedicated server programmiert.

Ich steh auf dedicated, da es einfacher ist. In Sachen Threads bin ich glaub auch nimmer richtiger Anfänger ;) Ich versteh sie und hab schon viel mit ihnen gemacht .
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Antworten