Seit wann kann Windows Forms Anwendung mit GMS2 Kommuniteren?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Seit wann kann Windows Forms Anwendung mit GMS2 Kommuniteren?

    Hallo.

    Also mein Kumpel hat gerade ein Spiel Programmiert über Game Maker Studio 2. Und der hat auch ein Level Editor Programmiert. Denn wenn ich auf Level Editor klicke, dann wird auf nächste Raum gewechselt und dann öffnet sich ein Windows Forms Programm. Und was noch sehr Seltsam ist, unter Windows Forms Programm kann ich die Hintergrund in GMS2 Spiel wechseln. Also ich kann praktisch über Windows Forms Programmierte Programm die GMS2 Spiel Steuern. Obwohl der Windows Forms Anwendung ganz normal mit Visual Studio über C# Programmiert wurde und zwischen GMS2 und Windows Forms Anwendung miteinander nichts zu tun haben.

    Hat jemand ein idee wie das sein kann das er das geschaft hat das Windows Anwendung mit GMS2 Spiel kommunitieren kann? Ist das wirklich möglich das wenn ich z. B. unter Windows Forms ein Text eingebe und das dann auf GMS2 Selbstgemachte weiter leitet?
  • Ich nehme an er wird eine Extension dafür entwickelt und in sein Projekt gebunden haben.
    Nein eben nicht. Das einzige was ich in Code gesehen habe das er unter GMS2 etwas mit ini_open() oder etwas ini_close() gemacht hat, und dann meint er, das es damit möglich ist das Windows Forms Anwendung die GMS2 Spiel Steuern kann. Ich weiß auch nicht was ini genau bedeutet und wie sowas möglich ist.
  • Du verstehst aber, dass es etwas bizarr ist, dass Du erwartest, dass andere dir komplett blind eine gute Erklärung geben während Du anscheinend tatsächlich in Kontakt mit dem Typen bist und sogar in den Code gucken kannst?

    Anyway, weil ich freundlich bin gebe ich dir aber noch eine Portion Spekulation: dann wird er wohl eine sehr hässliche Lösung gemacht haben und während sein Game in diesem Zustand ist, liest es ununterbrochen den Zustand des Levels aus dieser Ini-Datei während sein externer Leveleditor alle Änderungen sofort in diese Datei schreibt. Das klingt mir sehr plump und hacky, und Ini-Dateien sind nicht einmal ein gutes Format um Levels zu speichern, aber es könnte praktisch tatsächlich funktionieren, zumindest so lange die Kommunikation einseitig ist (Leveleditor beeinflusst das Spiel aber das Spiel beeinflusst nicht den Leveleditor). Quasi Echtzeitkommunikation zwischen zwei Programmen über gleichzeitigen Zugriff auf ein gemeinsames File zu lösen ist aber nun wirklich keine schöne Lösung. Über diesen Weg lässt sich die Kommunikation halt nicht synchronisieren und sein externes Programm wird nicht wissen wann das Spiel das File liest und während das der Fall ist, kann das externe Programm das File halt nicht überschreiben. Kann sein, dass die Lösung in der Praxis nur gescheit funktioniert weil der jeweilige Zugriff auf die Datei jedes Mal so kurz ist, dass es in der Praxis einfach äußerst unwahrscheinlich ist, dass die beiden Programme gleichzeitig auf die Datei zugreifen. Abgesehen davon wäre so eine Lösung unnötig belastend für die Festplatte. Auch das ist in der Praxis eher kein ernstes Problem aber noch ein Grund es nicht auf diese Weise zu machen.

    Aber wie gesagt, das ist weiterhin pure Spekulation und wenn Du genaueres wissen willst musst Du nun wirklich diesen "Kumpel" fragen.
  • F4LL0UT hat zu der Vorgehensweise im Prinzip schon alles gesagt.

    PrinzPersia schrieb:

    Ich weiß auch nicht was ini genau bedeutet
    "Ini" steht für "Initialize" (also Initialisieren / Starten)
    Wie der Begriff schon sagt, ist eine Ini-Datei eine Konfigurationsdatei, die meist beim Starten eines Programmes oder Spiels ein mal eingelesen wird, um die Einstellungen aus der Datei zu übernehmen.
    Ini Dateien sind eher praktisch, wenn es bspw. darum geht, wie der Spieler seine Steuerung belegt hat, wie Laut die Musik sein soll, ob das Spiel im Vollbild oder nicht gestarten werden soll etc.

    Aber wie F4LL0UT schon sagte, ist eine Ini-Datei für einen Level-Editor eher eine sehr schlechte Lösung, die - gerade wenn man sie permanent auslesen lässt - eine unnötige Belastung für die Festplatte ist.
  • Aber wie F4LL0UT schon sagte, ist eine Ini-Datei für einen Level-Editor eher eine sehr schlechte Lösung, die - gerade wenn man sie permanent auslesen lässt - eine unnötige Belastung für die Festplatte ist.
    Ja gut, bei SSD wäre es egal. Weil bei SSD gibt es keine begränzte Lesen sondern nur beim Schreiben. Und wenn man sich wirklich nur wegen belastung gedanken macht, dann würde ich davon abraten Musik oder vorallem Filme von Festplatte ab zu spielen, denn das belastet der Festplatte auch ganzezeit beim Lesen. Ich glaube da soll ich schon gleich VLC Player Deinstallieren und künftig nur Online anschauen.
  • Die Sache ist nur die, dass eine Ini-Datei nicht für solche Zwecke genutzt wird. Es ist ganz schlicht und einfach gesagt eine unsaubere und unschöne "Lösung". Klar kann man es so machen - wenn man faul ist.
    Und ob HDD, SSD oder irgendetwas anderes, das ist ja egal. Ich glaube du hättest auch keine Lust, wenn du ein Buch liest und es zu Ende gelesen hast direkt wieder von Anfang an zu lesen, nur weil sich da 1-2 Wörter in 1000 Seiten geändert haben. Die ganze Thematik eines Level-Editors mit Filmen und Musik zu vergleichen, ist als wenn du Äpfel mit Birnen vergleichst. Das sind zwei ganz unterschiedliche Sachen.

    Nun du hast jetzt eine Erklärung was eine Ini-Datei ist und wofür sie eingesetzt wird und 2 Meinungen zu der Vorgehensweise deines Kumpels.
    Was du mit dem Feedback anstellst ist natürlich deine Sache. Du kannst deine Vorhaben so umsetzen wie dein Kumpel, aber auf langer Sicht gesehen wird es höchstwahrscheinlich überwiegend zu Problemen kommen.
  • PrinzPersia schrieb:

    Ja gut, bei SSD wäre es egal. Weil bei SSD gibt es keine begränzte Lesen sondern nur beim Schreiben. Und wenn man sich wirklich nur wegen belastung gedanken macht, dann würde ich davon abraten Musik oder vorallem Filme von Festplatte ab zu spielen, denn das belastet der Festplatte auch ganzezeit beim Lesen. Ich glaube da soll ich schon gleich VLC Player Deinstallieren und künftig nur Online anschauen.

    Das wirkliche Problem ist nicht das lesen sondern, dass der Leveleditor bei jeder noch so kleinen Änderung das gesamte Level neu auf die Platte schreiben muss um diese fake Synchronisierung der beiden Programme zu erreichen. Bei so einer Lösung wie ich sie beschrieben habe wird eine Festplatte quasi als Arbeitsspeicher missbraucht und das ist etwas, was man nur im Notfall machen sollte. Gibt schon einen Grund wieso Computerspiele nicht pro Frame autosaven sondern bei wichtigen Ereignissen oder in längeren Zyklen und auch Programme mit Backup-Funktion generell nur alle Paar Schritte speichern und nicht bei jeder noch so kleinen Änderung.

    Klar, diese Levels sind wahrscheinlich winzig und realistisch betrachtet ist die Belastung der Festplatte minimal (aber wer weiß, vielleicht schreibt man doch mal eben mehrere Hundert MB weil man ein Paar Minuten lang in diesem Leveleditor herumgeklickt hat) aber wie gesagt, idealistisch betrachtet ist es eine ekelhafte Lösung. Und warum das ein Problem ist wird gerade klar wenn Du anfängst auch von anderen Programmen zu reden. Ein einzelnes ekelhaft programmiertes GameMaker-Spiel ist vielleicht kein Problem aber würden die Leute Software standardmäßig so schreiben, würde das durchaus dazu führen, dass gerade SSDs generell eine deutlich kürzere Lebensdauer hätten.

    Gleichfalls: konstantes Lesen mag nicht einmal einen schlechten Einfluss auf die Lebensdauer einer SSD haben aber es ist eine konstante Belastung - ein einzelnes Programm was mehr von der Festplatte liest als es muss ist noch kein ernstes Problem aber wenn viel Software so programmiert wäre, würde das einfach unnötig die Leistung des Systems reduzieren weil viele Programme sich ununterbrochen gleichzeitig um Zugriff auf die Festplatte kloppen würden.

    Gibt schon einen Grund wieso es sowas wie Best Practices und Optimierung gibt und professionelle Programmierer versuchen Dinge ordentlich zu machen.
  • Benutzer online 1

    1 Besucher