Hunger Games

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!

  • Hi Leute

    1. Mal ein großes Lob an alle die dabei geholfen haben dass das überhaupt funkt :)

    Aber ich weis nich ob das nur bei mir so is aber wenn ich in den hungergames jemanden schlage kriegt er nur manchmal Schaden und manchmal auch haarkleinen schaden :/
    Das finde ich etwas ungünstig ;) naja würde mich über eine Aufklärung freuen aber trotzdem Daumen hoch für hungergames :thumbup:

    Don't cry, say (böses Wort) you and smile !!!

  • Der Server läuft komplett ohne lags einwandfrei. Das man sich manchmal denkt "hääääää wieso konnte der mich jetzt töten???????" oder "Wieso nimmt der jetzt keinen Schaden??????".......... dass geht nicht nur Dir so glaub mir :)

    Das liegt wahrscheinlich an der Synchronisation von Minecraft, keine Ahnung... ist aber schon oftmals seltsam... da können wir leider kaum was machen denke ich... außer Speedy fällt dazu noch irgendwas ein...

  • das mit dem schaden kommt mir bekannt vor... bin 5 runden hintereinander in den ersten 3 minuten rausgeflogen also nein du bist nicht allein :P
    aber is halt doch so - oft ist der direkte kampf nicht die beste lösung... na taktiken will ich hier nu nich erzählen *g*

    ansonsten nochmal allgemein zur klarstellung lag/kein lag und was die verschiedenen werte so bedeuten

    der befehl /lag ist eigentlich falsch benannt für das was ihr damit meint.
    /lag zeigt die tps an. um das zu erklären mal ein klein wenig ausgeholt.
    der server arbeitet viele schritte noch relativ linear also nacheinander ab. dazu gehören in erster linie (zumindest der erklärung wegen :P) die erkennung/abarbeitung von events. events sind hier alle möglichen vorkommenden aktionen, zum beispiel: Block abgebaut, block gesetzt, player joined, player left, player gekillt, player klickt auf block, aber auch unscheinbarere wie blitz entzündet block, wasser fliesst auf nachbarblock, kuh wächst, player bekommt hunger, und dann auch aktionen die seeeehr häufig vorkommen können wie redstone ändert den zustand, und vorallem player bewegt sich, player ändert blickrichtung(!), schwein spawnt auf der map, creeper bewegt sich(!), oder auch player schlägt player...
    eigentlich für alles gibt es events, udn diese werden vom server zwischendurch "gesammelt" und dann nacheinander abgearbeitet.
    abarbeiten heisst je nach event halt unterschiedlichste aktionen ausführen, zb kontrollieren darf der player das, ist das überhaupt möglich, ausführen, was sind die folgen, welche plugins wollen davon was wissen, was wollen die damit machen,...
    zwischendurch werden halt die "ergebnisse" an die player gesendet (dein spiel weiss nun das sich der andere player bewegt hat oder schlägt)
    nachdem dann alle events der reihe nach abgearbeitet sind (andere serveroptionen wie laden/speichern/allgemeiner spielablauf mal aussen vor gelassen obwohl auch hier noch ne ganze reihe aktionen ablaufen) geht "in die nächste runde".
    und nun kommen wir zum "haken". nach einem durchlauf schaut der server nach: wie lange habe ich für diesen umlauf gebraucht? war ich schnell genug? dann mach ich ne kurze pause und sammel noch ein paar eintreffende events.
    ein solch ein umlauf ist ein "tick" nenn ichs mal, und der befehl /lag zeigt diese ticks pro sekunde an, das hat NICHTS mit irgendwelchen netzwerkübertragungen oder dergleichen zutun! und wie man an dem wert sehen kann, liegt er NIE über 20. denn 20 ist der maximalwert vom server, wenn er die hat, macht er zwischendurch pausen um eben genau auf 20 zu bleiben und macht nicht zb 30 oder 50 oder 200...
    warum? weil sehr viele (meist unscheinbare) aktionen im spiel auf diese ticks basieren. zb ein mobspawner hat eine wahrscheinlichkeit x im umkreis einen mob zu spawnen (vereinfacht gesagt), und das basiert mit etwas rechnen am ende auf "pro tick". wenn der server nun 40tps machen würde, würden auf einmal doppelt so schnell mobs spawnen, bäume und getreide würden schneller wachsen, wasser würde schneller von block zu block springen, mobs würden sich schneller bewegen und euch bei 100tps einfach nur umhauen, also eigentlich alles was im game um euch herum automatisch passiert wäre schneller. daher wurde damals von mojang gesagt das 20 die obergrenze ist weil mehr würde man zum abbauen und setzen von blöcken einfach nicht brauchen. an pvp und andere aktionen wurde dabei noch nicht gedacht - genaugenommen hatte man ja nichtmal an multiplayer gedacht...
    was bedeutet es nun wenn tps unter 20 sinken? erstmal NICHTS! das heisst nur, das eure aktionen - zb block abgebaut - nicht mehr ganz so schnell vom server abgearbeitet werden wie normal. das hat mit dem eigentlichen netzwerkverkehr im hintergrund nichts zutun. und da eurem client egal ist ob der server sofort antwortet oder nicht (der zählt ja irgendwo für sich selbst) macht ihr auch erstmal wie gewohnt weiter. heisst, der server bekommt evtl in einem umlauf mehrere aktionen von einem player "hat sich bewegt, umgesehen und 3 blöcke abgebaut". das stört ihn nicht, und das einzige was passiert ist das eventuell die items aus den blöcken minimal verzögert ankommen. den rest buffert euer client schon von selbst. auch mit nur 1 tps kann man auf dem server (theoretisch) noch normal spielen, nur das sich andere player ruckartiger bewegen und die umgebung deutlich langsamer wird - heisst die baumfarm braucht ewig bis sie nachwächst ;)
    im umkehrschluss merkt der server aber auch nicht wenn der client oder die übertragung von/zu diesem langsam ist. häufig sind auch hier probleme. und selbst wenn man es als client nicht merkt (150fps) sind diese probleme eventuell vorhanden! fps = frames per second. heisst, dein client malt dir 150 schöne neue bunte bildchen pro sekunde auf den bildschirm. da er aber nur MAXIMAL 20mal pro sekunde neue daten vom server erhalten kann und der rest vom client "geraten" wird ist fps für die bestimmung von lags absolut uninteressant! dann bekommst du halt 150 mal die gleiche playerposition vom gegner angezeigt obwohl du dich selbst flüssig bewegst da du dich auch bewegen kannst ohne ne rückmeldung vom server zu bekommen, du bewegst dich, sendest deine neue position an den server und bewegst dich weiter ohne auf ne antwort zu warten. daher erscheinst du selbst bei dir immer flüssig. einzig wenn der server dann sagt "ne da darfst du garnicht hin" wirst zu zurückgesetzt was man dann am client merkt. aber wenn zb nun du dich bewegst, und deine firewall die pakete vom server noch 2sec lang durchscannt, dauert es halt auch mit 150fps ewig bis der andere player sich bei dir bewegt obwohl du eventuell schon lange tot bist ;) ok dummes beispiel... will nur sagen - auf clientseite merkt man von den lags in der art aber nichts selbst wenn es clientseitig ist!

    na viel theorie, aber was heisst das nun für pvp?
    das minecraft dafür schon prinzipiell nur bedingt geeignet ist.
    warum? na wenn nur 20mal pro sekunde überhaupt aktionen bearbeitet werden, heisst das auch das ne aktion im extremfall für 50ms einfach nur in der warteschlange hängt und der server auf den nächsten durchlauf wartet! zu diesen 50ms - oder sagen wir mal im durchschnitt 30ms - je nach dem wann die aktion im vergleich zur warteschlange eintrifft - kommen dann noch die üblichen übertragungen hinzu - nehmen wir mal 35ms als schnitt (was für ne "normale" DSL-leitung ohne fastpath schon nen seeehr guter wert wäre) von player a zu server in warteschlange und weiter zu player b da bist du schon bei 0.1sec auf die niemand auch nur irgendwie einfluss nehmen kann. (und das sind schon recht gute beispielwerte - das können auch schnell doppelt so viel werden)
    und nein - diese 20tps lassen sich auch nicht umstellen, dazu müsste man schon den server selbst auseinandernehmen und komplett modifizieren, was ohne den kompletten source einfach unmöglich ist.

    das ist halt minecraft - mehr ist da halt einfach nicht drin.
    seht zu das euer client gut läuft (und damit mein ich wie oben gesagt nich die dummen fps, sondern vorallem auch den netzwerkpart) und ansonsten nehmt es halt hin das manchmal was nicht ganz so läuft wie ihr es aus anderen shootern kennt die dafür gedacht sind. aber seht es auch mal so - auch euer gegner muss damit leben - und das gleicht es doch auch irgendwo aus :)

    mehr denke ich kann man da leider nicht machen als den server auf 20 tps zu bringen - es sei denn jemand hat mal kurz den kompletten(!) server-source da und kann ihn mir schicken? *g*

  • Vielen dank Speedy und schaffi :)
    Ich glaube ich hab's verstanden ;)
    Ich finde mich nun einfach damit ab denn es macht ja trotzdem riiieesen Spaß :)


    Speedy dir tun jetz sicher die Finger weh oder ? ;)

    MfG ketchupkeks

    Don't cry, say (böses Wort) you and smile !!!

  • Moin

    erst mal Danke an Speedy für diese ausführliche Beschreibung. Aber wie Speedy schon sagt ist minecraft eigentlich nicht sogut für PvP geeignet aber ich hab das beste aus dem Server geholt was ging mehr ist da einfach nicht drin darum muß mal halt/leider mit so kleinen Probleme leben aber ich denke der Spielspaß steht da an erster stelle und ich denke das hat es allen gemacht. Auch wenn da mal eine Runde bei war die nicht so gelaufen ist wie man sich das vorgestellt hat. Aber es kommt ja am nächsten Wochenende schon wieder eine neue runde dann geht es auf ein neues los :P


    MfG

    Eiki

  • ich kann eure erklärungen ja alle nachvollziehen aber heute war es extrem und irgendwie bin ich doch der einzige :(
    und im freien pvp, pvpdorf und so is das ja auch nich warum dann hier ?
    und ausserdem wen ich jemanden die ganze zeit schlage und es passiert nix is das ja cuh net so das das einfach 10 sekunden später passiert oder so ;(

    finde ich echt schade eurer trauriger Ketchupkeks ;D

    Don't cry, say (böses Wort) you and smile !!!

  • Bei mir wars leider auch manchmal so, dass ich mehrfach auf jemand eingeschlagen hab und er keinen Schaden bekommen hat.. Keine Ahnung woran das liegt :(

    Wenige sind imstande, von den Vorurteilen der Umgebung abweichende Meinungen gelassen auszusprechen; die Meisten sind sogar unfähig, überhaupt zu solchen Meinungen zu gelangen. (Albert Einstein)

    Niemand ist mehr Sklave, als der sich für frei hält, ohne es zu sein. (Johann Wolfgang von Goethe)

    Replace Fear of The Unknown With Curiosity