Kampfsystem - Online

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

N0X

Betreff: Kampfsystem - Online

BeitragFr, Apr 09, 2010 21:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey!
Ich programmiere im Moment ein Online-RPG und weiß nicht so recht wie ich das Kampfsystem machen soll.
Man soll schlagen können, und wenn ein Monster getroffen ist soll diesem dann Leben abgezogen werden.
Aber was soll ich dem Server übermitteln?
Dass geschlagen wurde und auf welchen Koordinaten?
Bei Kollision (Client) übertragen welches Monster getroffen wurde?
Wie ist es am Verbindungs"schonendstem" ? Rolling Eyes
Wie machen das bekannte(re) Spiele? (Metin2, 4story, WoW Rolling Eyes )

Mfg,
N0X
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5%
 

Damian

Betreff: Re: Kampfsystem - Online

BeitragFr, Apr 09, 2010 21:35
Antworten mit Zitat
Benutzer-Profile anzeigen
N0X hat Folgendes geschrieben:

Dass geschlagen wurde und auf welchen Koordinaten?


Kurze gegenfrage wofür brauchen Sie die Koordinaten des Schlages beim Server?

Ich würde halt auf eine "verschleierte"-art den neuen Leben zum Server senden

Mfg

N0X

BeitragFr, Apr 09, 2010 21:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich dachte mir, der Client schlägt, und schickt die Koordinaten rüber (geschieht ja eig. sowieso permanent) und auch das er geschlagen hat, dann "guckt" der Server ob da ein Monster in der Nähe war und berechnet den zugefügten Schaden der dann wiederum zum Client geschickt wird.
Aber das wäre ja (wahrscheinlich) viel zu Verbindungsbelastend.
Gibts da nicht schonendere Wege?

Mfg,
N0X
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5%

peacemaker

BeitragFr, Apr 09, 2010 21:50
Antworten mit Zitat
Benutzer-Profile anzeigen
N0X hat Folgendes geschrieben:
Ich dachte mir, der Client schlägt, und schickt die Koordinaten rüber (geschieht ja eig. sowieso permanent) und auch das er geschlagen hat, dann "guckt" der Server ob da ein Monster in der Nähe war und berechnet den zugefügten Schaden der dann wiederum zum Client geschickt wird.
Aber das wäre ja (wahrscheinlich) viel zu Verbindungsbelastend.
Gibts da nicht schonendere Wege?

Mfg,
N0X


Du musst entscheiden wieviel du Clientseitig, wieviel Serverseitig berechnen willst. Das "Schauen ob Objekt da ist", würd ich clientseitig machen. Eventuell könntest du einfach wenn etwas getroffen wird, ein "Object was hit" schicken, er zieht dann die Leben ab.
Oder so, ist sehr situations- und systemabhängig.
~Tehadon~
www.tehadon.de
http://www.blitzforum.de/worklogs/14/
 

Damian

BeitragFr, Apr 09, 2010 21:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn man da UDP verwenden darf wärs ja eigentlich egal, oder? Mh ich glaube WoW schickt die einzelne Packete zum Server hin. Ich meine ständig die neue Koordinaten.

MFG Damian

N0X

BeitragFr, Apr 09, 2010 22:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Hm, ok!
Dann mache ich das so:
Arrow Client schickt(Monster getroffen, monster1)
Arrow Server berechnet(Schaden(aus den angr-werten aus MySQL-DaBa)->neues Leben für Monster)
Arrow Server schickt(berechneten Schaden(sonst weiß Client ja nich wieviel Schaden er gemacht hat), neues Leben von Monster)

Danke für die Tipps!

Mfg,
N0X

//EDIT:
Und ja, ich verwende UDP! (gibt ja aber trotzdem schlechte I-Net Verbindungen auf der Welt!)
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5%

hazumu-kun

BeitragSa, Apr 10, 2010 5:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Sei dir aber sicher das es findige Menschen gibt die zuviel Clientseitige Berechnungen zum eigenen Vorteil aushebeln.

Zum Beispiel über einen Hack das "Object was hit" 20fach senden.
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann
-> nicht omnipotent

N0X

BeitragSa, Apr 10, 2010 12:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja gut, da muss ich dann eben auf'm Server einen Schutz einrichten mit maximalen "Object was Hit" Daten die dann eben aus den Anrgiff-Skill's aus berechnet werden.
Also zeitliche Begrenzung zwischen den "Object was Hit" und die Begrenzung wird eben aus der Angriffsgeschwindigkeit des jeweiligen Client's berechnet. (Angr.-Geschw. ist in Datenbank gespeichert und wird je nach Skill eben hoch gesetzt.)

