Seite 6 von 13 ErsteErste ... 2345678910 ... LetzteLetzte
Ergebnis 76 bis 90 von 193

Thema: SDK-Experimente

  1. #76
    Registrierter Benutzer
    Registriert seit
    21.03.12
    Beiträge
    22.449
    Also irgendwas hab ich grad grundlegend falsch gemacht: die Runden dauern länger als vorher^^

  2. #77
    Registrierter Benutzer
    Registriert seit
    21.03.12
    Beiträge
    22.449
    Pie, Thorgal und wer sonst noch nen Plan davon hat: Könnt ihr euch irgendeine Abbildung der Python-Events auf xml-Dateien vorstellen?

  3. #78
    PAE.Macht.Antike! Avatar von Pie
    Registriert seit
    25.01.08
    Ort
    Noricum
    Beiträge
    16.347
    Häh? Du meinst, du willst komplett weg von den Event-Pythonfunktionen von Events, dessen Überprüfungen und Auswirkungen über die normale EventInfo-XML nicht einstellbar sind?
    Pie's Ancient Europe (PAE)
    Erlebe mit dieser CIV IV Mod(ifikation) hautnah das Zeitalter der Antike bis ins letzte Detail!
    Mit bahnbrechenden Erweiterungen und vielen ein- und erstmaligen Features.


    ... im Übrigen bin ich der Meinung, dass Karthago wieder aufgebaut werden muss!

  4. #79
    Registrierter Benutzer
    Registriert seit
    21.03.12
    Beiträge
    22.449
    Ich überleg nur, obs sinnvoll möglich wär. Am besten über ne Erweiterung der Event.xml.

  5. #80
    PAE.Macht.Antike! Avatar von Pie
    Registriert seit
    25.01.08
    Ort
    Noricum
    Beiträge
    16.347
    Als modmod kannst du machen was du willst

    Ich glaube, das Python selbst gar nicht so arg langsam ist. Nur die CallBackDefines sind extrem langsam, wenn die aktiviert sind. Und auch erst da greift der K-Mod. Denn ohne PythonCallbacks, aber mit K-Mod ist K-Mod viel langsamer als PAE. Ein Mod mit PythonCallbacks is extrem langsam, was dann durch K-Mod verbessert wird.

    Die Chance bei den Events werden ja sowieso über SDK gewürfelt. Erst wenn so ein Event aktiv ist, greift es auf die Infos und auch auf die Pythonfunktionen, wenn da welche existieren. Wenn dieses Event oder Quest erfüllt ist, wird das ganze Event ja nicht wieder beachtet.

    ZB: Typisch für so ein BTS-Python-Event (eigentlich Quest) ist der Heilige Berg. Irgendwie isses schwierig, per XML Gebäude zu definieren, die er absuchen muss, ob die Quest weitergeht. Dann noch die Gewichtung der Gebäude und die gesuchte Anzahl! Also wie gesagt, da ist mit Python viel mehr zu schaffen. Und andersrum: je weniger XML-Einträge überprüft werden müssen, desto schneller auch SDK.

    Ich glaub, wegen den paar pythonevents ist es nicht sonderlich wirkungsvoll.
    Pie's Ancient Europe (PAE)
    Erlebe mit dieser CIV IV Mod(ifikation) hautnah das Zeitalter der Antike bis ins letzte Detail!
    Mit bahnbrechenden Erweiterungen und vielen ein- und erstmaligen Features.


    ... im Übrigen bin ich der Meinung, dass Karthago wieder aufgebaut werden muss!

  6. #81
    Registrierter Benutzer
    Registriert seit
    21.03.12
    Beiträge
    22.449
    Alles klar, dann lass ich die wie gehabt. Ich dachte, da wären die Trigger und alles auch in Python geschrieben.

    Was ist der K-Mod? PythonCallback heißt, wir geben ne Berechnung an die dll ab und warten auf Rückmeldung?

  7. #82
    Registrierter Benutzer Avatar von alpha civ
    Registriert seit
    22.07.06
    Beiträge
    16.757
    Zitat Zitat von Flunky Beitrag anzeigen
    PythonCallback heißt, wir geben ne Berechnung an die dll ab und warten auf Rückmeldung?
    Nein. Es wird die Python-Funktion innerhalb der DLL aufgerufen.

    Der Ablauf ist i.a. so:

    C++ -Objekte, die der Python-Funktion übergeben werden sollen, müssen vorher in Python-Objekte konvertiert werden.
    Diese Objekte werden dann der Funktion übergeben.
    Das Ergebnis dieser Funktion (sofern vorhanden), ist ein Python-Objekt, welches in in C++ -Objekt konvertiert werden muss.

  8. #83
    Registrierter Benutzer
    Registriert seit
    21.03.12
    Beiträge
    22.449
    Neues von Firaxis. Heute: Python. Wir sollten lieber sichergehen, dass playerX auch wirklich nicht null ist.
    Code:
    if playerX and playerX and unitX and playerY:


    Gemeint war wohl:
    Code:
    if playerX and playerYand unitX and unitY:

  9. #84
    Registrierter Benutzer
    Registriert seit
    21.03.12
    Beiträge
    22.449
    Zitat Zitat von alpha civ Beitrag anzeigen
    Nein. Es wird die Python-Funktion innerhalb der DLL aufgerufen.

    Der Ablauf ist i.a. so:

    C++ -Objekte, die der Python-Funktion übergeben werden sollen, müssen vorher in Python-Objekte konvertiert werden.
    Diese Objekte werden dann der Funktion übergeben.
    Das Ergebnis dieser Funktion (sofern vorhanden), ist ein Python-Objekt, welches in in C++ -Objekt konvertiert werden muss.
    Warum sollte ich das tun? Wenn ich doch eh schon an der dll rumschraube, kann ich da doch alles drin implementieren. Und was ich davon zusätzlich im Python brauch halt sichtbar machen.

  10. #85
    Registrierter Benutzer Avatar von alpha civ
    Registriert seit
    22.07.06
    Beiträge
    16.757
    Firaxis:

    Zitat Zitat von Flunky Beitrag anzeigen
    Warum sollte ich das tun? Wenn ich doch eh schon an der dll rumschraube, kann ich da doch alles drin implementieren. Und was ich davon zusätzlich im Python brauch halt sichtbar machen.
    Python-Code ist einfacher, kürzer und sauberer als C++ -Code. Und Python-Code muss man bei Änderungen nicht neu kompilieren, was schon mal ein Vorteil ist.
    Sofern man Python keine laufzeitintensiven Dinge anstellt ist Python vorzuziehen.
    Bevor du was in die DLL verlegst, solltest du überlegen, ob du wirklich eine spürbare Verbesserung erzielst.
    Geändert von alpha civ (01. April 2014 um 14:51 Uhr)

  11. #86
    Registrierter Benutzer
    Registriert seit
    21.03.12
    Beiträge
    22.449
    Sauberer? Ich mag ja Typsicherheit^^

  12. #87
    Registrierter Benutzer Avatar von alpha civ
    Registriert seit
    22.07.06
    Beiträge
    16.757
    Zitat Zitat von Flunky Beitrag anzeigen
    Sauberer? Ich mag ja Typsicherheit^^
    Typsicherheit ist auch gut. Ist nur immer die Frage, wie die Sprache das statische Typsystem einführt. Bei Java hat man nur immer das Gefühl, dass das Typsystem nur für den Kompiler gut ist.
    In C++ geht es noch, vorallem mit dem C++ 11 -Standard (auto).
    Dennoch, beide Sprachen (C++ und Java) haben Mist bezüglich generischen Containern gemacht. (Aber das gehört nicht hierher...)


    Was willst du eigentlich in die DLL verschieben? Die ganzen Callbacks? (Nicht den EventManager, oder?)
    Die Callbacks sind da wirklich Kandidaten fürs DLL.

  13. #88
    ε•ω=1 Avatar von Ramkhamhaeng
    Registriert seit
    19.07.10
    Ort
    Aralkum
    Beiträge
    9.896
    Viele Pythoncalls sind auch extra für die Mod-Erstellung eingebaut worden. Es war ja ein Riesenvorteil, wenn man sich nur mit XML+Python auskennen musste.

  14. #89
    Registrierter Benutzer
    Registriert seit
    21.03.12
    Beiträge
    22.449
    Im Moment schieb ich ein bissl Eventmanagerzeug. Sowas wie Versorgung ins XML integrieren, Flucht als reguläres Kampfergebnis...

    KI wär auch noch so ne Sache, wobei da erstmal ne bessere KI rein sollte, bevor PAE-spezifische Sachen drankommen.

    Ich hab mal den aktuellen Stand der Dinge hochgeladen. Da ist relativ viel mit reingepackt, weil ich grad nemmer weiß, an welchen xml- und Pythondateien ich nu wirklich was geändert hab. Vorgehen ist ja bekannt, PAE-Ordner sichern und dann einfach in Assets schmeißen.
    Angehängte Dateien Angehängte Dateien
    Geändert von Flunky (01. April 2014 um 15:16 Uhr)

  15. #90
    Registrierter Benutzer Avatar von alpha civ
    Registriert seit
    22.07.06
    Beiträge
    16.757
    Zitat Zitat von Ramkhamhaeng Beitrag anzeigen
    Viele Pythoncalls sind auch extra für die Mod-Erstellung eingebaut worden. Es war ja ein Riesenvorteil, wenn man sich nur mit XML+Python auskennen musste.
    Es wäre nur auch gut gewesen, wenn man wirklich Python beherrschen würde. Z.B. range statt xrange in for-Schleifen zu verwenden macht den Code nur unnötig langsamer, weil bei range erst Listen erzeugt werden, bei xrange hingegen nicht. (Was aber auch keinen Unterschied macht, wenn der Zahlenbereich klein ist.)

Seite 6 von 13 ErsteErste ... 2345678910 ... LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •