Dummy

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • L00P schrieb:

      Es muss doch i-wie möglich sein per Code einen Dummy zu erstellen, der nicht als Slot gezählt wird. Gibt es da nicht eine Funktion wie: addSlot();
      Also bei Mineraft gehts ja auch..
      Ich will jetzt nicht MC mit TW vergleichen, aber sind beides Spiele mit Slots..
      Ein Dummy ist nunmal kein NPC sondern ein vom Server simulierter Spieler.

      Man könnte natürlich ein NPC feature für Teeworlds programmieren. Jedoch müsste der Client auch verändert werden.
    • Warum sollte es nicht möglich sein? Zutreffende Argumente dagegen nennt ihr hier ja nicht wirklich.

      Also die Frage war ob es überhaupt möglich ist einen Dummy vom Server erstellen zulassen der keinen Slot in anspruch nimmt.
      Dann machen wir doch mal eine kleine Machbarkeitsstudie ;)

      Teeworlds benutzt das Server-Client Prinzip, das bedeutet alle Kommunikationen laufen über den Server.
      Also woher soll der Client wissen welche/wie viele Spieler auf dem Server registriert sind? Richtig sie können diese Informationen nur von dem Server bekommen. (Sprich wir brauchen hier auch keinerlei Client modifikationen, ist ja nicht so das sich die Clients untereinander unterhalten würden. )
      Warum sollte es also nicht möglich sein einen Server der Art zu modifizieren der einen Dummy erstellt diesen aber nicht als Spieler auf dem Server registriert? Sicherlich reden wir hier von einer Dummy implimentierung, wobei der Server den Dummy seperat von Spieler-Objekten behandelt. Da das hier aber nur um die Machbarkeit geht und nicht über die komplexität, effizienz oder wie sinnvoll ein solcher Server wäre, will ich hier auch nicht weiter drauf eingehen.

      Klar habt ihr recht, die naive implimentierung würde einfach ein weiteres Spieler-Objekt erstellen und diesen als Dummy ausgeben. Dabei würde der Dummy sich wie ein Spieler verhalten bzw. der Server sieht ihn als solchen und wird somit auch registriert. Aber es war ja nicht die rede davon wie weit der Server modifiziert werden soll ;)
    • Jeder Client bekommt beim betreten des Servers eine ID zugewiesen. Da die maximale Anzahl an Spielern bei 16 liegt kann die ID nur von 0 - 15 gehen. Im Clienten ist jeder Tee an eine ID gebunden und somit auch an den jeweiligen Spieler. Das heißt wenn der Spieler nicht existiert, kann der Tee auch nicht dargestellt werden. Und da der Client nur die IDs von 0 - 15 bearbeitet, kann man einem Spieler nicht die ID 16 oder höher geben. Somit kann man nicht mehr als 16 Tees darstellen.

      schoho schrieb:

      Aber es war ja nicht die rede davon wie weit der Server modifiziert werden soll ;)
      Man kann natürlich dafür sorgen, dass der Server dem Clienten nur Spieler untergaukelt, die sich in der nähe befinden. So könnte man das Spielerlimit umgehen. Nur können dann nicht mehr als 16 Spieler auf eine Stelle sein.
    • Danke east das du das Problem mit der Beschränktheit der Clients noch mal ausführlich beschrieben hast, das habe ich übersehen.

      east schrieb:

      Man kann natürlich dafür sorgen, dass der Server dem Clienten nur Spieler untergaukelt, die sich in der nähe befinden. So könnte man das Spielerlimit umgehen. Nur können dann nicht mehr als 16 Spieler auf eine Stelle sein.
      Eine interessanter Vorschlag, allerdings wäre es bestimmt nicht im Sinne des Spielers wenn plötzlich andere Spieler verschwinden.
      Eine andere Lösung würde mir allerdings jetzt auch nicht einfallen.

      Nun müsste man wohl näheres über die gewünschte Modifikation bzw. das Spielprinzip wissen. Evtl. wird ja kein zusammenspiel mit allen 16 Spielern inklusive Dummys gebraucht.

      Wenn man die Anzahl der Spieler/Dummys beschränken darf, dann könnte man sowas in der Art wie Teams machen, wo jeder Spieler nur seine Teamkollegen sieht. Spieler und Dummys könnten dann gezielt für einen Spieler ein/ausgeblendet werden und so zB. bei verwendung von einem Dummy ein Team aus 15 Spielern bilden. Der Vorteil hierbei liegt, dass jeder Dummy in jedem Team immer nur einen Platz belegt. So können bis zu 16 Teams gebildet werden mit je einem Dummy. (Sogar noch mehr Dummys wenn das Team nicht mit vollen 15 Spielern belegt ist.)

      Wäre eben die Frage was sich der Themenersteller vorgestellt hat, evtl. könnte sich dieser hier noch einmal äußern.
    • Noch zu East. Es stimmt, dass jedem SPIELER eine ID zugewiesen wird. Aber ein Dummy, der nichts macht, arum solte der eine ID bekommen..?
      Es müsste doch i-wie möglich sein, diesen Dummy zu dem Client zu zeigen, ohne den auf den Master-Server regestrieren zulassen..
      Mir mkam da nur eine Idee, ähnlich wie Nodes, halt nur ohne extra Client, wo man einen Dummy mit dem Hammer schlagen muss und die Laser-Wall hochfährt..
      Hört sich lächerlich an, ist aber besser als den Hammer nehmen, 2 Punkte setzen fertig und Wall steht..
      Ach ja. Wenn mir schon dabei sind. Warum ist es nicht möglich die Walls (Laser-Walls) nicht wie richtige Wände darzustellen, sprich wenn man gegen rennt, dann stoppt er sofort und wackelt nicht so herum, auch wenn das nur der eigene Spieler sieht?
    • Alter loop halt die Fresse wenn du mit mir redest!
      Jeder wirklich jeder Spieler hat eine ClientID. Diese gehen von 0-15 und nicht weiter!!!! Der Client hat Akten mit vielen infos über einen Client, er hat aber nur 16 Akten also kann er nur 16 Spieler darstellen, mehr nicht!
      Und der Client berechnet die ganze Welt und deine Bewegung, was als nächstes passieren wird etc. Er kennt aber nur Vanilla. Wenn du zu deinem Server neu Sachen hinzufügst kann der Client das doch nicht wissen?! Und nein man kann ihm auch nicht sagen das auf einmal da eine Wand ist. Man müsste ihm eine neue Map senden.
      Außerdem seit wann werden Spieler beim Master registriert? Der Master hat nur eine IP-Addressen-Liste aller Server die sich bei ihm registrieren und sich auch regelmäßig melden mit: Hallo, ich bin noch da :D
      Und wenn ein Spieler den refresh Knopf im Serverbrowser drückt dann sendet der Masterserver alle IP-Addressen von den registrierten Servern.
      Danach fragt der Client alle Server einzeln nach Name, Spieler, Gametype, Map, Scores, usw....
    • Auch wenn das Topic schon tot ist muss ich noch ein bisschen was klar stellen. Das was LooP möchte ist möglich aber dazu braucht man einen gemoddeten Client der mehr als 16 Spieler unterstützt. Ein gutes Beispiel ist da ein Test den ein paar coder auf 0.5.2 gemacht haben. Dort wurde ein Server mit mehr als 16 Spielern gemacht und ein extra Client dafür. Soweit so gut. Alle die den Client hatten konnten wie gewohnt spielen. Der standart client crashte jedoch beim versuch mehr als 16 Spieler darzustellen. Und das war noch nicht alles... Wenn mehr als 16 Spieler auf dem Server waren sind ALLLE Clients die die infos von diesem Server abgefragt haben, was beim laden der Serverliste passiert auch gecrasht. In 0.6.0 wurde hier einiges geändert und gefixt sodass soetwas nicht mehr alle Clients die den Server suchen crasht aber dennoch alle Client die sich Verbinden zum crashen bringt. Also ganz wichtig bei solchen veränderungen ist, dass andere nicht benachteiligt werden. Also würde ich mal dazu sagen: Wer es nicht selber schafft hat auch nicht das KnowHow um andere zu Schützen!!