• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

Frage stellen: best practice?

storc

Geomaster
Bei meiner ersten Cartridge bin ich nach Earwigo-Tutorial vorgegangen:
- Zone onEnter get Input from Player
- Im GetInput Event der Frage diese auswerten und wenn falsch wieder get Input from Player aufrufen

Das hat zwei Schwachstellen:
1.) Wir während der Frage die Zone verlassen und erneut betreten (auch unabsichtlich), kann es zu Problemen bei einigen Playern kommen. Das muss man wohl per Variable abfangen, ob die Frage schon angezeigt wird.
2.) Wenn man die Frage gerade nicht weiss und sich noch mal umschauen möchte (z.B. auf der Karte) kommt man aus dem Input Dialog nicht raus. Oder bekommt dann die Frage nicht wieder neu angezeigt.

Jetzt habe ich mal nach Alternativen gesucht. Eine, die mir eigentlich ganz vernünftig vorkommt sie so aus:
1.) Zone onEnter: lege ein Item mit der Frage in das Inventar des Player
2.) Action Event im Item zum Aufruf von get Input from Player.
3.) Bei falscher Antwort nur Message ausgeben, dass sie falsch ist, nicht Frage erneut stellen.

Damit ist man flexibler und glaube auch weniger fehleranfällig, aber es ist irgendwie unkomfortabel für den Spieler (er muss mehr "klicks" machen).


Wie macht Ihr das, bzw. gibt es "best practices", wie man am besten Fragen stellt?
 

Red_Family

Geocacher
Ich habe es bei meinem Wherigo genauso gemacht wie du es beschrieben hast.
Und bei richtiger Antwort sag ich dem Player per Dialog Bescheid das seine Antwort richtig war, lasse das Item wieder verschwinden, schalte die Zone auf Inaktiv und die nächste auf Aktiv.
Dann mittels Showscreen das Hauptmenü einblenden.

Ach ja, ich teile dem Spieler noch vorher bei Erreichen bzw. Eintritt in die Zone noch mit das er sie erreicht hat und er im Item Menü jetzt die Frage findet.
Damit sollte es dann klar sein, was er jetzt tun soll.

Bisher keine negative Rückmeldung.
Ok, man muss mehr klicken aber dafür scheints stabil zu laufen.

Gruß
 

jonny65

Geomaster
storc schrieb:
- Zone onEnter get Input from Player
Das hat zwei Schwachstellen:

Ist nicht nur eine Schwachstelle, sondern gehört zu den Top3 der größten NoGos, also ganz schnell vergessen. Meist muss jedoch gar kein extra Item angelegt werden, da es doch die Story schon hergibt z.b durch einen Charakter in der Zone. Zone betreten > Wache wird sichtbar > Wache anklicken > Ansprechen > Wache frägt nach der Parole > Eingabe. Wenn richtig folgen weitere Aktionen. Wenn falsch, dann Möglichkeit zur Wiederholung oder ins Hauptmenü, wo die Wache immer noch sichtbar ist, beim zweiten ansprechen aber dann natürlich was andres sagt sowas wie "Du schon wieder ? Ok, eine Chance hast du noch...."

Statt "Wache" als Charakter in der Zone kann man natürlich auch "Quizmaster" oder "Frage 23" oder oder als Item anlegen.

Input Crash Prävention nach dem Charlenni Tip mit der Abfrage auf Nil bei jedem Input (vom Typ Char, mit Number gibts ja keine Probleme)

storc schrieb:
3.) Bei falscher Antwort nur Message ausgeben, dass sie falsch ist, nicht Frage erneut stellen.

Und wenn sie falsch ist, ist das Spiel aus oder wie gehts dann weiter ?

storc schrieb:
Damit ist man flexibler und glaube auch weniger fehleranfällig, aber es ist irgendwie unkomfortabel für den Spieler (er muss mehr "klicks" machen).

Das ist nicht mal erwähnswert. Ich hab noch nie ein Log bekommen in dem steht "Geiler Wherigo, nur gestört hat mich, daß ich 2 Klicks machen musste, als ich die Parole bei der Wache eingeben musste."
 
OP
storc

storc

Geomaster
Danke Euch für die Antworten, das hilft mir weiter.

Jonny65 schrieb:
Ist nicht nur eine Schwachstelle, sondern gehört zu den Top3 der größten NoGos, also ganz schnell vergessen.
Schade halt, dass ein Tutorial das so erklärt.

Jonny65 schrieb:
...durch einen Charakter in der Zone. Zone betreten > Wache wird sichtbar > Wache anklicken > Ansprechen > Wache frägt nach der Parole > Eingabe.
Die Frage über einen Charakter stellen ist natürlich auch eine gute Idee. Probier ich mal aus. Ich habe zwar keinen, aber ein Quizmaster würde da schon hinpassen.

Jonny65 schrieb:
storc schrieb:
3.) Bei falscher Antwort nur Message ausgeben, dass sie falsch ist, nicht Frage erneut stellen.
Und wenn sie falsch ist, ist das Spiel aus oder wie gehts dann weiter ?
Dann wieder das Frageitem öffnen und die "Antworten" Aktion aufrufen. Im Prinzip wie Dein Vorschlag mit dem Charakter.

Ich werde das mal ausprobieren. Vielen Dank.
 

jonny65

Geomaster
Was noch eine Alternative ist, ist das Kombinieren beider Dinge.
- Input beim Betreten der Zone mit Absicherung gegen aufpoppende Message
- Charakter in der Zone sichtbar machen, der ein Kommando "Ansprechen" enthält mit der gleichen Frage wie der Input am Anfang. Sinngemäß diesen Input als Funktion realisieren.

Was passiert ? Der Spieler kommt in die Zone und bekommt sofort die Frage (1.Funktionsaufruf) , sieht also den Charakter gar nicht. Antwortet er richtig, wird zusammen mit andren Aktionen auch der Charakter entfernt. Antwortet er falsch, ist der Charakter aber anwesend, so daß der Spieler die Möglichkeit hat ihn anzusprechen und nochmal zu antworten (2.Funktionsaufruf)

Vielleicht ist das ja SO im Tut erklärt, dann wärs ok und sogar recht elegant, ansonsten Käse.
 

kansu_makugen

Geocacher
Ich mach das bei Inputs meistens so, dass ich bei einer falschen Antwort eine Message mit der Frage anzeige, ob man es nochmal versuchen oder abbrechen will. Kann ja sein, dass sich der Spieler nur vertippt hat und so spart er sich einen Klick. Aber wie schon gesagt wurde, werden sich die wenigsten über einen Klick zu viel beschweren.

Wenn ich mich recht entsinne, gibts ja teilweise gravierende Probleme, wenn bei einem offenen Input ein anderes Event ausgelöst wird (Enter Zone, Exit Zone, etc.). Deshalb verwende ich da gerne eine numerische Fortschrittsvariable. Zum Verständnis: Die Variable hat vorm Betreten der Zone z.B den Wert 4. Im OnEnter der Zone wird per If-Else abgefragt, was beim Wert 4 passieren soll (wenn die Zone mehrfach betreten werden soll, gibt es Verzweigungen für die entsprechenden anderen Werte). Danach wird die Variable um 1 erhöht. Wenn man also unabsichtlich aus der Zone fliegt und sie wieder betritt, wird kein erneutes Event ausgelöst und der Input bleibt davon unberührt.
Die Idee habe ich übrigens aus irgendeinem Tutorial, weiß aber nicht mehr, aus welchem.
 
Oben