Müsste doch gut klappen oder?

Mfg,
N0X
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5%

hazumu-kun

BeitragSa, Apr 10, 2010 15:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, und wenn dann trotzdem gehackte Infos zum Server kommen den Spieler sofort für 24h kicken.
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann
-> nicht omnipotent
 

Ava

Gast

BeitragSa, Apr 10, 2010 15:51
Antworten mit Zitat
Ein Client darf ansich nicht viel mehr machen, als "Steuerungsvorschläge" an den Server zu senden. D.h. die komplette Spiellogik läuft auf dem Server ab. Und dieser entscheidet letzendlich über Möglichkeiten und Resultate. Was ansich auch bedeutet, dass der Server in der Regel die notwendigen Koordinaten zum Client schickt und nicht umgekehrt (nicht der Client sagt dem Server "ich bin jetzt hier und gehe gleich dorthin und dann hau ich dem Gegner 12 Schadenspunkte", sondern der Server sagt dem Client "Du bist grad dort - und wenn Du Dich jetzt bewegst, dann bist Du gleich da drüben - und wenn du den Gegner dann angreifst, ist er ausserhalb Deiner Reichweite und ausserdem hast Du gar keine Waffe!" )

N0X

BeitragSa, Apr 10, 2010 18:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, aber das wäre doch wirklich zu Verbindungsintensiv.
Ich meine bei z.B. Metin2 war auch lange Zeit ein Teleport-Hack sowie ein MoveSpeed-Hack verfügbar.
Arrow Das heißt die haben auch die Koordinaten Clientside berechnet und dann zum Server übermittelt!
Und das wäre ja auch kein Problem mit Begrenzern auf dem Server der dann eben bei zu hoher Geschwindigkeit oder plötzlichem Koordinatenwechsel die Spieler kickt/bannt.
Das würde die Übertragungsrate doch deutlich senken!

Oder wäre es dann trotzdem noch möglich zu hacken?

Mfg,
N0X
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5%
 

da_poller

BeitragSa, Apr 10, 2010 18:47
Antworten mit Zitat
Benutzer-Profile anzeigen
man kann alles hacken wenn man sich nur gut genug auskennt.

und btw: metin2 lässt sich auch jetzt noch(zumindest gings im dezember noch) sehr gut ein speedhack und fast hit hack nutzen

und: NEIN WIE SAGE ICH HIER UND AUCH PRIVAT NIEMANDEM!

N0X

BeitragSa, Apr 10, 2010 18:52
Antworten mit Zitat
Benutzer-Profile anzeigen
[offtopic] also wenn ich nen speedhack nutz, werd ich sofort gekickt! Laughing [/offtopic]
Zum Hacken: Dann doch aber nurnoch über die Möglichkeit den Server zu hacken, oder?!
Denn wie soll man bitte über den Client dann noch hacken können?
Mit Begrenzern wäre das doch nicht mehr möglich.
Wenn doch, sagt mir wie!

Mfg,
N0X
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5%

Chester

BeitragSa, Apr 10, 2010 19:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn das so einfach wäre, wieso gibts dann noch in fast allen Onlinegames Cheater? Geschwindigkeit manipulieren wäre bei dir eine Option. Denn wenn du die Koordinaten zum Server sendest, müsste der immer die Geschwindigkeit zwischen den Koordinaten ausrechnen. Und wie du vorhin schon erwähnt hast:
Zitat:
gibt ja aber trotzdem schlechte I-Net Verbindungen auf der Welt!
Genau deshalb kann dann die vom Server errechnete Geschwindigkeit mal stark abweichen. Demzufolge müssten dann alle mit stark schwankenden Latenzen Cheater sein.
Oder du teleportierst dich im Client einfach irgendwo anders hin und schickst die Laufkoordinaten nach.
Möglichkeiten gibt es auf dem Gebiet viele Wink

N0X

BeitragSa, Apr 10, 2010 20:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Hm, mist.
Ok, ich werde trotzdem mit Begrenzern arbeiten, vielleicht nicht unbedingt bei den Koordinaten, aber bei anderen Sachen.
Danke aber für die Tipp's!

Mfg,
N0X
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5%

Goodjee

BeitragSa, Apr 10, 2010 20:25
Antworten mit Zitat
Benutzer-Profile anzeigen
ein wenig lektüre, geschrieben von den profis Wink

http://developer.valvesoftware...timization
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group