Problem mit Konzept: Adventure

Übersicht Sonstiges Smalltalk

Neue Antwort erstellen

Stephan87

Betreff: Problem mit Konzept: Adventure

BeitragMi, Jul 11, 2007 20:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo!
Ich hoffe hier ist der ein oder andere unter euch, der mir bei meinem folgenden Problem behilflich sein kann. Ich arbeite gerade an einem Konzept für ein Multimedia-Textadventure. Das Spiel läuft hauptsächlich über Text ab (wie bei alten Textadventures), die Atmosphäre soll jedoch mit multimedialen Elementen (Sound, Musik, Bilder) unterstrichen werden. Gesteuert werden soll über die Maus und eben nicht per Befehlseingabe.

So, nun zu meinem Konzept, Problem:
Ich habe mir vorgestellt, das Spiel in Szenen einzuteilen. Szenen sind bestimmte Orte (vor dem Haus, im Wohnzimmer) oder einfach Szenen im Spiel. Jede Szene ist verknüpft mit mindestens einer anderen Szene (Wohnzimmer zu Badezimmer und Küche), sodass der Spieler die Möglichkeit hat, sich durch diese Welt zu bewegen. Jeder Szene wird ein Bild und ein Musikstück zugewiesen. Dann kommen Objekte ins Spiel: Jede Szene enthält lose und feste Objekte (Baum, Apfel), die einen Namen, eine Beschreibung (wenn der Spieler das Objekt betrachtet) und ins Inventar aufgenommen werden können.

Nun gut, der Spieler kann durch die Welt laufen, Dinge anschauen und mitnehmen, aber es besteht Null Interaktion. Ich habe mir das Ganze wie folgt vorgestellt: Das, was ich oben geschrieben habe, ist das Grundgerüst. Diese wird extern aus einer Datei ausgelesen und mittels Klassen in den Speicher geladen. Um nun Leben in das Spiel einzuhauchen, wird mittels Script für jede Szene ein bestimmter Code abgefragt. Schliesslich möchte ich auch gerne Switches (boolsche Parameter) einbauen (WENN ich mit Person aus Szene 1 geredet habe, DANN darf ich Szene 2 betreten). Auch Kombinationen von Objekten wären dann möglich. Halt alles, was ausserhalb dieses Grundgerüsts existiert. Das Grundgerüst ist stabil, bleibt immer gleich, und mit dem Scriptcode liesse sich das Ganze flexibler gestalten.

Ich hoffe ihr könnte mein Problem verstehen:

Ist das Grundkonzept mit den Szenen OK? Würdet ihr das auch so machen? Sollte man vll. Grundgerüst und Scriptcode in einem Script verbauen?

Das Programmieren später macht mir nicht zu schaffen, das Grundkonzept halt Smile.

Schöne Grüße,
Stephan

SpionAtom

BeitragMi, Jul 11, 2007 20:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo!
Ich arbeite auch gerade an einem Adventure HIER

Und auch ich musste mir diese Fragen stellen. Ich bin nun soweit, die Welt in verschiedene Räume zu unterteilen, die man auch wechseln kann. Eine eigene Skriptsprache zu schreiben, darauf habe ich verzichtet. Stattdessen ist mein Script eine Function im normalen Quelltext. Das hat den Vorteil, dass man auch auf alle Variablen, die man so aus dem Spiel benötigt relativ leicht zugreifen kann. Immer wenn also etwas passiert (Gegenstand wird genommen, man bewegt sich, man schaut was an,...), wird die Scriptfunktion aufgerufen.

Desweiteren habe ich ein eindimensionales Array Trigger(100), der den Spielstand speichert. Trigger(1) = 1 bedeutet zum Beispiel, dass die Pyramide mitgenommen wurde. Jedesmal, wenn ich den Raum also lade, in dem die Pyramide ursprungs drin war, schaue ich in meinen Triggervariablen nach, ob sie noch da ist. Wenn ja, wird sie eingezeichnet und man kann nicht drüber gehen. Wenn nein, wird sie eben nicht gezeichnet und man kann über die Stelle laufen.
Jetzt brauche ich nur noch Position und Inventar sichern - und fertig ist der Spielspeicherstand!

Probleme hab ich noch bei den Dialogen. Will man diese etwas dynamisch machen (sprich der Gesprächsverlauf kann je nach Antworten variieren), so muss man schon ne Menge Arbeit in so ein Dialog investieren.

Ansonsten brauchts wohl nicht viel mehr für ein Adventure.
Auf jeden Fall freue ich mich auf deine ersten Ergebnisse! *Adventurefansei* Very Happy
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080

TheShadow

Moderator

BeitragMi, Jul 11, 2007 21:06
Antworten mit Zitat
Benutzer-Profile anzeigen
hm... ich würde kein Skript nehmen, sondern sowas wie setup-dateien. für jede Szene eine Datei...


Zitat:

name=...........
sound=..........
image=...........
link=x,y,w,h,szene
item=.........

[text]
bla bla bla
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2
 

lettorTrepuS

BeitragMi, Jul 11, 2007 21:31
Antworten mit Zitat
Benutzer-Profile anzeigen
-aus Sicherheitsgründen gelöscht- Diese Information ist mit Ihrer Sicherheitsfreigabe leider nicht erhältlich, Bürger.

Stephan87

BeitragMi, Jul 11, 2007 21:40
Antworten mit Zitat
Benutzer-Profile anzeigen
@TheShadow:

Eben das meine ich mit Grundgerüst. Aber du hast so keine Möglichkeiten Leben ins Spiel einzuhauchen, meine ich zumindest. Wie willst man denn folgendes reinbringen:

