Hallöchen Leute!
Heute werde ich euch mal zeigen, wie man eine einfache Fehlerbericht-Erstattung in sein Spiel einbauen kann. Der Benutzer hat die Wahl, beim Auftreten eines Fehlers den Fehlerbericht an den Entwickler des Spiels zu senden oder eben nicht. Diese Meldung wird dann über ein PHP-Script auf eurem Webserver an eure E-Mail-Adresse geschickt.
Was wir dazu brauchen sind:
Als erstes erledigen wir gleich die Fremdsprachenarbeit, nämlich das PHP-Script, da es wirklich einfach aufgebaut ist und wenig Code enthält. Wir werden beim Übertragen der Daten auf die POST -Methode zurückgreifen und eine kleine Sicherheitsabfrage einbauen, die verhindert, dass man außerhalb des Spiels Fehlerberichte senden kann.
Das PHP-Script sollte so ähnlich aussehen:
Das wars auch schon. Speichert dieses Script als php-Datei (in diesem Fall unter report.php) und ladet es auf euren Webspace.
Kommen wir zum Spiel
Fügt eure HTTP-fähige dll in das Spiel ein und initialisiert alles korrekt (ich verwende in dem Fall die http.dll). Am besten ihr legt nun ein neues Script mit dem Namen error_report an, welches ihr im Step-Event ausführt.
Das Script muss überprüfen, ob ein Fehler aufgetreten ist und bei Bedarf einen Fehlerbericht senden. Und das sieht folgendermaßen aus:
Alles anzeigen
Schlusswort
Das war eine relativ einfach zu verwirklichende Methode, ein Fehlerberichtsystem zu erstellen, natürlich ist es noch ausbaufähig, man könnte z.B. das PHP-Script erweitern, sodass es z.B. nur wöchentlich alle aufgetretenen Fehler einmal per E-Mail versendet, aber die Grundlage wäre damit geklärt. Auf jeden Fall ist es noch zu empfehlen, die GM Fehlermeldungen abzuschalten, da diese sonst noch extra vor unserer Methode angezeigt werden.
Heute werde ich euch mal zeigen, wie man eine einfache Fehlerbericht-Erstattung in sein Spiel einbauen kann. Der Benutzer hat die Wahl, beim Auftreten eines Fehlers den Fehlerbericht an den Entwickler des Spiels zu senden oder eben nicht. Diese Meldung wird dann über ein PHP-Script auf eurem Webserver an eure E-Mail-Adresse geschickt.
Was wir dazu brauchen sind:
- Natürlich den Game Maker (sollte mit jeder Version funktionieren)
- Einen PHP-fähigen Webserver (z.B.: bplaced.net)
- Ein FTP-Upload-Programm (optional kann man auch den Windows Explorer benutzen)
- Eine HTTP-fähige dll (in diesem Fall nehme ich die http.dll von Bl@ckSp@rk)
Als erstes erledigen wir gleich die Fremdsprachenarbeit, nämlich das PHP-Script, da es wirklich einfach aufgebaut ist und wenig Code enthält. Wir werden beim Übertragen der Daten auf die POST -Methode zurückgreifen und eine kleine Sicherheitsabfrage einbauen, die verhindert, dass man außerhalb des Spiels Fehlerberichte senden kann.
Das PHP-Script sollte so ähnlich aussehen:
PHP-Quellcode
- <?php
- if ($_POST["code"] == "deincode" && isset($_POST["error"]))
- {
- $header = "From: Fehlerbericht System <noreply@error.net>\nReply-To: noreply@error.net\nContent-Type:text/html; charset=iso-8859-1\nContent-Transfer-Encoding: 8bit\n";
- mail("deine@mail.net", "Dein Betreff", "Folgender Fehler ist im Spiel xyz aufgetreten:<br>".nl2br($_POST["error"]), $header);
- }
- ?>
Das wars auch schon. Speichert dieses Script als php-Datei (in diesem Fall unter report.php) und ladet es auf euren Webspace.
Kommen wir zum Spiel
Fügt eure HTTP-fähige dll in das Spiel ein und initialisiert alles korrekt (ich verwende in dem Fall die http.dll). Am besten ihr legt nun ein neues Script mit dem Namen error_report an, welches ihr im Step-Event ausführt.
Das Script muss überprüfen, ob ein Fehler aufgetreten ist und bei Bedarf einen Fehlerbericht senden. Und das sieht folgendermaßen aus:
GML-Quellcode
- // Prüfe, ob ein Fehler aufgetreten ist.
- if (error_occurred)
- {
- // Vergleiche sicherheitshalber den Text der Fehlermeldung mit dem Text einer eventuell zuvor aufgetretenen Fehlermeldung,
- // damit der Bericht auch nur einmal erfragt und gesendet wird (die Variable global.lerror muss natürlich noch definiert werden - als leerer String)
- if (error_last != global.lerror)
- {
- if (show_message_ext("Ein unerwarteter Fehler ist aufgetreten. Fehlerbericht senden?", "Ja", "", "Nein") == 1)
- {
- // Hier wird nun der Fehlerbericht gesendet, falls der Benutzer das will
- // So sieht es mit der http.dll aus
- http_add_post("code", "deincode"); // Code, den ihr in der PHP-Datei festgelegt habt
- http_add_post("error", error_last); // Die Fehlermeldung
- if (http_request("testserver.bplaced.net", "/pfad/zum/php/script/report.php"))
- show_message("Fehlerbericht wurde gesendet");
- else
- show_message("Fehlerbericht konnte nicht übermittelt werden");
- }
- error_occurred = 0;
- global.lerror = error_last;
- }
- }
Schlusswort
Das war eine relativ einfach zu verwirklichende Methode, ein Fehlerberichtsystem zu erstellen, natürlich ist es noch ausbaufähig, man könnte z.B. das PHP-Script erweitern, sodass es z.B. nur wöchentlich alle aufgetretenen Fehler einmal per E-Mail versendet, aber die Grundlage wäre damit geklärt. Auf jeden Fall ist es noch zu empfehlen, die GM Fehlermeldungen abzuschalten, da diese sonst noch extra vor unserer Methode angezeigt werden.
© 2008 by Teamgrill Productions
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von MasterXY ()