Spiele Launcher /Downloader erstellen, wie ? , Anleitung ?

  • VB.NET

Es gibt 28 Antworten in diesem Thema. Der letzte Beitrag () ist von siycah.

    Spiele Launcher /Downloader erstellen, wie ? , Anleitung ?

    Hi zusammen :)
    Ich hoffe es ist hier richtig, ansonsten bitte verschieben.
    Vorweg, ich habe schon bsl. im internet gesucht aber nichts wirklich gefunden bzw. nichts Aktuelles.

    Ich habe noch ein altes windows Form projekt (2007) aber vieles geht mit der neuen version nicht mehr. (bsp. Private Sub, msgbx ect.)

    Also ich möchte einen Launcher für ein Spiel erstellen. Der Launcher soll auch überprüfen ob es Updates gibt und diese dann installieren.

    bsp. ich habe einen Ordner (mit namen: spiel xy)
    In dem Ordner ist das Spiel und wenn ich auf die Spiele.exe drücke, startet das Spiel ganz normal.

    Jedoch ändere ich ab und zu etwas an dem Spiel und möchte nicht das die Spieler die datein (gepakt zb. update.rar) vom Server laden und manuel kopieren möchte.

    Ich möchte aber, dass in dem Spiele Ordner (spiel xy) eine Launcher.exe ist, die beim start prüft, ob die Spiele Datein vorhanden sind. Wenn nicht lädt er sie von meinem Server, wenn Sie da sind kann man das Spiel Starten.
    Zudem soll der Launcher auch erkennen ob es neue, oder geänderte datein auf dem Server gibt, die der Launcher dann automatisch runter lädt. (Quasi wie bei Steam, Battlenet ect.)

    Wenn jemand eine Anlaeitung oder ein Tutorial hat, darf er es gerne Posten :D

    Wie gesagt, habe schon bsl. gegoogelt aber nix gescheites (wo man auch was versteht) gefunden.
    Ein Tutorial hab ich gefunden was auch so relativ geht, ist allerdings schon einige Jahre her und scheint nicht mehr richtig zu funktionieren.
    (Wenn ich das Project veröfentlichen möchte erstellt er alles, aber wenn ich die .exe dann starte, zeigt er an das der Herausgeber nicht überprüft werden kann und ich dann auf installieren drücke ein Fehler kommt.(wobei ich nicht weiß warum er eine setup.exe erstellt und nicht einfach ein Launcher)

    PS : Schreibe dies über ein kleines Tablet auf der Arbeit. Rechtschreibfehler/Groß-Kleinschreibungsfehler dürft ihr behalten. ^^

    erwieder schrieb:

    aber vieles geht mit der neuen version nicht mehr. (bsp. Private Sub, msgbx ect.)


    Inwiefern funktioniert ​Private Sub nicht mehr? Das ist Teil der VB-Syntax...
    Diese Frage ist mit C# markiert. C# kennt diese Syntax natürlich nicht.

    erwieder schrieb:

    Der Launcher soll auch überprüfen ob es Updates gibt und diese dann installieren.

    erwieder schrieb:

    Jedoch ändere ich ab und zu etwas an dem Spiel und möchte nicht das die Spieler die datein (gepakt zb. update.rar) vom Server laden und manuel kopieren möchte.


    Quellcode

    1. // Pseudo-Code!
    2. var webRequest = new WebRequest("POST", "https://game.me.info/api/updates", new Version(1, 0, 0), Directory.GetFiles("/path/to/game"));
    3. if (webRequest.Send() == 204) {
    4. // HTTP 204 no content.
    5. // no updates!
    6. return;
    7. }
    8. webRequest.Method = "GET";
    9. webRequest.Url = "https://game.me.info/api/updates?version=latest";
    10. webRequest.ClearPostParams();
    11. webRequest.Send().WriteToFile("update.zip");


    erwieder schrieb:

    Ich möchte aber, dass in dem Spiele Ordner (spiel xy) eine Launcher.exe ist, die beim start prüft, ob die Spiele Datein vorhanden sind.

    C#-Quellcode

    1. class Program {
    2. List<string> ExpectedFiles = new List<string> {
    3. "game.exe",
    4. "game.dll",
    5. "map.sav"
    6. };
    7. const string MyGameDir = @"C:\game\";
    8. public static void Main(string[] args) {
    9. if (ExpectedFiles.Any(f => !Directory.Exists(Path.Combine(MyGameDir, f)) {
    10. // Spiel korrupt? neu herunterladen
    11. }
    12. }
    13. }


    erwieder schrieb:

    Zudem soll der Launcher auch erkennen ob es neue, oder geänderte datein auf dem Server gibt


    Siehe Pseudo-Code oben.

    erwieder schrieb:

    Wenn jemand eine Anlaeitung oder ein Tutorial hat, darf er es gerne Posten


    Das ist Individualsoftware. Da gibt's keine ganzheitliche Anleitung für. Ohne zu wissen, was genau du erreichen willst, wie die Dateien aussehen, wie du auf Änderungen prüfen willst und wie die API auf deinem Server (wenn du sowas überhaupt hast) aussieht, kann man dir da keine qualifizierte Aussage geben.
    Quellcode lizensiert unter CC by SA 2.0 (Creative Commons Share-Alike)

    Meine Firma: Procyon Systems
    Meine Privatwebseite: SimonC.eu

    Bitte nicht wundern, wenn meine Aktivitäten im Forum etwas langsamer sind, ich baue gerade mein Nebengewerbe zum Vollgewerbe aus.
    Ich versuche auf euch zurückzukommen :)
    ok, ich schaue mal, aber das hilft mir aber schonmal bsl. weiter, danke.#
    Und ja ich habe 3 dedizierte Server (2 Linux, 1 Windows) wo ich verschiedene Spiele Server und Homepages laufen lasse)

    Hätte mal noch 2 kurze Fragen.
    Gibt es eine Möglichkeint aus einer Text datei die auf dem Server liegt, den Text im Launcher anzuzeigen ?
    Ich habe momentan ein Web-browser der es aus der index.html anzeigt, jedoch bekomme ich da den Hintergrund nicht transparent. (im Launcher)

    Und wie kann ich dem Launcher sagen, er soll bei dem druck auf Start die exe im selben ordner wie der Launcher starten ?
    Momentan ist es ein fester pfad.

    Visual Basic-Quellcode

    1. Private Sub Play_Click(sender As Object, e As EventArgs) Handles Play.Click
    2. Process.Start("C:\games\SpielStart.exe")
    3. End Sub

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „erwieder“ ()

    erwieder schrieb:

    Und ja ich habe 3 dedizierte Server (2 Linux, 1 Windows) wo ich verschiedene Spiele Server und Homepages laufen lasse)

    Welche Betriebssysteme auf den Servern laufen sind erstmal völlig egal. Hauptsache da läuft ein Webserver drauf, der vernünftig konfiguriert wurde.

    erwieder schrieb:

    Gibt es eine Möglichkeint aus einer Text datei die auf dem Server liegt, den Text im Launcher anzuzeigen ?

    Ja, indem du ein WebRequest losschießt und den TextBody dann in einem Textfeld anzeigst.

    erwieder schrieb:

    Und wie kann ich dem Launcher sagen, er soll bei dem druck auf Start die exe im selben ordner wie der Launcher starten ?

    Indem du einfach nicht den kanonischen Pfad angibst. Du kannst selbstverständlich auch relative Pfade angeben:

    C#-Quellcode

    1. private sub button_Click(object? sender, EventArgs e) {
    2. Process.Start("./mygame[.exe]"); // relativ; du kannst das "./" hier sogar theoretisch weglassen.
    3. Process.Start("/full/path/to/game[.exe]"); // kanonisch
    4. }


    Aber wenn ich ehrlich bin, ist das keine Art ein Programm zu starten. Such lieber einmal nach der Datei, am besten über Merkmale in der Datei, falls die umbenannt wird, und dann kannst du dir das ganze Rumgepfade auch sparen. Alternativ dazu speicherst du den Pfad in eine Config und lässt den User die Datei auswählen.
    Quellcode lizensiert unter CC by SA 2.0 (Creative Commons Share-Alike)

    Meine Firma: Procyon Systems
    Meine Privatwebseite: SimonC.eu

    Bitte nicht wundern, wenn meine Aktivitäten im Forum etwas langsamer sind, ich baue gerade mein Nebengewerbe zum Vollgewerbe aus.
    Ich versuche auf euch zurückzukommen :)
    Mit dem start hat nicht funktioniert, da hat er immer fehler angezeigt.
    So funktioniert es jetzt.

    VB.NET-Quellcode

    1. Private Sub Play_Click(sender As Object, e As EventArgs) Handles Play.Click
    2. Dim unused = Process.Start("Start.exe")
    3. End Sub


    das WebRequest muss ich noch schauen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „erwieder“ ()

    Jetzt nochmal eine frage zum Downloaden der Datein. So hab ich es und das funktioniert auch.

    VB.NET-Quellcode

    1. Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
    2. client.DownloadFileAsync(New System.Uri("https://xyz.de/datein/Ordner/1.txt"), My.Application.Info.DirectoryPath & "\1.txt")
    3. AddHandler client.DownloadProgressChanged, AddressOf DownloadProgress
    4. End Sub

    In dem Ordner sind aber mehrere datein und ordner :

    .de/datein/ordner/1.txt
    .de/datein/ordner/2.txt
    .de/datein/ordner/1.dll
    .de/datein/ordner/1.png
    .de/datein/ordner/ordnerX
    .de/datein/ordner/ usw.

    Wie kann ich es machen das er alles lädt was in .de/datein/ordner/ ist ?
    @erwieder Du solltest nicht alles laden was da ist, sondern Du solltest wissen, was da zu sein hat und lädtst genau dies.
    Wenn was fehlt oder kaputt ist, wirfst Du eine Excepton.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Vllt. ein PHP Script, das dir ein Zip Archiv macht und dann ausspielt. Alternativ schon nachdem Uploaden packen, damit nicht ständig neu gepackt werden muss, spart Ressourcen. Oder direkt gepackt hochladen. Sowas wie Directory.GetFiles gibt es in dieser Konstellation ja nicht. Mit FTP, FTPS oder SFTP wäre das möglich, wäre auch Anonym machbar, also ohne Anmeldung. Aber wenn du da keine Ahnung von hast, bleib beim Zip-Archiv, nicht das das Ding zur Virenschleuder wird. Oder lade alles nacheinander einzeln herunter.
    Zitat von mir 2023:
    Was interessiert mich Rechtschreibung? Der Compiler wird meckern wenn nötig :D

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „DTF“ ()

    nochmal bsl. mehr infos ^^

    Man startet den Launcher und wenn mann auf Download drückt, soll mann die game files laden. (also alles was in xyz.de/datein/ordner/ ist)
    Viren sollten nicht da sein, da die files auf meinem root liegen.
    ich kann es auch machen das er die zip datei lädt, aber dann müsste man das ja nach dem download entpacken was blödsin ist.

    erwieder schrieb:

    ich kann es auch machen das er die zip datei lädt, aber dann müsste man das ja nach dem download entpacken was blödsin ist.


    Wiso blödsinn? Ich liefer eher eine ZIP als wie 2 TXT Dateien aus. Text lässt sich gut komprimieren, man spart also Verbindungen und Datenmenge ein.

    Mit den Viren meinte ich wegen dem FTP, FTPS, SFTP Vorschlag. Richtest du das nicht richtig ein und der anonyme user kann hochladen, kann er von dort aus gewisse Sachen verteilen. Deshlab sagte ich ja, wenn du keine Ahnung davon hast, besser ZIP.

    Wobei da fällt mir doch noch was ein, Wenn du auf dem Webserver DirectoryListing erlaubst für diesen Ordner spielt er eine HTML Datei aus(diese Index Of/ Seite)wenn du die URL des Ordners nutzt, wie die aussieht kannst du beeinflussen, so musst du nur noch die Dateinamen parsen.
    Zitat von mir 2023:
    Was interessiert mich Rechtschreibung? Der Compiler wird meckern wenn nötig :D

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „DTF“ ()

    ftp user einrichten ect. kann ich das ist nicht das problem. (datenmenge ist auch egal. hab 1 Gb/s anbindung und unbegrenzt Traffic und Starke System Ressourcen)
    Sollte einer die url zu dem downloadpfad finden und sie eingeben wird er direkt zur homepage weiter geleitet, die kann so keiner auf rufen. Auch wenn er es mit den datein probiert. bsp. xyz.de/datein/ordner/start.exe (oder compars.dll/ version ...) erfolgt eine weiterleitung zur homepage.

    Ich kenn es halt von einem Spiel, da speichere ich den Launcher einfach in einen Ordner, starte ihn und wenn ich auf Download drücke, lädt er die Datein runter.

    also müsste ich das alles einzeln machen ? quasi

    VB.NET-Quellcode

    1. client.DownloadFileAsync(New System.Uri("https://xyz.de/datein/Ordner/1.txt"), My.Application.Info.DirectoryPath & "\1.txt")
    2. client.DownloadFileAsync(New System.Uri("https://xyz.de/datein/Ordner/1.dll"), My.Application.Info.DirectoryPath & "\1.dll")
    3. client.DownloadFileAsync(New System.Uri("https://xyz.de/datein/Ordner/1.exe"), My.Application.Info.DirectoryPath & "\1.exe")
    4. client.DownloadFileAsync(New System.Uri("https://xyz.de/datein/Ordner/system/1.txt"), My.Application.Info.DirectoryPath & "\system/1.txt")

    So in etwa. Wobei ich denke, das es eine Exception(Ich glaube eine E/A Exception) geben wird wenn du das so machst. Also die gleiche Webclient-Instanz so parallel runterladen lassen willst. Da wirst du warten müssen bis ein Download durch ist, dann den nächsten starten. Kannst aber auch mehrere Webclients arbeiten lassen.

    Wenn du nun nicht selbst die Urls so tippen willst, kannste das DirectoryListing erlauben für diesen Ordner, dann bekommst du eine HTML-Seite ausgespielt wie im Anhang, wenn du die Url des Ordners nutzt, so brauchst selbst nur 1 Url angeben, die anderen Dateinamen dann aus der Antwort parsen.(In dem Fall DownloadStringAnysnc verwenden) , für die Dateien dann DownloadFileAsync.

    Du kannst aber auch Einfluss auf die Index Of/ Seite nehmen, kannste so lassen oder anpassen, was dir das parsen erleichtern kann. Kenn ja deine Skills nicht wirklich.

    Also geht es dir darum alle Dateien in dem Ordner zu ermitteln? Oder willst du die Urls direkt alle im Programm haben, oder in einer Datei die du dann einliest? Bei ersteren, wie ich sagte kann dir DirectoryListing helfen, ansonsten nur wie auch schon gesagt mit 1 WebClient nacheinander, oder mit mehreren parallel.


    PS: @erwieder
    Gerade sehe ich was von EXE.
    Updater - Worauf sollte man bei eigenen Updatern achten?
    Bilder
    • Unbenannt.png

      23,95 kB, 475×421, 19 mal angesehen
    Zitat von mir 2023:
    Was interessiert mich Rechtschreibung? Der Compiler wird meckern wenn nötig :D

    Dieser Beitrag wurde bereits 9 mal editiert, zuletzt von „DTF“ ()

    ich glaube ich habe es falsch formuliert :)

    Es geht um ein Modifiziertes Spiel was man über den Launcher Laden soll und dann auch Starten kann.

    Sprich den Launcher in einen Ordner packen, Launcher Starten und auf Download drücken und dann auf Spiel Starten ^^
    Bis auf den Download klappt auch alles.

    DirectoryListing könnte ich dür den Ordner erlauben das ist kein Problem.
    Ich bin grad auch nicht mehr ganz frisch ^^

    Das ist an sich ja kein Problem. Aber sobald eine EXE oder DLL ins Spiel kommt(was ausführbares/kompiliertes), kann es gefährlich werden für deine User und somit auch für dich. Du wirst wenn was passiert und bewiesen ist das du Schuld hast zur Rechenschaft gezogen.

    Das DirectoryListing ist ja nicht das Problem, kann es aber vereinfachen, damit man nicht immer selbst die Urls anpassen muss, falls mal eine Datei wegfällt/hinzukommt Dateiname geändert wurde ect... pp.

    Lies dir mal den Link den ich noch gepostet hab mit den Updatern durch, dann sollte dir klar sein warum das so gefährlich sein kann mit ausführbaren Sachen.

    Wenn du aber mit dem Kopf durch die Wand rennst, egal was man dir rät, hast du die Infos die du brauchst.

    Mit Listing->Ordner Url nutzen, als String downloaden(Die Webseite). Aus dem String die Dateinamen parsen, und nacheinander mit 1 WC runterladen oder mehreren WCs parallel.
    Ohne Listing->Alle Dateien nacheinander mit 1 WC runterladen oder mehreren WCs parallel, dann musst du aber alle Urls immer selbst von Hand im Programm einkompilieren, oder in einer TextDatei haben und die einlesen.

    PS: @erwieder
    Benutze lieber nUpdate, damit das sicher ist und du dich nicht damit ins Teufels Küche bringst.
    Zitat von mir 2023:
    Was interessiert mich Rechtschreibung? Der Compiler wird meckern wenn nötig :D

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „DTF“ ()

    Naja, wenn mann die Datein geladen hat und das Spiel über die exe startet, (oder über den Launcher die exe startet) öffnet sich sowieso Steam und überprüft das Spiel selbst. (Wenn man das Spiel nicht gekauft hat, kann man es sowie so nicht spielen)
    Und die modifizierten datein/plugins kann man sich ja auch einzeln laden aus dem internet bzw. mod seiten (bsp. nexusmod).
    So ist es nur 1 Download und fertig.

    dann werd ich mal weiter googeln wie das mit dem String downloaden geht
    Mir fällt das gerade noch was ein. Vergess ich immer wieder.

    learn.microsoft.com/de-de/dotn…et.webclient?view=net-8.0
    Es wird nicht empfohlen, die WebClient -Klasse für die Neuentwicklung zu verwenden. Verwenden Sie stattdessen die System.Net.Http.HttpClient -Klasse.


    erwieder schrieb:

    dann werd ich mal weiter googeln wie das mit dem String downloaden geht



    Klicks du dort auf den Link zu dem was nun empfohlen wird zu verwenden, findest du dort sogar ein Beispiel.

    Aber ernsthaft nimm nUpdate. Egalob Steam die EXE verifiziert oder nicht, wurde sie ausgetauscht und gestartet is A-Karte. Da bringt auch kein SSL/TLS was, ARP-Spoofing/Poissoning + ssltrip, wenn das netzwerk keine Sicherung gegen solche Attacken hat und ein Bösewicht ist im selben Netzwerk, sind deine user im ernstfall SCHUTZLOS ausgeliefert.
    Zitat von mir 2023:
    Was interessiert mich Rechtschreibung? Der Compiler wird meckern wenn nötig :D

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „DTF“ ()

    erwieder schrieb:

    (also alles was in xyz.de/datein/ordner/ ist)

    Warum möchtest du denn, dass deine Anwendung in irgendwelche Ordner schaut? Jeder kann doch die URLs mitsniffen.

    erwieder schrieb:

    Viren sollten nicht da sein, da die files auf meinem root liegen.

    Mit genau der Einstellung kommen auch milliardenschwere Firmen zu Fall. Hast du eine ausreichende Prüfung?

    erwieder schrieb:

    ich kann es auch machen das er die zip datei lädt, aber dann müsste man das ja nach dem download entpacken was blödsin ist.

    Nö, warum? Du lädst die Zip-Datei per Stream herunter und schiebst das direkt in den nächsten Stream, wie ein Pipe.

    HTTP -> { unzip -> file }

    DTF schrieb:

    Wiso blödsinn? Ich liefer eher eine ZIP als wie 2 TXT Dateien aus.

    Würde ich allerdings genau so machen. Zwar nicht als Zip, sondern als Tar, aber immer in ein Archiv - am besten mit Komprimierung.
    Hier hat Tar den Vorteil, dass es vernünftig Dateiberechtigungen speichern kann. Zip hat da ein paar Schwachstellen.

    DTF schrieb:

    Wobei da fällt mir doch noch was ein, Wenn du auf dem Webserver DirectoryListing erlaubst für diesen Ordner spielt er eine HTML Datei aus(diese Index Of/ Seite)wenn du die URL des Ordners nutzt, wie die aussieht kannst du beeinflussen, so musst du nur noch die Dateinamen parsen.

    Würde ich gar nicht so machen, ehrlich gesagt.
    Eben eine Route einrichten, bspw. GET /games/foobar?ver=1.0 und dementsprechend OTF ein Archiv bauen und rausschieben, als Content-Stream.

    erwieder schrieb:

    ftp user einrichten ect. kann ich das ist nicht das problem.

    Den Gedanken an FTP würde ich ganz schnell wieder verlieren. FTP ist nicht sicher und sollte auch nicht mehr verwendet werden, mMn. Wenn, dann SFTP/SCP. Aber nimm einfach HTTPS und jut.
    Das bisschen Backend bauen geht doch schnell...

    erwieder schrieb:

    (datenmenge ist auch egal. hab 1 Gb/s anbindung und unbegrenzt Traffic und Starke System Ressourcen)

    Und auch das ist egal. Wenn du keinen Load Balancer davorgeschaltet hast und X-tausend Leute immer einzelne Requests starten müssen, wird der Server auf Dauer unzufrieden sein.
    Meine Server (ich habe ein kleines Hostingunternehmen) sind sogar so abgehärtet, dass X Anfragen innerhalb von {Zeitraum} blockiert werden (natürlich immer von einzelnen IPs).
    Nicht, weil die Server nicht leistungsstark sind, sondern weil ich sicherstellen will, dass die Antwortzeiten immer im Rahmen bleiben.

    erwieder schrieb:

    Sollte einer die url zu dem downloadpfad finden und sie eingeben wird er direkt zur homepage weiter geleitet, die kann so keiner auf rufen

    Und wie stellst du das sicher? Dem Server ist doch völlig egal, woher die Anfrage kommt. Wenn du jetzt einfach die Unterscheidung hast, zwischen GET/POST, dann wird das ziemlich schnell auffliegen.

    erwieder schrieb:

    Auch wenn er es mit den datein probiert. bsp. xyz.de/datein/ordner/start.exe (oder compars.dll/ version ...) erfolgt eine weiterleitung zur homepage.

    Gleiche Frage wie oben. Wie stellst du das sicher?

    erwieder schrieb:

    Ich kenn es halt von einem Spiel, da speichere ich den Launcher einfach in einen Ordner, starte ihn und wenn ich auf Download drücke, lädt er die Datein runter.

    Das istbei zahlreichen Minecraft-Launchern so. Wobei der Großteil auch von professionellen Teams gewartet wird.

    erwieder schrieb:

    DirectoryListing könnte ich dür den Ordner erlauben das ist kein Problem.

    Auch hier: würde ich nicht machen. Geht niemanden was an, was auf deinem Server liegt. Sobald er drauf klickt, kann er die Dateien herunterladen und Blödsinn anstellen.

    DTF schrieb:

    Aber sobald eine EXE oder DLL ins Spiel kommt(was ausführbares/kompiliertes), kann es gefährlich werden für deine User und somit auch für dich.

    Richtig. Genau das hier!Das ist exorbitant wichtig, dass du hier vernünftig an die Sache herangehst. Ist ist fast schon trivial, dass jemand eine Schwachstelle ausnutzt, oder ein MITM ausführt und damit dich und potenziell (viel schlimmer noch) deine User angreift.

    DTF schrieb:

    Du wirst wenn was passiert und bewiesen ist das du Schuld hast zur Rechenschaft gezogen.

    Das wohl eher nicht. Je nachdem, was die Lizenz sagt, ist die Wahrscheinlichkeit relativ gering. Dennoch müsste das ein persönliches Ziel sein, dass das Programm so sicher wie möglich ist - nach bestem Wissen und Gewissen.
    Bevor mich einer falsch versteht: es ist unwahrscheinlich, aber nicht unmöglich. Je nachdem, ob fahrlässig oder sog. vorsätzlich gehandelt wurde.
    Im Zweifel frag einen Anwalt.

    DTF schrieb:

    Das DirectoryListing ist ja nicht das Problem, kann es aber vereinfachen, damit man nicht immer selbst die Urls anpassen muss, falls mal eine Datei wegfällt/hinzukommt Dateiname geändert wurde ect... pp.

    Deswegen würde ich wie o.g. Routen verwenden.

    erwieder schrieb:

    Naja, wenn mann die Datein geladen hat und das Spiel über die exe startet, (oder über den Launcher die exe startet) öffnet sich sowieso Steam und überprüft das Spiel selbst.

    Der Steam-Client prüft nicht auf Viren! Valve ist keine Cybersecurityfirma.

    erwieder schrieb:

    Und die modifizierten datein/plugins kann man sich ja auch einzeln laden aus dem internet bzw. mod seiten (bsp. nexusmod).

    Und da agiert jeder eigenverantwortlich. Natürlich tun sie das auch, wenn sie deine Software verwenden, aber wenn deine Software plötzlich dafür bekannt wird, dass Viren verteilt werden, ist der Ruf der Software direkt hin.
    Und du hast (wahrscheinlich) nicht die finanziellen Mittel, um eine Horde Anzeigen abzuwehren.

    Eine weitere Sache habe ich noch. Hast du überhaupt die Erlaubnis, diese Dateien bei dir zu hosten?
    Du hast nicht das Urheberrecht für die Dateien. Du solltest dir darüber im Klaren sein, dass du damit zumindest richtig auf die Nase fliegen kannst.
    Quellcode lizensiert unter CC by SA 2.0 (Creative Commons Share-Alike)

    Meine Firma: Procyon Systems
    Meine Privatwebseite: SimonC.eu

    Bitte nicht wundern, wenn meine Aktivitäten im Forum etwas langsamer sind, ich baue gerade mein Nebengewerbe zum Vollgewerbe aus.
    Ich versuche auf euch zurückzukommen :)

    siycah schrieb:

    Der Steam-Client prüft nicht auf Viren! Valve ist keine Cybersecurityfirma.


    Ich erinnere mich gerade an die Sache mit dem CCleaner, CCleaner gehört doch zu AVAST. Trotzdem wurde Malware mit dem CCleaner wegen eines Hacks verteilt, das fiel nach so einiger Zeit auf, aber entdeckt wurde es durch andere. Tja, da hatten die wohl AVAST-Snakeoil genutzt.
    Zitat von mir 2023:
    Was interessiert mich Rechtschreibung? Der Compiler wird meckern wenn nötig :D

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „DTF“ ()

    DTF schrieb:

    Trotzdem wurde Malware mit dem CCleaner wegen eines Hacks verteilt

    Es gibt noch sehr viel mehr Fälle, wo sowas passiert. Einfach wegen Unachtsamkeit/Ignoranz.

    Ein Grund mehr, warum Software von mir niemals Dateien aus dem Internet ausführen/herunterladen werden. Das macht der User schön selbst.
    Selbst wenn es von meinen Servern kommt, dann geht das immer noch durch mindestens drei AV-/Filter-Schichten.
    Lieber zeige ich meinem User ein 404 an, weil eine Datei plötzlich als potenziell gefährlich erkannt wurde, als dass ich irgendwelche komischen Sachen verteile.
    Quellcode lizensiert unter CC by SA 2.0 (Creative Commons Share-Alike)

    Meine Firma: Procyon Systems
    Meine Privatwebseite: SimonC.eu

    Bitte nicht wundern, wenn meine Aktivitäten im Forum etwas langsamer sind, ich baue gerade mein Nebengewerbe zum Vollgewerbe aus.
    Ich versuche auf euch zurückzukommen :)