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

1

27.01.2014, 10:45

InGame-Events

Hi, ich habe ein 2D Grid (Tile-based) mit Terrain und Objekten. Was mit fehlt sich InGame-Events im Sinne:
  • Teleport (von einer Map zur anderen)
  • Loot (an Kisten etc.)
  • Dialoge
  • usw.

Bisher habe ich hardcoded Teleports drinne - funktioniert ganz gut. Allerdings ist hardcoded bezüglich Erweiterbarkeit etwas bescheiden. Ich habe überlegt ein MapEvent-Interface (mit trigger-Methode) zu verwenden und Event-Klassen zu schreiben, die das Interface implementieren. Da ich jedoch mit einem Auge schon in die Zukunft gucke frage ich mich, wie ich das möglichst dynamisch mache... Eine Idee wäre, die Event-Instanzen in Dateien auszulagern und beim Laden der Map zu verarbeiten. Das klappt bei Teleports und Loots sicher ganz gut - bei Dialogen stelle ich mir das ziemlich frickelig vor. Ich hatte auch zwecks Einbindung einer Scriptsprache überlegt (btw arbeite ich mit C++) - da habe ich allerdings keinerlei Erfahrungen, so dass mir der Überblick diesbezüglich fehlt.

Wie würdet ihr das lösen? Unterm Strich will ich die Maps von einem Zufallsgenerator erstellen und die Events drauf platzieren lassen.

LG Glocke

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

2

27.01.2014, 13:30

Wenn du die Map zufallsgenerieren lässt musst du nur den Seed speichern und alles was sich nach der Erstellung geändert hat.
Hier haben wir die Umsetzung eines Eventmanagers besprochen: Code Design Problem

Ich würde verschiedene Arten von Triggern mit einem gemeinsamen Interface implementieren. Den Triggern gibst du die Events, die sie auszulösen haben.

Wie sollen die Dialoge denn aussehen? Wie willst du eine Story in eine zufallsgenerierte Map einbauen? Stellst du dir das so wie bei Diablo2 vor?
Wenn ja sehe ich da kein großes Problem.

Eine Scriptsprache verbessert die "Erweiterbarkeit" im klassischen Sinne überhaupt nicht. Der Aufwand für die Nutzung einer Scriptsprache wiegt in meinen Augen nicht unbedingt seinen nutzen auf, wenn das Spiel nicht unbedingt Modding unterstützen soll und man in einem klein Team arbeitet. Du brauchst in erster Linie ein gutes und dynamisches Design.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

3

27.01.2014, 14:33

Ich würde verschiedene Arten von Triggern mit einem gemeinsamen Interface implementieren. Den Triggern gibst du die Events, die sie auszulösen haben.


Okay, das geht in die Richtung die ich oben versucht hatte zu beschreiben... gut :)

Wie sollen die Dialoge denn aussehen? Wie willst du eine Story in eine zufallsgenerierte Map einbauen? Stellst du dir das so wie bei Diablo2 vor?
Wenn ja sehe ich da kein großes Problem.


Hmm, irgendwie frage ich mich gerade welche Art von Dialogen ich überhaupt brauche :D Mein Ziel ist (zumindest fürs erste) ein storyarmer, actionlastigerer DungeonCrawler. Wenn der dann läuft wollte ich mir nen Grafiker, nen "Sound-Menschen" und vllt. noch einen Storywriter an Bort holen. Dabei möchte ich für die möglichst gut vorgearbeitet haben. Für Grafik und Sound habe ich da bisher 'nen ganz gutes Konzept.

Du brauchst in erster Linie ein gutes und dynamisches Design.


Und genau deswegen bin ich hier :) Ich denke der Ansatz mit dem Trigger-Interface ist schon ein guter Schritt. Gerade wegen dem Stichwort dynamisches Design überlege ich noch, was ich (auch langfristig) brauche .. vielleicht sollte ich da nochmal in mich gehen. Ein zu eng geplantes (und damit afaik undynamisches, also zu statisches) Design ist mir da vermutlich mehr eine Fußfessel ...

LG Glocke

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

4

27.01.2014, 14:46

Versuch nicht zu weit im Voraus zu planen sonst blockierst du dich nur selbst. Unser Verstand ist leider nicht in der Lage so viele Informationen unter einen Hut zu bringen. Sogar Menschen mit extremen Inselbegabung kommen mit einer solchen Komplexität irgendwann nicht zurecht. Man vergisst garantiert mindestens ein kleines Detail und wenn das passiert kann man häufig einen großen Teil der Planung über den haufen geworfen.
Schonmal was von Agiler Softwareentwicklung gehört?
Damit kann man ganze Bücher füllen aber das wohl wichtigste Prinzip ist, dass man seine Features priorisiert und bei deren Implementierung auf Erweiterbarkeit achtet. Dann wird die Summe des Codes auch möglichst erweiterbar sein.
Hier ein "wenig" Lektüre dazu:
http://openbook.galileocomputing.de/oop/index.htm#_top
http://www.amazon.de/Refactoring-Improvi…rds=refactoring
http://www.amazon.de/Scrum-Agiles-Projek…&keywords=scrum
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

5

27.01.2014, 17:06

Schonmal was von Agiler Softwareentwicklung gehört?


Dazu gehört u.A. das sog. "extreme programming" oder? Der Begriff ist mir letztes Semester in der "Software- und Systementwicklung"-Vorlesung (mit ganzen 4 Studenten xD ) untergekommen.



Danke! Vor allem in das OpenBook werde ich mal reinschauen :)

LG Glocke

/EDIT: Hab gerade mal bisschen durchgeblättert. Viele Sachen kommen mir aus Uni-Vorlesungen vertraut vor. Ich denke mit etwas mehr KISS komme ich ganz gut an mein Ziel.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Glocke« (27.01.2014, 17:27)


NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

6

27.01.2014, 18:25

Du wirst wahrscheinlich schon viel von dem gehört haben, was in dem Buch steht. Habe ich auch bevor ich es gelesen habe. Ich habe zwar nicht studiert, aber einige andere Bücher zu dem selben Thema gelesen. (darunter waren "Design Patterns", Refactoring, Effektiv C++ Programmieren etc.)
Es schadet bei dem Thema aber nicht nochmal eine andere Erklärung bzw. Sichtweise zu hören. Danach werden einem einige Zusammenhänge viel klarer.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

7

27.01.2014, 18:56

Ich lese aktuell noch an "Entwurfsmuster von Kopf bis Fuß". Danach werde ich mich vermutlich einem der verlinkten Werke widmen.

LG

Werbeanzeige

Ähnliche Themen