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

Quereinstieg in bestimmter Zone beim Programmieren

GrimReaper

Geocacher
Bei mir taucht, jetzt wo die Programmierung meines ersten WIG etwas vorangeschritten ist, ein neues Problem auf.
Ich teste gerne (im Urwigo-Simulator) die neuen Stellen, um die reichlichen Fehler die ich mache gleich auszumerzen.
Leider gibt es mit zunehmender Zahl der Zonen (nur immer die Notwendigen sind aktiv) und Sounds immer mehr Abstürze im Simulator. Das Problem an sich ist ja wie ich gelesen habe bekannt. Aber wie kann ich zum testen an die gewünschte Stelle springen?
Habt ihr sowas wie einen "Rettungscode" eingebaut, bei dem Ihr zumindest an vorher festgelegten Stellen "Quereinsteigen" könnt (die Codes kann man im Spiel später ja auch noch verwenden), und wie müsste man sowas angehen?
Oder kann man über eine Speicherdatei ala "run-d5b9a17a-b7bf-4371-88b7-c4b009c1363f" dort einsteigen, wo man aufgehört hat? Würden dann die folgenden (neuen) Zonen funktionieren?

Beste Grüße Reaper
 

AoiSora

Geocacher
Also ich habe bei einem WIG auch "Cheats" für mich eingebaut. Ein Tagebuch wo des Spieler eh an der einen oder anderen Stelle ein Wort eintragen muss habe ich eh schon und so habe ich dann bestimmte PW bei denen ich bestimmte Zonen freischalte. Man sollte aber dann auch überlegen, was man alles ab da zum testen braucht z.b. items und npc's verschieben. Auch sollten vorher alle Zonen deaktiviert und unsichtbar gemacht werden. Manchmal bist du dann mehr damit beschäftigt bugs vom Quereinstieg zu beseitigen als das es sich lohnen würde.

Vielleicht hilft dir aber auch das hier

http://www.das-wherigo-handbuch.de/index.php?title=Universelles_Debuggingtool
 

Sabeta

Geocacher
Bei mir stürzt der Emulator so gut wie nie ab, es kommt vor, aber extrem selten.

Zum Testen gibt es bei mir ein Item "Debug", dieses hat dann die Befehle die ich gerne möchte, etwa "Zone Final", dort muß ich dann natürlich nicht nur die Zone freischalten, sondern auch alle Variablen entsprechend setzen, Items sichtbar machen usw.

Bei der Gelegenheit kann man auch gleich testen was passiert wenn versteckte Zonen überrannt und so andere Zone frühzeitig betreten werden, auch soetwas muß abgefangen werden..

Wenn der Wig fertig ist, wird er komplett kopiert und in der Kopie das Item Debug entfernt und erst dann bei Wherigo.com hochgeladen.


Sabeta
 

jonny65

Geomaster
GrimReaper schrieb:
Aber wie kann ich zum testen an die gewünschte Stelle springen?

Das mit dem Rettungscode ist schon ne gute Sache, aber auch ne Fleißarbeit. Du musst bei jedem Einstiegspunkt den dafür benötigten Spielezustand wiederherstellen. Lohnt aber letztlich den Aufwand. Zum Test geht auch eine Funktion, die beim Start aufgerufen wird. Die enthält dann Zone aktivieren, Item X zum Spieler schieben, Variablen setzen usw. Im Prinzip sowas wie Sabetas Item, halt eher quick & dirty, zum Testen aber sehr schnell und einfach. Auf keinen Fall in den Sourcen "mal eben schnell" die Zone X aktivieren und das Item Y zum Player schieben. Immer über ein eigenständiges Modul gehen, "Cheat Item" oder eben eine Funktion. Mit einem Klick ist das zum Publish wieder draußen.
 

Schnatterfleck

Geocacher
Ich mach es aktuell auch wie AoiSora. Bei mir hat der Spieler ein Notizbuch, in dass er sich alles mögliche notieren kann. Und für bestimmte Punkte im Spielablauf gibt es Codes.
Nach der Eingabe dieses Codes wird dann alles, was man für die entsprechende Stelle braucht, aktiviert und richtig hingeschoben.

