Machbarkeit & Ideen (Screeps in Autoit umsetzen)?

  • Hi,

    bin eben auf das Game hier gestoßen (http://store.steampowered.com/app/464350) und finde die Idee dahinter sehr cool und macht auch Laune. Kurz zusammengefasst muss man jede Aktion welche im Game ausgeführt werden soll vorher selbst in javascript programmieren. Das ganze läuft auf einem zentralen Server und wird dort tickweise dann ausgeführt.

    Ich bin jetzt am überlegen ob man sowas nicht auch mit Autoit, sprich Autoitcode statt javascript, machen könnte. Als großes Problem sehe ich allerdings das Problem von Usern erstellen Autoitcode severseitig Tickweise auszuführen, ganz von der Sicherheitsproblematik die dabei entsteht.

    Hat vielleicht jemand eine idee/Ansatz wie sowas umsetzbar wäre?

    Edit: Andere Ansatz wäre natürlich man schreibt nur das Backend (in dem Fall dann wohl eher nicht in Autoit sonder C++/golang/php) mit entsprechender API schreibt und das Forntend bzw. die Programmlogik dann dem User überlässt. In dem Fall würde das ganze halt nur laufen wenn der User online ist. Befehle die dann über die Api geschickt werden werden dann zum nächsten Tick im Backend verarbeitet.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Fakt wäre doch, dass ein Serverseitiges Script laufen muss. Kann man da keine Abfrage integrieren der den Usercode prüft? also ob da befehle drin stehen, die der Sicherheit zuwider wirken?
    wie zb Run, shellexecute, exec, filedelete usw... all diese würde ich blacklisten, dann sollte der Sicherheit doch eigentlich genüge getan sein?!

    Edit:
    Oder man erstellt eine Whitelist mit zulässigen Befehlen, die der User dann nutzen kann. Das sollte sogar noch sicherer sein.

  • Autoit bietet keine Codeveränderung zur Laufzeit. Also müsste es eine Art Template geben in das vom Server der vom User geschriebene Code eingefügt wird, sofern der Code dann lauffähig ist kann kompiliert werden und eine exe als eigener Prozess (der mit dem Serverskript kommuniziert) ausgeführt werden. Ich glaube da wird man sehr viel Overhead haben...

    M