Scripten lernen? Wie? (rund um die KI)

  • Vanilla

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

  • Scripten lernen? Wie? (rund um die KI)

    Guten Tag, ich bin neu hier und nachdem ich schon seit einer Weile einen ACC hier habe, wende ich mich an euch mit der Intention das Scripten im Editor zu erlernen.
    KI, Scripts, Trigger, Waypoints, Asset- und Trupp-Placement; damit habe ich bereits rudimentäre Erfahrung. Youtube Tutorials haben mir weiter geholfen. Trotzdem tue ich mir schwer zu begreifen, wie das Scripten funktioniert und wie ich eine gewisse Vorstellung in die Praxis umsetzen kann. Insbesondere interessiert mich das KI verhalten gezielt zu nutzen und zu modifizieren.

    Bis jetzt habe ich zwei Script Anwendungen gelernt.
    Trup A rückt vor, Trup B gibt unterdrückungsfeuer > Trup A gibt unterdrückungsfeuer und Trup B rückt vor

    {
    _x doSuppressiveFire variableName;
    }
    forEach units group this;

    dazu zwei Trupps (A, B) mit eigenen Waypoints, und asymmetrischer Waypointactivation.
    (Edit: youtube.com/watch?v=6J1IxaBQijo&t)

    und:
    Welle2Gruppe1 spawnt, wenn Welle1Gruppe1 tot ist

    ({ alive _x } count units Wave1Group1 == 0)&&({ alive _x } count units Wave1Group2 == 0)&&({ alive _x } count units Wave1Group3 == 0)
    (Edit: youtube.com/watch?v=Vgjly3ejI3Y&t)

    Ich bin so weit, dass ich verstehe, was gemeint ist, so das ich Anpassungen vornehmen kann, aber wie ich die Schlussfolgerungen ziehe, um selbständig Scripte zu schreiben, ist mir noch ein Rätsel.
    community.bistudio.com/wiki/Category:Scripting_Topics <<< momentan lese ich mir nach und nach alles durch. Aber das meiste verstehe ich nicht und den Rest vergesse ich, bis ich dahinter gestiegen bin. Ich bin etwas planlos wie ich an das Thema Scripte herangehen soll.

    Dieser Beitrag wurde bereits 7 mal editiert, zuletzt von Nostra Damus ()

  • Grundsätzlich hilft es große Projekte in ihre kleinen Unteraufgaben zu zerlegen und einzeln abzuarbeiten. Bspw. wäre Dein Suppressive-Fire eine Funktion, die du präparierst um sie bei passender Condition aus einer anderen Funktion zu callen.

    Bei KI-Scripten bietet sich eine Kontrollschleife an, die regelmäßig Conditions abfragt und davon abhängig Funktionen ausführt. Nötige Variablen kann man bspw. an der Gruppe speichern (_group setVariable ["nostradamus_isSuppressed", true]).

    Es hilft auch ungemein sich verschiedene KI-Scripte anzusehen und zu schauen, wie andere das gelöst haben. Es gibt ja immer viele Wege nach Rom. Manche stehen darauf, alles in einer riesigen SQF abzufeiern, andere auf cfgFunctions, Fortgeschrittene nutzen FSM oder eigene Statemachines.
  • nomisum schrieb:

    Es hilft auch ungemein sich verschiedene KI-Scripte anzusehen und zu schauen, wie andere das gelöst haben.
    Gibt es hierzu ein Index mit praktischen Beispielen in der Anwendung?

    Ohne Anleitung wäre ich nie auf die Gekommen
    {
    _x doSuppressiveFire variableName;
    }
    dass das hier taktisch Anwendbar wäre.

    Smart Tactics habe ich auch schon entdeckt. Er ist aber etwas speziell und sehr theoretisch. Wird sicherlich mit mehr Erfahrung interessanter und praktischer Anwendung einfacher. Oder ist es ratsam, sich das als Anfänger direkt vorzunehmen?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Nostra Damus ()

  • Nostra Damus schrieb:

    Smart Tactics habe ich auch schon entdeckt. Er ist aber etwas speziell und sehr theoretisch. Wird sicherlich mit mehr Erfahrung interessanter und praktischer Anwendung einfacher. Oder ist es ratsam, sich das als Anfänger direkt vorzunehmen?
    man sollte erst generell wissen wie man mit einer sprache umgeht bevor man sich selbst den kopf darüber zerbricht. also ja zuerst die videos von Smart Tactics anschauen und dann selbst daraus etwas machen. Weil vor dem spaß kommt immer erst die Theory zu mindest sollte das so sein. vorallem für totale anfänger
    Wer Rechtschreibfehler findet darf sie behalten
    ACE3 Core Developer
    CBA A3 Developer
    Developer of Lambs Danger, Dynasound, Enhance SoundScape, Immerse, Suppress and Align
  • Man muss im persönlichen Vorgehen immer ein bisschen differenzieren. Wenn du schon programmieren und technische Doku lesen kannst, dann kann man durchaus so vorgehen, wie du es dir vorstellst.
    • Kleines Projekt suchen
    • Mit Doku und Tutorials umsetzten
    • Dabei wichtige Dinge lernen
    Wenn du nicht programmieren kannst und Dinge wie Variablen, Schleifen, Bedingungen, Eventhandler, Funktionen etc. für die böhmische Dörfer sind, dann solltest du erstmal die Grundlagen erlernen. Ansonsten wirst du, wie du bereits sagtest, nicht auf die Lösungswege für deine Probleme kommen, da du die Werkzeuge dafür nicht kennst. In den Videos habe ich in der Regel auch praktische Beispiele eingebaut, in denen das Gelernte angewendet wird.

    Natürlich lernt jeder anders und man kann sich viel bei Beispielen abschauen und dort durch das Ändern von einigen Zeilen vielleicht schnell gewünschte Effekte erreichen. Aber ich behaupte mal, dass man dann in der Regel nicht wirklich versteht, was genau passiert und das kann gerade in Arma gefährlich sein. Durch ein unschönes Script kannst du schnell die Performance des Servers oder der Clients killen, besonders wenn du mit KI rumhantieren willst und eventuell regelmäßig Dinge abfragen oder ändern willst ;)

    Das schöne ist, was du in den Videos lernst kannst du in vielen Teilen auch auf andere Sprachen übertragen, sodass dir die nächste Programmiersprache gleich leichter von der Hand geht ;)

    TL;DR -> Programmieren ist ein Handwerk wie Schreinern, wer darin gut werden möchte muss Zeit investieren und klein anfangen. Niemand zimmert auf Anhieb eine schöne Schrankwand mit Schiebetür.
  • Auch ich bin totaler Neueinsteiger, schaue stundenlang YT-Videos und schaue mir Smart Tactics Tutorial jetzt zum 3. (dritten) Mal in voller Länge an!
    Leider denke ich mittlerweile, ich kann es mir auch 10 X anschauen, ich werde IMMER WIEDER auf Probleme stoßen mit denen ich vorher nicht gerechnet habe und für Die ich auch keine Lösung finde!
    (Siehe auch meine Beiträge weiter unten!)

    @Hoegnison - Du schreibst "...ist ein Handwerk..." und "...Niemand zimmert auf Anhieb eine schöne Schrankwand mit Schiebetür..."
    Du hast Eines vergessen: "TALENT!"
    Wer kein Talent zum Schreinern/Programmieren hat wird NIEMALS eine Schrankwand/ein script produzieren können!
    Und ich rede hier von mir, denn ich habe langsam das Gefühl daß ich meine Zeit und meine Mühe in etwas investiere daß ich niemals verstehe... Auch wenn ich mir Smart Tactics Tutorial 100X anschaue! ;(
  • Gude,

    mach dir keinen Kopf, es ist noch kein Meister vom Himmel gefallen. Auch ich stoße nach mehr als 10 Jahren Programmieren immer wieder auf Probleme, an denen ich mir die Zähne ausbeiße.
    Was hilft ist über deine Probleme und Fragen zu sprechen ;)
    Mit Talent hat das nicht viel zu tun. Klar gibt es überall jemanden, der besser ist, aber die Grundlagen kann eigentlich jeder lernen :)

    Vielleicht fängst du mal an deine Probleme, auf die du immer wieder stößt als konkrete Fragen zu verschriftlichen, dann kann man dir vielleicht direkt helfen!

    Grüße
    Hoegi
  • was @Hoegnison sagt kann ich hier nur zu stimmen. Das auf schreiben oder mit jemanden darüber Reden hilft einem selbst weil man selbst darüber anders nach denkt als wenn man es sich selbst nur fragt(in der Entwicklung auch Rubber duck Debugging genannt), und es hilft vor allem auch der Person die helfen will, weil diese dann auch alle wichtigen Informationen schon hat und nicht erst 10 mal nach frage muss oder sogar raten muss
    ich selbst habe da immer ein ganz gute regel.

    1. Was will ich Exakt erreichen
    2. Was ist mein aktuelles Problem
    3. Was habe ich schon probiert
    4. Wie sieht mein aktueller stand aus
    Wer Rechtschreibfehler findet darf sie behalten
    ACE3 Core Developer
    CBA A3 Developer
    Developer of Lambs Danger, Dynasound, Enhance SoundScape, Immerse, Suppress and Align
  • Nostra Damus schrieb:

    kennt ihr dafür geeignete Quellen?
    Steam Workshop?
    So gut wie jede größere Mission enthält Skripte. Allerdings sind Missionen von x-beliebigen Leuten vllt auch schlechte Lehrer. VIele wissen kaum was sie tun und produzieren den entsprechenden Code. Wenn du allerdings keine hohen Qualitäts- und/oder Performanceansprüche an deine (ersten) skripte stellst, genügt das aber wahrscheinlich tdem ^^
    Entwickler von SQDev
  • Ach shit, ich habe vergessen meinen editierten Beitrag auf absenden zu klicken. xD
    Ich habe mir eine Mission vom Workshop geladen, habe ein Scenario gestartet, abgespeichert und beendet. Bin dann in den Ordner Arma unter Dokumente gegangen, dort in den "Steam" und "mpmission" gegangen, aber die Ordner waren leer.

    Wollte PBOmanager die Mission öffnen, damit ich sie im Editor starten kann, aber wie gesagt, konnte ich die gespeicherte Mission nirgends finden.

    Habe ich irgendwas falsch gemacht?