Kampfsystem - Online
Übersicht

![]() |
N0XBetreff: Kampfsystem - Online |
![]() Antworten mit Zitat ![]() |
---|---|---|
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" ? ![]() Wie machen das bekannte(re) Spiele? (Metin2, 4story, WoW ![]() Mfg, N0X |
||
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5% |
DamianBetreff: Re: Kampfsystem - Online |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hm, ok!
Dann mache ich das so: ![]() ![]() ![]() 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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
AvaGast |
![]() 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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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. ![]() 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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
[offtopic] also wenn ich nen speedhack nutz, werd ich sofort gekickt! ![]() 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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 ![]() |
||
![]() |
N0X |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
ein wenig lektüre, geschrieben von den profis ![]() http://developer.valvesoftware...timization |
||
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/ |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group