Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

DasBlub

Alter Hase

Beiträge: 802

Wohnort: Schweiz

Beruf: Programmierer

  • Private Nachricht senden

11

03.12.2008, 17:17

Re: Dialogsystem für NPCs

Zitat von »"Fred"«

Zitat von »"Draculark"«

xml sagt mir relativ wenig (habs mal bei java an der uni gebraucht für ne datenbankverwaltung, aber das war mehr copy&paste als eigenerarbeitung), aber werde mal schauen.

Das ist eigentlich recht simplel. Die Syntax erinnert an HTML. Du erstellt lauter Tags. Die Namen der Tags kannst du selbst festlegen und dann auslesen. Du musst also keinen wirklich großen Lernaufwand betreiben, weil du dir die XML-Files an dein Spiel anpasst und nicht andersrum.


html (spätestens ab der xhtml 1.0) IST xml, und zwar ein xml mit einem doctype, den jeder webbrowser versteht, sogar ohne xslt ;)


also, entweder mit xml oder mit einer datenbank (falls es sich um eine client-server anwendung handelt und du die npc texte auf dem server hast, dann z.B. mysql, fals es beim client ist dann z.B. sqlite (braucht keinen server)) ;)

xardias

Community-Fossil

Beiträge: 2 731

Wohnort: Santa Clara, CA

Beruf: Software Engineer

  • Private Nachricht senden

12

03.12.2008, 17:46

Re: Dialogsystem für NPCs

Zitat von »"DasBlub"«

html (spätestens ab der xhtml 1.0) IST xml, und zwar ein xml mit einem doctype, den jeder webbrowser versteht, sogar ohne xslt ;)

Ich muss mal klugscheissen ;) streich das "spätestens" raus. HTML (ohne X) ist SGML, kein XML.
Wobei HTML nicht ausgestorben ist und parallel zu XHTML weiter entwickelt wird.

Zum Thema:
XML verarbeiten ist eigentlich ziemlich easy. Du könntest z.B. folgende Bibliothek benutzen: http://ticpp.googlecode.com/svn/docs/ticpp.html

Ich denke auch, dass es kein Problem darstellen sollte die Texte im Arbeitsspeicher zu halten. Wenn du später wirklich so viele Texte in deinem Spiel hast werden die Personen sicher nicht alle gleichzeitig in Sprechreichweite sein. Also kannst du die Dateien für die Personen einzeln laden sobald es nötig ist (z.B. beim laden der Map). L

13

03.12.2008, 18:13

Zitat von »"Jonathan_Klein"«

Du solltest dir ersteinmal in Ruhe Gedanken machen, wie Gespräche funktionieren sollen. Ob du so komplexe haben willst, wie meinetwegen in Gothic, oder sehr simple wie in Diablo 2, oder eine Mischform und so weiter.
Wenn du das genau weißt, überlegst du dir, wie du es am besten Implementieren könntest, und wenn das feststeht, wie das entsprechende Dateiformat aussehen sollte.


ich bin nicht größenwahnsinnig, also wow style wirds wohl nicht haben ;)

hab da schon seit jahren ne kleine rpg story (druidenthema) in meinem schreibtisch liegen (so 10 din A4 seiten von so nem block. nicht viel, aber für den anfang genügts mal:D) und da wollte ich eben in den winterferien mal wieder bischen reinstarten in das ganze. da das grafikerzeugen/sound abspielen und input abfragen nicht mehr so ein riesenproblem mittlerweile darstellt, gehts jetzt eben schön langsam schon an etwas "vertiefenderes". will eben mal ne winzige landschaft mit nem haus, 2 npcs, 3 monstern und dem hauptheld erzeugen.

besonders solls eben nicht sein. man klickt den npc an und je nachdem wie der spielfortschritt ist, soll der dann eben nen text ausgeben.


danke jedenfalls für die zahlreichen antworten/hinweise. genügt mir vorerst mal vollkommen;) und werd mich da bei zeiten dann reinlesen.


@mit skript behaften:
meinte damit, dass wenn man den npc z.b. anklickt, sein "dialogskript" gestartet wird und abgearbeitet wird.

14

03.12.2008, 20:19

Naja, du kannst natürlich es so machen, dass ein NPC immer den selben Text ausgibt. In bestimmten Situationen im Spiel veränderst du diesen Text dann eben.
Anders sieht es halt aus, wenn der NPC was sagt und du 3-4 Antwortmöglichkeiten hast. Und du dann so Situationen hast, wo man zu einem Thema mehrere Dinge fragen kann, bestimmte Fragen nur einmal, andere aber immer Stellen kann, bei bestimmten Sätzen Gegenstände abgibt oder erhält und so weiter. Das wird dann schon durchaus komplex und sollte am besten gut geplant sein.

Son Mittelding wäre wohl so, wie es bei Diablo ist, man kann mehrere Dinge sagen, der NPC antwortet immer gleich, aber es gibt kein Gesprächsverlauf im eigentlichen Sinne.
Lieber dumm fragen, als dumm bleiben!

Werbeanzeige