Seite 2 von 46 ErsteErste 12345612 ... LetzteLetzte
Ergebnis 16 bis 30 von 686

Thema: Mod für PB-Spiele: PB Mod_v1

  1. #16
    Registrierter Benutzer Avatar von Ramkhamhaeng
    Registriert seit
    19.07.10
    Ort
    Aralkum
    Beiträge
    8.451
    Danke fürs Feedback und die Anregungen. Vor allem der Kommentar zum Mitsniffen der Netzwerkpakete, um eine Lösung für das Upload-Problem zu finden. Die Idee ein Logout-Paket zu senden finde ich vielversprechend :-)

    Zitat Zitat von Zulan Beitrag anzeigen
    Fuer den Python Server im PB wuerde sich denke ich ein leichtgewichtiges REST framework gut eigenen. Z.B. cherrypy sieht sehr vielversprechend aus. Da bekommt man dann auch vernuenftige Authentifikation, SSL, Json Decoding, Logging und so gratis dazu. Ich denke auch das liesse sich leichter erweitern. Man muss nur irgendwie das cherrypy in den pitboss reinpruegeln.
    Ja, CherryPy macht einen guten Eindruck, aber wäre eigentlich zu viel des guten. Damit könnte man sogar gleich das Webfrontent in die Mod direkt einbauen. ( Ich bin allerdings dem Prinzip gefolgt, den PB Server als rohes Ei zu behandeln und an der Codebasis von Civ mit der Mod möglichst wenig Änderungen vorzunehmen. Daher der Split von Mod und Webfrontent )
    Da ich eigentlich nur die simple Funktionalität "Gib mir einen Befehl im Json-Format" brauche, würde ich das aber derzeit nicht ändern wollen. Das liegt auch daran, dass ich es schwierig finde neue Pakete in die Python-Codebasis von Civ einzubinden.


    PHP selbst bringt session handling mit um Daten zwischen verschiedenen Requests zu behalten. Das ist bequemer als das manuelle hantieren mit den cookies.

    Gerade mit den ganzen Listen und Verlinkung wuerde es sich sicher anbieten eine der zahlosen PHP template engines zu verwenden. Um die Logik von der HTML-Erzeugung zu trennen.
    Sessions Templates
    Die Session-Verwaltung von PHP war bis vor wenigen Versionen der absolute Mist! Hab gelesen, dass es jetzt besser sein soll, aber so schlimm ist die Verwaltung von Cookies auch nicht.
    Aber ich habe hier noch ein anderes kleines Baby rumliegen, was ich hier noch einbauen könnte. Dann sind auch Templates und Sessions mit an Bord

    Kernelemente für einen erfolgreichen Abschluss der Mod sind meiner Meinung nach aber zwei andere Dinge:
    1. Graphische Qualität der Ausgabe muss verbessert werden. Das Auge surft mit oder so. Sah man auch hier im Thread. Viel Feedback kam, nachdem ich diesen Screenshot postete
    2. Umstieg auf ein echtes DB-System. Da wärst du mir wahrscheinlich eine große Hilfe, wenn du die DB-Zugriffe von SQLite in MariaDB oder MySQL konvertierst. Das hatte ich nicht gemacht, weil ich ursprünglich plante, dass die PB-Serverbetreiber ihre Spiele dezentral verwalten sollten und sie mit SQLite eine sehr kleine Hürde bei der Konfiguration des Systems haben. Aber wenn am Ende eine zentrale Stelle die Verwaltung übernimmt fällt die DB-Konfiguration ja für die Nutzer weg. Bei einer zentralen Verwaltung müsten aber auch alle Dinge, die derzeit direkt im Qullcode konifguriert werden über eine Datenbank gemanaged werden. Das könnte aber wirklich übertrieben sein, denn am Ende geht es nur um eine handvoll Spiele(r)...
    Gibt es eigentlich schon Planungen für's 10-Jährige Jubiläum von Civ4 im nächsten Jahr?


    Haettest du Lust das Projekt auf Github zu stellen, dann koennte man das kollaborativ angehen. Ich koennte mir vorstellen, dass sich da einige finden die was beitragen wollen.

    Also, ich wills auch nicht uebertreiben - fuer einen Prototyp sieht die Codestruktur wirklich sehr gut aus!
    Ja, denke ich drüber nach. Wenns anonym möglich wäre ohne einen neuen Account anzulegen hätte ichs auch schon gemacht

  2. #17
    Registrierter Benutzer
    Registriert seit
    08.04.04
    Beiträge
    4.953
    Zitat Zitat von Ramkhamhaeng

    Das Problem der langen Ladezeiten ist ein Folgeproblem des Upload-Bugs. Wegen dem Bug hat es sich für die Serverbetreiber als besser herausgestellt die Geschwindigkeit auf "Modem" zu stellen..
    Falsch. Bei mir war der nutzen dieser Maßnahm = 0
    PB-Hosting:
    • ACHTUNG NEUE DNS Adresse: civ4.ddns.net
    • Kontakt bei Problemen PM an Jesper Portus oder borgg
    • Abstürze Egal ob beim PB-Login oder während des Spiels - bitte via PM mitteilen!
    • Du willst Spenden? Jede Form von Spende ist freiwillig. Kontodaten gibt es ggf. via PM. Ich werde den Server auch ohne Spenden weiter betreiben


  3. #18
    Registrierter Benutzer Avatar von Ramkhamhaeng
    Registriert seit
    19.07.10
    Ort
    Aralkum
    Beiträge
    8.451
    Gut zu wissen, dass das nur Schlangenöl ist.

    -----

    Ich schraube derzeit noch an der Weboberfläche. Am WE kriege ich das vllt. fertig.
    @Linux-User: Zumindest ich kann die aktuelle Version nicht als Spieler starten, weil das Spiel schon im Menü mit einem CtD endet. Habe den Verdacht, dass sich ein Nullpointer eingeschummelt hat, der unter Windows aber nicht stört.

  4. #19
    Say My Name Avatar von Zulan
    Registriert seit
    13.03.08
    Beiträge
    8.845
    Zitat Zitat von Ramkhamhaeng Beitrag anzeigen
    Gut zu wissen, dass das nur Schlangenöl ist.

    -----

    Ich schraube derzeit noch an der Weboberfläche. Am WE kriege ich das vllt. fertig.
    @Linux-User: Zumindest ich kann die aktuelle Version nicht als Spieler starten, weil das Spiel schon im Menü mit einem CtD endet. Habe den Verdacht, dass sich ein Nullpointer eingeschummelt hat, der unter Windows aber nicht stört.
    Also als user geht bei mir der Mod sogar (bis zu einfaches MP starten getestet).

    Aber mein wine PB funktioniert noch nicht. Ohne mod haengt das Fenster nach der Auswahl "direct ip/lan/internet". Also der "next"-Knopf bleibt eingedrueckt, sonst passiert nix...

    Und mit dem mod kommt noch frueher, direkt nach Auswahl des Mod ein Fenster: "Mod Error" "Mods\PB MOD Package\ \ is an invalid mod directory, ignoring". Ich dachte erst evtl was mit den Leerzeichen, aber bringt auch nichts die durch Punkte zu ersetzen...

    Alles komisch da ja wine/BTS sowohl mit als auch ohne Mod normale laeuft...

    Zum Upload-Bug gibts hier noch etwas: http://forums.civfanatics.com/showthread.php?t=266236, aber auch keine Loesung.

  5. #20
    Registrierter Benutzer Avatar von Ramkhamhaeng
    Registriert seit
    19.07.10
    Ort
    Aralkum
    Beiträge
    8.451
    Zitat Zitat von Zulan Beitrag anzeigen
    Aber mein wine PB funktioniert noch nicht. Ohne mod haengt das Fenster nach der Auswahl "direct ip/lan/internet". Also der "next"-Knopf bleibt eingedrueckt, sonst passiert nix...
    Wie lange hast du auf die Reaktion des Fensters gewartet? Ich tippe darauf, dass es bei dir doch geht. Seit ein paar Wochen muss man an der Stelle sehr lange auf ein Timeout warten. Könnte mit der Abschaltung von Gamespy zusammen hängen, was ich aber nicht weiter untersucht habe (man könnte die Webanfragen mitsniffen, um es zu testen.)

    Und mit dem mod kommt noch frueher, direkt nach Auswahl des Mod ein Fenster: "Mod Error" "Mods\PB MOD Package\ \ is an invalid mod directory, ignoring". Ich dachte erst evtl was mit den Leerzeichen, aber bringt auch nichts die durch Punkte zu ersetzen...

    Alles komisch da ja wine/BTS sowohl mit als auch ohne Mod normale laeuft...
    Die Eingabe der Parameter ist nicht sehr robust, weil da die Syntax von Bash, Wine und Civ4 eine Rolle spielt. Und die letzte ist auch noch komplett undokumentiert und artet bei mir auch immer in lustiges raten aus
    Ich schaue morgen noch mal nach, wie man den Server in Wine zum Laden der Mod bewegt.
    Achtung, da ichs noch nicht im Readme ergänzt habe warne ich nochmal davor, dass der Altroot-Parameter beim ersten Start dafür sorgt, dass Teile des My-Games-Verzeichnis verschoben werden (und nicht kopiert!). Daher am besten vorher ein Backup vom My-Games-Verzeichnis erstellen.
    Es könnte auch Helfen die (kopierte) Civilization-Ini aus dem Altroot-Verzeichnis zu löschen. Es könnte sein, dass Nichtstandardangaben (z.B. die Sprache) einen Start behindern.

  6. #21
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    18.750
    Was direkt IP angeht, dafür war wohl bis vor einer Woche noch ein Gamespy-Server im Betrieb. Ab jetzt kann man ohne Hilfsprogramme (und Server) dritter nicht mal mehr Direkt IP spielen, wenn man mit mehr Spielern als mit Zweien spielt.

    Hatten gestern zu 4. das Problem, dass sich immer nur 2 verbinden konnten, egal bei wem. An den Ports und so konnte es nicht liegen, weil das vor einer Woche noch ging. Haben erst nach einer Recherche rausgefunden, dass ein wichtiger Server zur Koordination erst zu letzter Woche abgeschalten wurde.

    edit: Das lange Warten bei Lan ist auch bei jeden anderen Spieler von gestern gewesen, und zwar komplett unabhängig von dieser Modifikation hier.
    Geändert von rucivfan (11. August 2014 um 10:07 Uhr)

  7. #22
    Registrierter Benutzer Avatar von Ramkhamhaeng
    Registriert seit
    19.07.10
    Ort
    Aralkum
    Beiträge
    8.451
    D.h. die Rettung des Multiplayer-Modus ohne Steam könnte gerade im Pitboss liegen?! Fehlt zwar die Lobby, aber man kann mind. mit mehr als einem anderen Spieler zocken.

  8. #23
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    18.750
    Wir konnten gestern dank des Onlinedienstes Evolve noch mit Direkt IP spielen.

  9. #24
    Say My Name Avatar von Zulan
    Registriert seit
    13.03.08
    Beiträge
    8.845
    Es gibt sowohl fuer das Gamespy-Problem als auch fuer Steam Loesungen

    Community-Betriebene natneg server (Verlinkt hier http://www.civforum.de/showthread.ph...=1#post6247707)

    2k erklaert wie man pre-steamworks Civ4 ueber Steam bekommt (afaik hier im Forum noch nichts zu?!).

  10. #25
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    18.750
    Das mit den natneg-Server hatte bei uns nicht funktioniert.

    Das mit der Steam Beta habe ich mal jemanden im Hilfethema als Tipp gegeben.

  11. #26
    Registrierter Benutzer Avatar von Ramkhamhaeng
    Registriert seit
    19.07.10
    Ort
    Aralkum
    Beiträge
    8.451
    Zitat Zitat von rucivfan Beitrag anzeigen
    Das mit den natneg-Server hatte bei uns nicht funktioniert.
    Das sieht allerdings wie eine sehr elegante Lösung aus. Vllt. kriegt ihr das ja noch hin.
    Am besten wird hier im Forum oder in der Civ-Wiki noch eine zentrale Stelle geschaffen, wo die Lösungen zusammengefasst werden. So was fehlt derzeit.

  12. #27
    Registrierter Benutzer Avatar von Ramkhamhaeng
    Registriert seit
    19.07.10
    Ort
    Aralkum
    Beiträge
    8.451
    @Zulan und andere Linuxler:

    Ich habe jetzt noch ein Skript erstellt, mit dem das Spiel mit der Mod auch bei dir starten sollte. Außerdem
    erstellt das Skript automatisch einen vorkonfigurierten ALTROOT-Ordner.

    Das Zip irgendwohin entpacken (Standard: $HOME/PBs) und die zwei Pfade am Beginn von "startPitboss.sh" anpassen.
    Falls es ohne Fehler startet: Das Autostart-Verhalten vom PB-Server kann man dann in der pbSettings.json austellen.


    Falls jmd. das Zip nicht runterladen will spoilere ich hier noch mal das Skript:
    Achtung Spoiler:
    Code:
    #!/bin/bash
    # Installation: 
    # 1. Extract Altroot example to '$HOME/PBs'
    # 2. Place this script to in the folder of your
    #    Civ4:BTS installation or setup an 'cd' command
    #    i.e
    #    cd "$HOME/Civ4/Beyond the Sword"
    # 3. Insert your ALTROOT paths into this script (see below)
    #
    # ATTENTION! Backup/Move your "My Games"-Folder before
    #  you start the Pitboss Server with an empty ALTROOT-Folder.
    #  Your current "BTS-My Games-Folder" will be moved!
    #
    # Notes: 
    # • The wine drive 'Z:' should be mapped to '/' (default wine setting)
    # 
    
    # Path to Civ 4
    CIV4BTS_PATH="$HOME/Civ4/Beyond the Sword"
    
    # Folder with a good pitboss configuration set 
    ALTROOT_SEED="$HOME/PBs/seed"
    
    
    # Write the names of your games here.
    echo ""
    echo " ==== Select Game/Altroot ===="
    echo ""
    echo " 1 - Pitboss 1"
    echo " 2 - Pitboss 2"
    read GAMEID
    
    
    # Insert the folders of your games here
    # Use linux syntax for the path's.
    case $GAMEID in
    	1)
    		ALTROOT="$HOME/PBs/PB1"
    		;;
    	2)
    		ALTROOT="$HOME/PBs/PB2"
    		;;
    	*)
    		echo "No game for this index defined."
    		exit 0
    		;;
    esac
    
    # Create Altroot path with backslashes
    ALTROOT_W=`echo "Z:${ALTROOT}" | sed -e 's/[\/]/\\\\/g' `
    
    # More backslash fun...
    ALTROOT_W2=`echo "Z:${ALTROOT}" | sed -e 's/[\/]/\\\\\\\\/g' `
    
    # Setup the correct ALTROOT path into the ini-file.
    #(One time per game required)
    if [ ! -d "$ALTROOT" ] ; then
    	echo "Altroot dir does not exist. Copy default settings"
    	cp -r "$ALTROOT_SEED" "$ALTROOT"
    
    	echo "Fix path in the ini file"
    	sed -i -e"s/PitbossSMTPLogin=.*/PitbossSMTPLogin=${ALTROOT_W2}/" "$ALTROOT/CivilizationIV.ini"
    fi
    
    
    
    # Start infinte loop for the selected game
    cd "$CIV4BTS_PATH"
    for(( ; ; )) do
    	echo "Dir: ${ALTROOT_W}"
    
    	wine Civ4BeyondSword_PitBoss.exe  mod= "PB Mod_v1"\" /ALTROOT="${ALTROOT_W}"
    	sleep 1
    done



    Edit: Ah, jetzt kann ich den von Zulan beschriebenen Fehler auch nachvollziehen Da müssen die wirklich noch einen weiteren Gamespy-Server abgeschaltet haben. Der PB-Wizzard hängt bei mir jetzt auch.
    Angehängte Dateien Angehängte Dateien
    Geändert von Ramkhamhaeng (11. August 2014 um 21:58 Uhr)

  13. #28
    Registrierter Benutzer Avatar von Ramkhamhaeng
    Registriert seit
    19.07.10
    Ort
    Aralkum
    Beiträge
    8.451
    Edit: Ah, jetzt kann ich den von Zulan beschriebenen Fehler auch nachvollziehen Da müssen die wirklich noch einen weiteren Gamespy-Server abgeschaltet haben. Der PB-Wizzard hängt bei mir jetzt auch.
    Ich habe in der Python-Oberfläche ein paar Befehle rausgeschmissen und kann den unendlichen Timeout verhindern :-) (Welcher Befehl es genau war, weiß ich noch nicht. Vermutlich ist es nur die Anfrage, ob ein neuer Patch bereit steht.)

    D.h. in der Mod kann ich den Fehler beim Laden des Wizzards beheben
    Lade das Ding hoch wenn ich genaueres weiß.

    P.S. Das ändern der Hosts-Datei brachte bei mir nichts! Hatte damit schon jmd. Erfolg?

  14. #29
    Say My Name Avatar von Zulan
    Registriert seit
    13.03.08
    Beiträge
    8.845
    Zitat Zitat von Ramkhamhaeng Beitrag anzeigen
    Ich habe in der Python-Oberfläche ein paar Befehle rausgeschmissen und kann den unendlichen Timeout verhindern :-) (Welcher Befehl es genau war, weiß ich noch nicht. Vermutlich ist es nur die Anfrage, ob ein neuer Patch bereit steht.)

    D.h. in der Mod kann ich den Fehler beim Laden des Wizzards beheben
    Lade das Ding hoch wenn ich genaueres weiß.

    P.S. Das ändern der Hosts-Datei brachte bei mir nichts! Hatte damit schon jmd. Erfolg?
    Um das Problem mit dem timeout zu verhindern habe ich noch motd.gamespy.com auf eine http ausliefernde ip gesetzt, /etc/hosts sieht dann so aus:

    Code:
    82.116.84.39 civ4bts.natneg1.gamespy.com
    82.116.84.39 civ4bts.natneg2.gamespy.com
    82.116.84.39 civ4bts.natneg3.gamespy.com
    82.116.84.39 civ4bts.available.gamespy.com
    148.251.126.92 motd.gamespy.com
    Dann startet der Setup Wizard sofort. Unter Windows scheint der Timeout einfach wesentlich geringer zu sein, ich hab schon recht gewartet gehabt.

    Das Problem mit deinem Mod war, dass ich ihn unter My Games, statt im Install-Ordner installiert hatte. So funktioniert das.

    Was macht das sed mit den SMTPLogin? Nutzt du das dann im Mod oder wie?

  15. #30
    Registrierter Benutzer Avatar von Ramkhamhaeng
    Registriert seit
    19.07.10
    Ort
    Aralkum
    Beiträge
    8.451
    Ok, konnte es auf drei Stellen reduzieren.

    Achtung Spoiler:
    Code:
    325a326,327
    > 
    > 			#Fix for infinit hanging due gamespy shutdown
    326a329
    > 			#if (False):
    348a352
    > 			#Fix for infinit hanging due gamespy shutdown
    349a354
    > 			#pass
    376c381,383
    < 			if (not PB.checkPatch()):
    ---
    > 			#Fix for infinit hanging due gamespy shutdown
    > 			#if (not PB.checkPatch()):
    > 			if (False):
    411c418
    < 		
    ---
    > 
    417a425,427
    > 		#Fix for infinit hanging due gamespy shutdown
    > 		self.myParent.FindWindowById(wx.ID_FORWARD).Enable(True)
    > 		self.myParent.FindWindowById(wx.ID_BACKWARD).Enable(True)
    465c475,477
    < 			if (not PB.checkPatch()):
    ---
    > 			#Fix for infinit hanging due gamespy shutdown
    > 			#if (not PB.checkPatch()):
    > 			if (False):
    Angehängte Dateien Angehängte Dateien

Seite 2 von 46 ErsteErste 12345612 ... LetzteLetzte

Berechtigungen

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