Geschrieben um 13:54 am 31.08.2005 | Zitat | Editieren | Löschen | |
Mitglied Dr Gumby Beiträge: 181 | ChristianB:
schöne Vorstellung, aber ich schweife ab... :-) Zurück zum Thema: ChristianB:
Ok, verstehe, das würde aber bedeuten, dass man nicht die Aktion als solche zeitlich bewerten würde, sondern doch auch wieder das betreffende Objekt (wie in Florians Beipiel). Und beim zweiten Mal könnte es ja auch länger dauern als beim ersten Mal (wenn z.B. beim zweiten Anblick auf das Foto der Ex die Depression so richtig zuschlägt), es ist ja nicht automatisch kürzer. Dann müßte jedes Objekt wieder einzeln in die Hand genommen werden. Ich würde das nicht programmieren wollen (jedenfalls nicht für ein gesamtes Spiel, für einzelne Szenen ginge das sicherlich) Gruß Christof |
Geschrieben um 17:12 am 31.08.2005 | Zitat | Editieren | Löschen | |
Mitglied Retired Gumby Beiträge: 1062 | Florian:
Genau das wollte ich ursprünglich sagen. Und um dem Vergleichsweise gerecht zu werden, hatte ich dann die Idee mit dem Kurzweil-Index, der dem Autor die Möglichkeit geben könnte, nicht nur zwischen zwei Extremen spannend/langweilig zu unterscheiden, sondern Abstufungen zu ermöglichen. Von gaaaanz öde bis super-interessant. Wobei ich es nicht so realistisch fände, wenn bei gaaaanz öde die Zeit stehen bliebe und das tut sie in 9to5, wenn man z.B. wartet. Klingt nach Arbeit, weil für jedes relevante Objekt ein Index definiert werden müsste. Aber in T.A.G. hat Martin etwas Ähnliches ja auch schon mit Volumen und Gewicht (Vol und Gew), die für bestimmte Objekte festgelegt werden können, vorgesehen. |
Geschrieben um 17:40 am 31.08.2005 | Zitat | Editieren | Löschen | |
Mitglied Dr Gumby Beiträge: 181 | Ich habe mal an der Zeit gearbeitet, hierfür zwei Routinen erstellt:
|
Geschrieben um 19:50 am 31.08.2005 | Zitat | Editieren | Löschen | |
Mitglied Dr Gumby Beiträge: 181 | Florian:
Bei all diesen Situationen würde mir als Spieler eine gute Beschreibung genügen, den Streß mache ich mir dann schon selbst... Gruß Christof |
Geschrieben um 12:04 am 01.09.2005 | Zitat | Editieren | Löschen | |
Mitglied Dr Gumby Beiträge: 275 | Oder in einer Detektivgeschichte, 30er Jahre. Du (Philip Marlowe) willst ein Büro durchsuchen, der Typ, der da drin sitzt, steht auf und geht zur Toilette. Nun kannst du hinein und hast begrenzt Zeit, dich dort umzusehen. Elegant fände ich hier, ein "Sterben" des Spielers zu vermeiden. Will man das schaffen, führt das allerdings zu vier möglichen Enden: 1.) Du findest, was du suchst und verlässt das Büro rechtzeitig. 2.) Du findest, was du suchst, bist aber noch im Büro, wenn der Typ zurückkommt. Jetzt solltest du dich irgendwie herausreden. 3.) Du findest es nicht, verschwindest aber entweder rechtzeitig ... 4.) ... oder schaffst auch das nicht. Das wär schon große Kunst, wenn das Spiel alle vier Varianten sinnvoll innerhalb der Story abfangen könnte. (Überhaupt der große Haken bei der Verwendung von Zeitlimits - dass in der Regel das Spiel beendet ist, wenn man das Limit reißt. Muss das so? Reicht es nicht manchmal, wenn, wie in diesem Beispiel, spätere Rätsel schwerer werden, weil dem Spieler bestimmte Hinweise fehlen?) ChristianB:
Stimmt. Interessante Umkehrung der üblichen Timerverwendung in Spielen überhaupt. Variante 2 des zeitabhängigen Rätselns. Bei diesem Beispiel ist der Kurzweil-Index auch eine super Idee. Warum? Weil bei Florians Beispiel der Timer an sich schon das ganze Rätsel ist. Üblicherweise ist er ja nur eine Zeitbegrenzung für ein ganz anderes Rätsel. Bombe entschärfen, Büro durchsuchen, Eisdecke aufbrechen. Variante 3 wären die Rätsel, bei denen man nicht innerhalb eines Zeitlimits, sondern exakt zu einer bestimmten Zeit Handlungen vornehmen muss. Punkt zwölf die Glocke läuten, oder so. Idee einer Szene, bei der Variante 2 und 3 kombiniert werden: Deine Kumpels wollen in eine Bank einbrechen und du musst draußen Schmiere stehen. Prinzipiell ein langweiliger Job und du hast genügend Zeit, um dir Plakate und Litfaßsäulen anzuschauen, Zeitung zu lesen (nutzen wir die freie Zeit, um dem Spieler Hintergrundwissen unterzujubeln) oder einfach Däumchen zu drehen. Wenn ein Wachmann oder gar die Polizei aufkreuzt, musst du allerdings umgehend deine Kumpels warnen. Warum das Variante 3 ist? Weil deine Leute über falschen Alarm sicher nicht erfreut wären. ChristianB:
Geht es. Aber es geht auch darum, das sinnvoll einzusetzen. So, dass der Spieler etwas davon hat. Die Simulation der Länge einzelner Züge ist bei Florians Beispiel eine Spitzenidee, vielleicht auch bei dem Schmierestehen vor der Bank möglich. Bei der Bürodurchsuchung oder bei Christofs Beispielen einen Beitrag über mir empfände ich dieses Verfahren als Spieler allerdings als überdimensioniert. Für die meisten Szenen mit Zeitlimit wäre eine pauschale Obergrenze an Zügen, ohne sich um die exakte Dauer jedes einzelnen Zugs zu kümmern, ausreichend. Denke ich. Darauf wollte ich hinaus: 1) Was technisch die optimale Lösung ist, hängt extrem von der jeweiligen Szene ab. 2) Die Erzeugung des entsprechenden Zeitgefühls beim Spieler, die wichtigste Sache also an zeitabhängigen Szenen, hängt überwiegend am Text, nicht an der Technik. Das gälte auch für den Kurzweil-Index. Es ist sicher nicht einfach, das zu implementieren, klar. Ob er letztendlich funktioniert, hängt aber davon ab, ob du die entsprechenden zeitlichen Differenzen für die unterschiedlichen Züge dem Spieler tatsächlich im Text vermitteln kannst. Und nun könnt ihr mit der technischen Diskussion fortfahren. Florian:
Spannung - klar. Was genau meinst du mit "Struktur"? Dass es gut für den Spielfluß ist? Dass es eine saubere Einteilung des Spiels in Szenen geradezu erzwingt? Simulation - ja, ist meiner Meinung nach aber eher das "wie mache ich das" als das "wozu mache ich das". |
Geschrieben um 10:34 am 02.09.2005 | Zitat | Editieren | Löschen | |
Gast | ChrisW:
Ja, die Einteilung des Spiels, wie in Anchorhead. Ein Beispiel: Mein Krimi-Spiel umfasst einen Vormittag, Nachmittag und Abend. Sobald vormittags der Tatort untersucht und der Hauptzeuge befragt sind, bekommt der Assistent des Spieler-Kommissars Hunger, und es ist Zeit, ein Restaurant oder eine Pommesbude aufzusuchen. Am Nachmittag wird dann weiter ermittelt: Erst jetzt öffnet der Nachtwächter zur Befragung seine Tür, da er vormittags noch geschlafen hat, und erst nachmittags kann man in der Gerichtsmedizin den Befund abholen. Der wichtigste Zeuge aber ist beruflich unterwegs und wird erst abends angetroffen. (Eine Reihe von Dingen kann man aber zu einem beliebigen Zeitpunkt erledigen, bspw. Recherche der Akten.) In dem Fall tritt meiner Ansicht nach die Zeit an die Stelle von Gegenständen, um das Spiel zu strukturieren: Normalerweise benötigt man einen Schlüssel für die Tür oder ein Goldstück für den Troll, um neue Bereiche der Karte zu öffnen, hier öffnen sie sich nur zu bestimmten Zeitpunkten. Der Rätselcharakter ist nicht mehr, an bestimmte Gegenstände heranzukommen, sondern, zur richtigen Zeit am richtigen Ort zu sein (wozu das Spiel natürlich Hinweise geben sollte, wie bei jedem guten Rätsel). ChrisW:
Ich möchte mich da korrigieren: Simulation ist eigentlich auch genau eine Struktur wie eben beschrieben. Ist ja egal, ob man den Zeugen nur nachmittags erreicht oder Oberst von Gatow um 11:13 am Gartenhäuschen abpassen muss - das Prinzip ist das gleiche. Die Unterscheidung "wie" und "wozu" trifft es schon, aber ich würde betonen, dass das "wie" keine reine Äußerlichkeit ist. Anchorhead spielt sich anders als Deadline (ich würde sagen großzügiger, problemloser, weil man nicht so genau sein muss), während der alte Mann in den Höhlen von Karn zeitunabhängig herumwandert, und die Schätze bleiben, wo sie sind. Viele Grüße, Florian |
Geschrieben um 16:55 am 05.09.2005 | Zitat | Editieren | Löschen | |
Mitglied Dr Gumby Beiträge: 181 | Kris:
Hierzu ist mir noch eine wichtige Sache eingefallen: Wenn man zeitabhängige Rätsel implementiert hat, die einen engen Zeitrahmen abstecken mit Timer-Funktion, dann wird der Timer trotzdem weiterlaufen, auch wenn mit der Zeit in der Statuszeile nichts passiert. Das verwirrt natürlich den Spieler. Man müßte dann den Timer unter Berücksichtigung der Spiel-Echtzeit manipulieren. Gruß Christof |
Geschrieben um 21:36 am 05.09.2005 | Zitat | Editieren | Löschen | |
Mitglied Dr Gumby Beiträge: 275 | Kris:
Mit anderen Worten: Wenn man denn den Timer in der Statusanzeige will, muss die kleinste angezeigt Zeiteinheit auch die kleinste simulierte Zeiteinheit sein? |
Geschrieben um 22:57 am 05.09.2005 | Zitat | Editieren | Löschen | |
Mitglied Dr Gumby Beiträge: 181 | ChrisW:
Ich denke ja, sonst verwirrt es den Spieler nur. Ich dachte da an einen Trick: Wenn man den Timer in Sekunden Startet, also sagen wir 90 für 1 1/2 Minuten, dann würde dem Timer pro Zug ja eine Sekunde abgezogen. Die restlichen Sekunden müßte man dann anhand der Aktion (z.B. etwas aufheben = 10 Sekunden) noch abziehen (Die Formel wäre dann: Timer = Timer - (Aktionszeit -1). Das funktioniert momentan nur in meinem Kopf, ich werde es mal ausprobieren und berichten, kann aber ein paar Tage dauern. Grüße Christof |
Geschrieben um 09:22 am 06.09.2005 | Zitat | Editieren | Löschen | |
Mitglied Dr Gumby Beiträge: 181 | Kris:
... so, ging doch schneller als erwartet, ich bitte aber wieder um Entschuldigung, dass ich im TAG-Forum mit Inform aufwarte: Es wird noch eine Global actime eingeführt. In der weiter oben erwähnten Funktion Seconds wird dieser die Sekunden einer Aktion zugeordnet:
|
Geschrieben um 14:43 am 06.09.2005 | Zitat | Editieren | Löschen | |
Mitglied Dr Gumby Beiträge: 275 |
Entspricht sec = sec%60; Mit dem Prozentzeichen kriegt man jeweils den Rest einer Division durch den angegebenen Wert. Das Objekt würde ich ausschließlich mit einem Daemon ausstatten. Der wird auch jeden Zug einmal aufgerufen, dort kannst du die vergangene Zeit in Sekunden einfach so einer lokalen Variable des jeweiligen Objekts abziehen, für die zusätzliche Verwendung eines Timers gibts in deinem Beispiel eigentlich keinen Grund. Zitat:
Unsauber wirkt es deshalb, weil du die Zeit gleich zweimal simulierst: Per Daemon und per Timer. Zitat:
ChrisW:
Das meinte ich eigentlich nicht. Die jeweils vergangene Zeit muss nicht zwingend mit den Spielzügen zusammenhängen. Was du in der Statusleiste anzeigst, hat mit den Spielzügen ebenfalls erstmal nichts zu tun. Wenn du allerdings in der Statusleiste eine Zeitanzeige implementierst, dann sollte ein Zug, der (im Gegensatz zu Metabefehlen, zum Beispiel) Zeit verbraucht auch eine Änderung in der Statuszeile bewirken. Damit der Spieler Züge, die Zeit verbrauchen unterscheiden kann von Zügen, die ihn keine Zeit gekostet haben. Eine Aktion ist und bleibt ein Spielzug. Fertig. Daran würde ich auch nicht drehen. |
Geschrieben um 19:24 am 06.09.2005 | Zitat | Editieren | Löschen | |
Mitglied Dr Gumby Beiträge: 181 | ChrisW:
Danke, wieder was gelernt :-) ChrisW:
Die lokale Variable behält ihren Wert doch aber nur für die Lebensdauer der Funktion (oder doch nicht?) . D.h. bei jedem Aufruf vom Daemon würde sie neu initialisiert werden. Den Timer braucht man allerdings nicht starten, könnte aber die Properties time_left (um den übrige Zeit zu speichern) und time_out (um die auszuführende Aktion abzulegen, wobei man das auch im Daemon selbst ablegen könnte) verwenden, um sie vom Daemon aus anzusprechen. Dann spart man sich auch das Abziehen des einen Zuges der dem Timer abgezogen wird. Da habe ich um zu viele Ecken gedacht. Gruß Christof |
Geschrieben um 22:57 am 06.09.2005 | Zitat | Editieren | Löschen | |
Mitglied Dr Gumby Beiträge: 275 | Ja, ich meinte schon sowas wie time_left und time_out. |