Checkpoints!



  • Hallo,

    ich hab Checkpoints in meinem Game 😉

    Wenn man nun einen Checkpoint erreicht und kurz drauf CTRL+C abfeuert, geht der Checkpoint verloren.

    Wer ist dafür, dass ich einbau, dass kurz nach der Kollision mit dem Checkpoint, die Datei geschrieben wird, und wer ist dagegen?

    Sind nur ein paar Bytes, da käme also nichts ins Ruckeln.

    MfG



  • Oh shit, falsches Forum!
    Naja, dann wirds halt verschoben!?



  • checker2 schrieb:

    Wenn man nun einen Checkpoint erreicht und kurz drauf CTRL+C abfeuert, geht der Checkpoint verloren.

    Wie wäre es, direkt SIGINT wegzuwerfen?

    signal(SIGINT,SIG_IGN);
    

    Vorausgesetzt natürlich, es geht hier um Linux.

    EDIT: Und zum Rest ... ja, kann man machen. Gängige Betriebssysteme sind schlau heutzutage, die cachen viel. Ist auch in Ordnung, solange nicht das komplette System abschmiert. Bis die Daten dann wirklich geschrieben werden müssen, lassen Kernel das normalerweise irgendwo im Speicher.



  • dachschaden schrieb:

    Wie wäre es, direkt SIGINT wegzuwerfen?

    Das Spiel soll ganz normal beendbar sein, auch mit CTRL+C. Von daher ist das keine Lösung

    EDIT: Und zum Rest ... ja, kann man machen. Gängige Betriebssysteme sind schlau heutzutage, die cachen viel. Ist auch in Ordnung, solange nicht das komplette System abschmiert. Bis die Daten dann wirklich geschrieben werden müssen, lassen Kernel das normalerweise irgendwo im Speicher.

    Ok, klingt gut. Das kommt auch irgendwie gut -> Checkpoint erreichen -> CTRL+C oder muss mal schnell weg -> später wieder da beginnen, wo aufgehört.



  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (alle ISO-Standards) in das Forum Spiele-/Grafikprogrammierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


  • Mod

    checker2 schrieb:

    dachschaden schrieb:

    Wie wäre es, direkt SIGINT wegzuwerfen?

    Das Spiel soll ganz normal beendbar sein, auch mit CTRL+C. Von daher ist das keine Lösung

    Doch! Aber statt im Signalhandler nichts zu tun, schreibst du dort den Checkpoint raus und beendest danach.



  • AFAIK ist man in einem Signal-Handler sehr begrenzt, was man dort tun sollte.



  • Ich würde auch empfehlen es gleich rauszuschreiben. Dann funktioniert es nämlich nicht nur bei Ctrl+C sondern ziemlich egal wie man das Spiel beendet.
    (Einzige Voraussetzung ist dass nicht der ganze PC abkackt bevor das OS die Daten wirklich rausgeschrieben hat.)


Log in to reply