Spieler benutzt einen Gegenstand aus seinem Inventar mit einem aus seiner Umgebung. Darafhin ändern sich so manche Ressourcen, anderer Sound tritt auf, es wird ein anderes Bild gezeigt, eine Variable wird definiert (auf die später zugegriffen wird) usw usw.

Ich kann mir momentan einfach nicht vorstellen, dass komplexerer Adventures oder zumindest komplexere Rätsel nicht durch ein Skript zu lösen.

Xeres

Moderator

BeitragMi, Jul 11, 2007 22:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab zwar persönlich aufgegeben ein Andventure Tool zu schreiben (weil kompliziert ^^), aber vll. hilft es ja, wenn ihr euch funktionsfähige Systeme dieser Art anschaut - so könnt ihr einschätzen wie ihr was umsetzen wollt, woran ihr denken müsst usw. Da steckt ja nicht wenig an Überlegung drin.

Da wäre einmal der TAG Text Adventure Generator, also mehr in die Richtung die Stephan87 einschlagen wollte, und dann das Adventure Game Studio, was mehr für die Grafik der guten, alten Monkey Island artigen Spiele ausgelegt ist.

Macht was draus, ich bin gespannt Razz
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Geeecko

BeitragMi, Jul 11, 2007 23:28
Antworten mit Zitat
Benutzer-Profile anzeigen
das Problem mit dem Skript hatte ich auch immer. Wenn man ein Update hat, musste man immer die ganze Exe neu machen.
man könnte aber auch jedem objekt eine id geben. und im programm eine funktion schreiben, z.b. ObjektImInventar(ID) und dann so die ganzen Objekte abfragen. Wenn OII(1) = 1 PlaySound(Dramatisch) else playsound(nichdramatisch)

oder so ^^
....

SpionAtom

BeitragMi, Jul 11, 2007 23:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Warum macht ihr euch dann das Leben schwer und baut euch eine Skriptsprache, wenn ich doch eh Blitzbasic zur Verfügung habt. Dann ist Blitzbasic eure Skriptsprache!
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080

Jan_

Ehemaliger Admin

BeitragDo, Jul 12, 2007 8:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Spionatom, schonmal was davon gehöhrt das Hardcoding böse ist?
between angels and insects

SpionAtom

BeitragDo, Jul 12, 2007 10:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Ob ich nun eine Textdatei habe, die durch einen selbstgezimmerten Parser Befehle ausführt, oder ob ich das in einer unabhängigen Funktion mache, ist doch Latte. Nur dass ich bei der unabhängigen Funktion schon viele Befehle, Zuweisungsoperatoren, Vergleiche, etz. zur Verfügung habe.

Der Nachteil, dass man mit jeder Änderung das ganze Programm neu kompilieren muss, besteht natürlich. Und solange man keinen benutzerfreundlichen Editor für derlei Spiele schreiben will, halte ich diese Lösung des Hardcodings für legitim. Und performanter ists auch.

@Gamecreator: Wir entwicklen das SimpsonsAdventure mit dem Point&Click-DK. Ist aber schon ewig her, dass wir daran weitergeschraubt haben Confused . Es ist schwer bei so einem Projekt, bei dem das Team über ganz Deutschland verteilt ist, die Motivation aufrecht zu erhalten.
P.S. Zum Film werden wir nie fertig Embarassed
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080
 

ByteCroc

BeitragDo, Jul 12, 2007 11:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich bin gestern bei meiner SurfTour ( nicht SaufTour ) an einer Seite ( nicht Pub ) vorbeigekommen, auf jedenfall hab ich drinnen ein paar Tutorials entdeckt vielleicht bringen die dir was.

http://www.softgames.de/develo...?cid=22291
http://www.softgames.de/develo...?cid=21024
http://www.softgames.de/develo...?cid=19054

maximilian

BeitragDo, Jul 12, 2007 11:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Sucht mal nach der SCUMM Engine. Die wurde vom Monkey Island Erfinder entwickelt und wurde für quasi alle LucasArts Adventures benutzt. Ist sicher keine schlechte Idee, sich an der zu orientieren...
Variety is the spice of life. One day ignore people, next day annoy them.
 

BIG BUG

BeitragDo, Jul 12, 2007 22:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Ob Scripte sinnvoll sind, hängt von der Komplexität deines Spieles ab.

So wie Dein Vorhaben klingt, würde ich es jetzt tendentiell eher ohne Scripte versuchen.

Hier müsstest Du Dir nur ein Konzept zur Verwaltung überlegen. Habe mir da mal schnell was ausgedacht.
z.B.
user posted image

"Aktionen"
Hier wären drei Möglichkeiten oder Kombinationen denkbar:
-Message
Meldung an den Spieler

-Objektänderung
Eine Liste von Objekten, die gelöscht oder neu erstellt werden.

-Szene
Es erfolgt ein Wechsel zu einer anderen Szene

"Objekte"
Objekte enthalten dabei Informationen wie Grafik, Animation, Sound, wo platziert, ob aufnehmbar, etc.
Zusätzlich gibt es hier dann Verknüpfungen zu den "Aktionen", die an Events wie Benutzen, Benutzen mit, Betrachten, etc verknüpft werden.
Events bräuchten hierbei dann auch eine Bedingung("mit welchem Objekt wurde es benutzt?" oder "existiert Objekt blabla?" und eine Priorität.

"Status"
Man könnte zwar Statusvariablen definieren oder halt einfach Objekte als Status missbrauchen.
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final)

Neue Antwort erstellen


Übersicht Sonstiges Smalltalk

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group