|
-
Drogen stellen Firas Leben auf den Kopf. [Bild: ursorton.gif]
-
Zitat von CrimsonGhost
Gemeldet wegen Beleidigung.
-
Hier im Forum ist es zwar gerade nach aussen hin etwas still, intern ist aber immer noch einiges los.
Ich hab in letzter Zeit auch eher Basisarbeiten erledigt, die es mir nicht wirklich wert waren zu berichten, nun will ich aber doch mal wieder ein wenig Neues posten.
Mobs basieren jetzt neben Items & NPCs auch auf "Bauplänen", den Instanzen. Das verringert zum einen den Netzwerk-Traffic und zum anderen brauchen die faulen Spacerer nicht mehr 1000 Einstellungen für jedes einzelne Mobsi einstellen.
Dazu ist es möglich bei Benutzung eines Mobs ein grafisches Menü aufrufen zu lassen z.B. für Crafting oder Schlösserknacken.
In unserem Projekt werden wir Crafting und Schlösserknacken aber vorerst ganz klassisch wie in Gothic darstellen.
Der Server hat jetzt volle Kontrolle über Bewegungs-/Aktionsbefehlen der Spieler.
D.h. bevor ein Spieler losrennen, die Waffe ziehen, zuschlagen oder etwas ausrüsten möchte muss dieses erst vom Server abgesegnet werden.
Das hat zum einen Vorteile und Nachteile.
Ein Vorteil ist, dass der Server die volle Kontrolle über seine Spieler hat.
Also wenn man einen Spieler fesseln möchte, dann könnte man das auch so implementieren dass er sich nicht mehr bewegen oder nur noch hüpfen kann.
Außerdem kann man das Kampfsystem beliebig umgestalten, z.B. bestimmte Kombos erst mit bestimmten Talenten freischalten, die Kombozeitfenster ändern oder sogar neue Angriffe hinzufügen.
Dazu gehört auch das Treffer-/Schadenssystem. Man könnte z.B. verschiedene Kombos besonderen Schaden machen lassen oder Gothic 3 - Trefferberechnung mit Rundumschlägen einführen.
Unser Projekt hält sich aber erstmal an Gothic 2, mit der Ausnahme, dass man mehrere Gegner auf einmal treffen kann.
Der andere Vorteil kommt zusammen mit einem Nachteil, wobei das ganze Ansichtssache ist.
Ursprünglich (und auch bei anderen GMPs) wurden nämlich Netzwerknachrichten (z.B. ein Angriff) folgendermaßen gesendet:
Code:
Sender startet Angriff und sendet Nachricht -> Server -> andere Spieler
D.h. beim eigenen Spieler startet der Angriff sofort, während er bei anderen Spielern zeitlich versetzt startet (eigene Latenz + Latenz des anderen Spielers). Der eigene Charakter handelt also bei anderen Spielern relativ unsynchron.
Jetzt verläuft das ganze aber so:
Code:
Sender sendet Nachricht -> Server -> andere Spieler und Sender starten Angriff
D.h. bei allen Spielern startet der Angriff zeitlich versetzt (eigene Latenz + Latenz des jeweiligen Spielers). Es ist also für alle Spieler je nach Latenz synchroner.
(Wenn alle Spieler den gleichen Ping hätten, wären alle Bewegungen & Angriffe theoretisch 100% synchron bei allen Spielern).
Ich hoffe das war einigermaßen verständlich.
Das Ausrüstungssystem lässt jetzt bis zu 255 Items zu. Ob man überhaupt so viel braucht ist ne andere Frage.
Dafür könnte man jetzt aber z.B. 10 Ringe oder einen Helm ausrüsten, oder einen Dolch im Stiefel verstecken, oder Einhänder und Zweihänder gleichzeitig tragen.
Da gibt es viele Möglichkeiten für, wir werden es aber erstmal so wie in Gothic 2 gestalten.
Das war jetzt viel Text, darum kommt jetzt etwas mit Bildern.
Nämlich das Handelsmenü, welches von MadShadow bis auf ein paar kleine Bugs nun abgeschlossen wurde:
[Bild: bYXPzUnbenannt1.jpg]
Wenn man annimmt, wird der Hintergrund grün.
[Bild: AK4MztqfvsWNmr9mD8Unbenannt2.jpg]
Geändert von Showdown (18.11.2015 um 16:39 Uhr)
-
richtig gute Arbeit, das hört sich klasse an !
-
Interessant, was über den technischen Hintergrund zu lesen.
Wie ist das mit dem Handelsmenü? Links ist das, was der Gegenüber bietet, in der Mitte das Angebot von einem selbst und rechts das eigene Inventar oder wie?
-
Zitat von Askanius
Wie ist das mit dem Handelsmenü? Links ist das, was der Gegenüber bietet, in der Mitte das Angebot von einem selbst und rechts das eigene Inventar oder wie?
Genau.
-
Durch einen Tipp von Situ kann es nichtmehr passieren, dass sich NPCs bei der Benutzung von Mobs daneben positionieren, z.B. sich neben den Hocker in die Luft setzen.
Die Kollision zu statischen Objekten wird nämlich ganz einfach für den NPC ausgeschaltet während der Benutzung. Vielen Dank nochmal für die Idee.
Vorher:
Nachher:
Außerdem laufen die Arbeiten an der AI langsam an.
Scavenger, so nennen wir die großen Vögel, greift man am besten einzeln an.
[Bild: scavengers.gif]
-
Jetzt, wo man sich endlich auf Fässer setzen kann, ist das Spiel wohl fertig?!
-
Ja, was wollte man auch mehr wollen? Wir machen einen Lagerfeuer-RP-Server, bei dem sich Leute an einem Ort treffen, sich gemütlich hinsetzen und ihre Geschichten austauschen. Server fertig
-
Zitat von Showdown
.gif
Die sind aber alle zahm.
Erinnert mich irgendwie an: https://www.youtube.com/watch?v=rUe4irkvpkI&t=57
-
So, wir haben nun ein Web-Interface, mit dem man vom Browser aus mit unserem Spieleserver kommunizieren kann. Das soll später hauptsächlich die Arbeit der Spielleitung vereinfachen, indem man Admin-Kommandos eingeben und Laufzeit-Informationen abfragen kann ohne sich selber auf dem Server zu befinden. Alternativ kann man auch die Command Prompt des Spieleserverprogramms verwenden.
Aktuell habe ich bislang nur 3 Testbefehle implementiert: Spielerliste abfragen, Zeit verändern, Wetter verändern.
Wen es interessiert:
Das programmiertechnische Web-Interface ist komplett in Javascript geschrieben. Man muss jedoch Ein- und Ausgabefelder (HTML-Elemente) beim Initialisieren zuweisen. Auf Serverseite wird bei Serverstart jetzt immer ein Websocket-Server mit initialisiert. Client und Server kommunizieren also über die relativ neue Websocket-Technologie. Die ist zum Glück schon alt genug, um von so ziemlich allen modernen Browsern unterstützt zu werden :P
Hier ein Bild vom letzten Testlauf:
[Bild: WebInterface_preview.jpg]
Geändert von Mutton (09.01.2016 um 22:18 Uhr)
-
Zitat von Showdown
Durch einen Tipp von Situ kann es nichtmehr passieren, dass sich NPCs bei der Benutzung von Mobs daneben positionieren, z.B. sich neben den Hocker in die Luft setzen.
Die Kollision zu statischen Objekten wird nämlich ganz einfach für den NPC ausgeschaltet während der Benutzung. Vielen Dank nochmal für die Idee.
Vorher:
Nachher:
Wie genau habt ihr das gemacht?
Code und paar Erklärungen wären nett.
-
Es wird bestimmt die Vob-Eigenschaft cdDyn auf false gesetzt (im GUC also etwas wie Vob.cdDyn = false;). Damit gibt es keine dynamische Kollisionsberechnung für das Vob des Spielercharacters/Npcs mehr. Man kann somit bedenkenlos die Animation ohne mit dem Mob (z.B. der Bank) zu kollidieren und davon "weggedrückt" zu werden abspielen.
-
Auch hier nochmal zum leichteren Wiederfinden:
[Bild: WkOfCRS.gif]
[Bild: ty9RJR0.gif]
-
Abenteurer
Zitat von Mutton
So, wir haben nun ein Web-Interface, mit dem man vom Browser aus mit unserem Spieleserver kommunizieren kann. Das soll später hauptsächlich die Arbeit der Spielleitung vereinfachen, indem man Admin-Kommandos eingeben und Laufzeit-Informationen abfragen kann ohne sich selber auf dem Server zu befinden. Alternativ kann man auch die Command Prompt des Spieleserverprogramms verwenden.
das ist das was man braucht.wirklich gut nachgedacht und umgesetzt bravo.
-
Es gibt jetzt einen Parser der Animationen sowie Daedalus-Instanzen (im Moment nur Items, NPCs werden aber auch möglich sein) einlesen kann.
[Bild: 4Unbenannt.jpg]
-
Die Barriere lebt
-
-
Wirklich schön, wie man über euer bzw. dein (Showdown) Entwicklertagebuch nachvollziehen kann, wie ihr den G:UC Schritt für Schritt weiterentwickelt. Eine feine Sache und eine wirklich gute Arbeit, die ihr da macht.
-
Und sie kamen alle... sogar die Drachen.
Warum habt ihr in dem Bild Orange zensiert bzw. schwarz überdeckt? Möchte er sich nicht mehr öffentlich zeigen?
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
|
|