Ich bin auch am überlegen, diese Funktionalität später dem Nutzer als Backup/Alternative zum normalen Abspeichern zur Verfügung zu stellen. Allerdings gibt es glaube ich keinen richtigen "Cartridge-Reset" (falls jemand da was anderes weiß: bitte bescheidgeben!), was seltsame Folgen haben könnnte, wenn der Spieler das mittendrin im Spiel aufruft. Grund dafür ist, dass dieses Setzen eines Spielstandes von einer gerade gestarteten Cartridge ausgeht.

Das universelle Debugging-Tool hatte ich bei meinem ersten WIG eingesetzt (bei dem ich auch sonst wild mit verschiedenen Sachen rumgespielt habe). Das war zwar nicht schlecht, mir aber etwas zu umständlich in der Bedienung. Ausserdem fand ich es auch recht aufwändig, das Ding am Ende wieder rauszuwerfen (vom nachträglichen Reinpfriemeln in ein existierendes Projekt am Anfang erst gar nicht zu reden...). Ich vermute sogar, dass da jetzt immer noch Reste von in der Cartridge rumschwirren und für eine harmlose aber unschöne Fehlermeldung beim Abspeichern sorgen...

Bei der aktuellen Cartridge teste ich auch zunehmend direkt auf einer Zielplattform (Android-Smartphone). Ist daheim im W-Lan mit gefakten GPS-Koordinaten ähnlich komfortabel wie mit dem Emulator.
Das wäre ja wegen der häufigen Abstürze des Emulators bei Dir vielleicht auch eine Alternative für Dich?
 
Schnatterfleck schrieb:
Bei der aktuellen Cartridge teste ich auch zunehmend direkt auf einer Zielplattform (Android-Smartphone). Ist daheim im W-Lan mit gefakten GPS-Koordinaten ähnlich komfortabel wie mit dem Emulator.
Was nutzt du denn hierfür für eine App?

Ich hatte mir vor einiger Zeit mal was entsprechendes installiert (k.A. mehr was...) und hatte damit dann aber massive Probleme wieder einen GPS-Fix zu bekommen, wenn ich die App abgeschaltet habe. Deshalb ist das Ding dann wieder runter geflogen.
 

Sabeta

Geocacher
Ganz auf den Emulator darf man nicht verzichten, der zeigt einem nämlich immer an, wenn etwas nicht stimmt, mit "Errorscreen" und genauen Informationen wo (Zeilennummer im LUA-Quelltext) die Ursachen dafür liegen.

Der WhereYouGo zeigt die meisten Fehler gar nicht an, sondern rennt durch, wenn irgendwo in einer Unterroutine etwas nicht stimmt, dann bricht er die Programmausführung an dieser Stelle ab würde danach ein x=x+1 kommen bliebe x unverändert. Aber der Rest außerhalb der fehlerhaften Rooutine wird weiterhin normal ausgeführt. Die Fehlermeldung bekommt man dann erst beim Save oder Resume angezeigt, aber dies auch nicht immer. Du bekommst somit eventuelle Fehler nicht mit, die andere Geräte/Player knadenlos abstürzen lassen.

In diesen Zusammenhang sollte man im Listing darauf hinweisen, Errosscreens per Screenshot oder abfotografieren zu sichern, nur mit diesen kann man wirklich Fehler beseitigen.


Sabeta
 

Schnatterfleck

Geocacher
Sabeta schrieb:
Ganz auf den Emulator darf man nicht verzichten, der zeigt einem nämlich immer an, wenn etwas nicht stimmt, mit "Errorscreen" und genauen Informationen wo (Zeilennummer im LUA-Quelltext) die Ursachen dafür liegen.
Sabeta

Da hast Du natürlich Recht. Allerdings gilt das (begrenzt) auch andersrum, der WhereYouGo generiert gelegentlich bei Sachen Fehlermeldungen, die den Emulator nicht interessieren (z.b. die von mir vorher schon erwähnte Fehlermeldung beim Abspeichern).
Darum benutze ich persönlich auch beide.

Aber wenn für GrimReaper der Emulator langsam unbenutzbar wird... Überhaupt mal eine Testumgebung ist besser als gar keine, auch wenn Sie vielleicht weniger Fehler anzeigt...


whiterussian_ch schrieb:
Was nutzt du denn hierfür für eine App?

Ich hatte mir vor einiger Zeit mal was entsprechendes installiert (k.A. mehr was...) und hatte damit dann aber massive Probleme wieder einen GPS-Fix zu bekommen, wenn ich die App abgeschaltet habe.

Die App heisst so, wie das, was sie tut: "Fake GPS Location".
Funktioniert bei mir ohne Probleme. Allerdings solltest Du vor Benutzung laut Autor bei den Standortdiensten die "Drahtlosnetzwerke verwenden"-Option deaktivieren, ansonsten kann wohl genau der Fehler auftreten, den Du beschrieben hast. Vielleicht lag's da dran...
 

Charlenni

Geomaster
Also, wenn es mit dem Emulator Probleme gibt, dann geht irgendetwas schief. Eine normale Cartridge sollte ohne Probleme laufen. Tut sie das nicht, dann läuft sie vermutlich auch nicht auf Garmins.

Es ist also sicher besser, nachzuschauen, warum die Fehler auftreten.
 

timu

Geocacher
Also ich sehe das Problemm in den Sounddateien!
Normale cartridges laufen bei mir auch tadellos auf dem Emulator. Sobald Sound im Spiel ist stürtzt er aber auch andauernd ab. Dann lade ich das Spiel einfach aus der Speicherdatei (automatisches speichern nach jeder Zone) und kann am Absturzort weitermachen. Da dies sehr zeitaufwendig ist, empfehle ich dir die Sounds erst ganz am Schluss einzubauen, damit du den grössten Teil ohne Probleme testen kannst... :roll:
 

jonny65

Geomaster
Charlenni meinte Garmin vs Emulator. Da sind kein MP3s oder WAVs drin und DA stürzt auch nix ab. Wenn doch, dann ist wirklich die Cartridge verwurmt. Mit Medien aber gibts jede Menge Abstürze, stimmt uneingeschränkt. Mein Rekord ist so um die 15 mal während eines simulierten Spiels.
 
OP
G

GrimReaper

Geocacher
Danke Euch schon mal für die vielen nützlichen Hinweise.

Ich habe versucht die "quick und Dirty Version" von Johnny umzusetzen und das geht eigentlich ganz gut.
Es scheint tatsächlich das Abspielen der Sounddateien zu sein, was diese Abstürze des Emulators hervorruft.
Selbst gleich nach dem Quereinstieg quittiert der Emulator gelegentlich den Dienst, wenn ein Sound für Zone betreten abgespielt wird.
Der Ablauf kann dann weiterhin simuliert werden, jedoch werden keine Sounds ab diesem Zeitpunkt mehr abgespielt. Zu Testzwecken hab ich die gwc-Datei in Urwigo erstellt und auf das Handy geladen. Spielt problemlos bis zum Ende des momentanen Spielstands durch.
Sogar mit dem iPhone hab ich's probiert und das hat Prime geklappt. (Übrigens auch keine Probleme beim Quereinstieg)
Ich denke diese Möglichkeit werde ich für die Spieler später ebenfalls ermöglichen, nur ebend nicht für jede Zone (so wie ich es mir gerade einrichte).
 

Schnatterfleck

Geocacher
GrimReaper schrieb:
Es scheint tatsächlich das Abspielen der Sounddateien zu sein, was diese Abstürze des Emulators hervorruft.

Für das Abspielen von Sounds habe ich bei mir zwei Funktionen angelegt, userPlaySound und userPlaySoundOnce (wenn Audio nur ein einziges Mal, etwa beim ersten Betreten einer Zone abgespielt werden soll).

Dadurch ist es ziemlich einfach, das Abspielen mal eben schnell global zu aktivieren oder deaktivieren (z.B. für das Testen im Emulator).

Allerdings natürlich nur, wenn tatsächlich das Abspielen die Abstürze verursacht, und nicht die reine Existenz der Sounds in der Cartridge... Bei mir gab es da bisher keine Probleme, ich kann dazu also leider nichts sagen.
 
Oben