PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Multiplayerscript für den RPG-Maker VX (Tocu-Connector)



Towky
13.08.2012, 15:53
Wie ich euch auf dem BMT bereits versprochen habe, hier eine vorab Version des Multi-Player-Scripts, welches euch ermöglichen soll, möglichst einfach Multiplayerspiele mit bis zu 4 Spielern zu erstellen.

Projekt: Tocu-Connector
Aktuelle Version: 0.25 Alpha

Am Projekt beteiligt:
Towky - RGSS, RPG-Maker Sachen, Lobby-Server und Konzeption
Cubby - C#, Connector, Client/Server und Konzeption

Grundanforderung an das Programm:
- einfache Einbindung in per Copy & Paste
- automatischer Austausch von Game-Variablen und Switches

Definition:
RGSS = Alle Scripte und Funktionen die im RPG-Maker ablaufen
Connector = Externes Programm, welches die Verbindung zwischen den Spielern aufbaut.
Server = Der Spieler/Computer, der ein Spiel hosted
Clients = Die Spieler/Computer, die einem Spiel beitreten
Lobby-Server = PHP / MySQL basierte Schnittstelle zum anzeigen der Spieler und Server

Voraussetzung:
- Bisher nur getestet auf Windows7
- .net Framework 4 mit aktuellen Updates

Geplante (zusatz) Features:
- Doku / FAQ
- Connector: Broadcast-Abfrage für LAN-Games
- Connector: Fix für "Direkt Play", damit auch über Lobby erstellten Games beigetreten werden kann.
- Connector: Überprüfen der Spielversion und ggf. Automatisches Update
- RGSS: ATB-Kampfscript
- RGSS: Seperater Spieler-Auswahlbildschirm
- RGSS: Speicherung von Spielerdaten und Fortschritt

Bereits Implementiert:
- "Connector"-Programm zum Verbingunsaufbau und Datenaustausch
- RGSS: Automatischer austausch von vorher Definierten Game-Variablen und Switches
- RGSS: Game-Variablen und Switches -> Definition per Config
- RGSS: Player-Movements
- RGSS: Ingame-Chat
- Connector: Austausch von Hintergrundbildern
- Lobby-Server auf Basis von PHP und MySQL

Bekannte Bugs:
- Connector: absturz beim ändern des Servernamens
- Connector: absturz beim klicken des "leave"- Buttons
- Ingame: Chat und Spielernamen werden gelöscht beim aufrufen des Game-Menüs
- Ingame: Sonderzeichen im Chat funktionieren noch nicht
- Ingame: Copy&Past für vorhandene Zusatz-Scripte (Playermovements, Chat) ist noch nicht gegeben.
- Programm Arbeitet zur Zeit noch auf Basis von Input- und Output-Dateien - wird noch auf Shared-Memory geändert
- Connector: Passwortabfrage für die Server funktioniert noch nicht
- Ingamge: Shared-Switches sind teils noch verbuggt.
- Connector: Probleme beim Connecten über Hamachi - HOT

Funktionsweise und Mini-Doku:

Dateien im Projektorder:
Tocu_lobby.exe -> (Connector) Dieses Programm wird anstatt der Game.exe gestartet.
input -> Datei die vom Connector geschrieben wird. Enthält Variablen und Switche von allen Spielern (nicht Anfassen!)
output -> Datei die vom RGSS geschrieben wird. Enthält Variablen und Switche, die der jeweilige Spieler ändern darf. (nicht Anfassen!)
version -> Version des Aktuellen Clients ( Noch nicht benutzt )
clientconfig -> Datei die vom Connector generiert wird, um dem RGSS Startinformationen zu geben (Spielernamen, Spielernummer etc.) (nicht Anfassen!)
tocuData -> Enthält die Config, die für den Connector wichtig ist, wie z.B. die URL unter der der Lobby-Server zu erreichen ist.
Images/background.jpg und background_login.jpg -> Bilder für den Hintergrund im Connector, können angepasst oder ausgetauscht werden.

Funktion:
Starten des Connectors -> Auswahl Username -> Erstellen oder Beitreten eines Spiels -> automatischer Start der Game.exe

Die Kommunikation läuft über Port 44444 TCP, dieser muss auch freigegeben bzw. vom Router weitergeleitet werden, wenn die Verbindung über das Internet ablaufen soll.

Config der Variablen und Switches im RGSS:
In den RGSS-Scripten werder ihr unter "Tocu-Mod VX" folgendes finden:


# configuration:
@var_server_start = 1001
@var_server_end = 1100
@switch_server_start = 1001
@switch_server_end = 1100
@var_player1_start=1101
@var_player1_end=1200
@var_player2_start=1201
@var_player2_end=1300
@var_player3_start=1301
@var_player3_end=1400
@var_player4_start=1401
@var_player4_end=1500
@switch_shared_start = 1101
@switch_shared_end = 1200

Hier werden die Variablen und Switche Definiert, die Ausgetauscht werden sollen. Jeder Spieler darf eine gewisse Anzahl an Variablen ändern, bekommt aber zugleich von den Anderen Spielern alle Daten zurück, bis auf seine Eigenen. Spieler1 dürfte in diesem Fall im Variablen-Bereich 1101 bis 1200 ändern und den anderen Spieler würden Automatisch in diesem Berech die Variablen zugewiesen. Der Server (also der Spieler, der das Game hosted) bekommt außerdem noch eine zusätzliche Anzahl an Variablen und eine Gewisse Anzahl an Switches zugewiesen, die automatisch bei allen anderen Spielern gesetzt werden.
Zusätzlich gibt es noch so genannte Shared-Switches (siehe @switch_shared_start und @switch_shared_end) diese Switche dürfen von allen Spielern geändert werden. Wenn spieler 1 den switch auf ON schaltet und spieler 2 eine Sekunde danach auf off, wird der Switch für alle als OFF geschrieben.

Wichtige RGSS-Info:
Es könnte sein, das sich noch einige Funktionen im Tocu-Mod noch ändern, auch was die Implementation des Shared-Memory betrifft, daher empfiehlt es sich noch keine Größeren Projekte darauf aufzubauen ;)
Was aber beibehalten wird, ist die Config und der Austausch der Variablen und Switches

----------------

Im Anhang findet ihr vorerst nur den Projekt-Ordner und das Connector-Programm. Der die Lobby-Server-Scripte basierend auf PHP und MySQL sind nun auch hochgeladen, ihr dürft aber auch gerne meinen eigenen unter "http://www.towky.com/tocu/" nutzen ;)

Testet und Probiert rum, wie Ihr lustig seid und gebt uns Feedback über Bugs, Verbesserungen usw.


Ich hoffe ich habe nichts Wichtiges vergessen, an sonsten einfach Nachfragen :D

pastirma
05.10.2012, 17:19
Es geht leider nicht.
Ich habe folgendes versucht: .Net Framework aktualisiert und Hamachi (Optional) für die "Direct Connect" Funktion installiert,
bekomme leider immer denselben fehler: "Could not connect to Server"
Was fehlt mir noch, oder habe ich etwas falsch Installiert?
Bitte um schnelle Hilfe

Erweitert:
Problemsignatur:
Problemereignisname: CLR20r3
Problemsignatur 01:tocu_lobby.exe
Problemsignatur 02:1.0.0.0
Problemsignatur 03:501c58a7
Problemsignatur 04:mscorlib
Problemsignatur 05:4.0.30319.17929
Problemsignatur 06:4ffa561c
Problemsignatur 07:5811
Problemsignatur 08:23
Problemsignatur 09:System.ArgumentNullException
Betriebsystemversion:6.1.7601.2.1.0.256.1
Gebietsschema-ID:1031
Zusatzinformation 1:0a9e
Zusatzinformation 2:0a9e372d3b4ad19135b953a78882e789
Zusatzinformation 3:0a9e
Zusatzinformation 4:0a9e372d3b4ad19135b953a78882e789

- -

Towky
08.10.2012, 01:24
Hi Pastirma,

sorry für die verspätete Antwort, ich war das ganze Wochenende unterwegs :)

Wenn du soweit kommst, das du das Client-Programm starten kannst, sollte das Framework korrekt installiert sein, sonst würde direkt mit einer Fehlermeldung abgebrochen.

Um ehrlich zu sein haben wir das Programm auch noch nicht über Hamachi getestet.

Nur um ganz sicher zu gehen, du hast auch die IP-Adresse von Hamichi eingetragen? ;)

Wir werden dem Problem in den nächsten Tagen auf den Grund gehen und das Tool über Hamachi testen.


EDIT: Was vieleicht noch wichtig ist währe ist, dass die Kommunikation über Port 44444 TCP abläuft. Evtl. könntest du die Firewalls checken und den Port freigeben. Da leider momentan keiner online ist, mit dem Ich Testen kann, kann ich nur Vermutungen anstellen ;)

Towky
08.10.2012, 13:05
So, Ich hab nun rücksprache gehalten und hamachi wird noch nicht unterstützt. Wir sind jedoch dabei, das Problem zu beheben, da der C# Programmier aber zurzeit etwas ausgelastet ist, kann es bis nächste Woche dauern, bis wir einen Patch rausbringen.

Bis dahin könntest du aber die Online-Connectivität nutzen. Es muss nur derjenige, der den Server startet, den Port 44444 weiterleiten.

Da ich die Server-Lobby Scripte ja noch nicht hochgeladen habe, kannst du einfach meinen Lobby Server unter "http://www.towky.com/tocu/" nutzen. Der sollte aber auch schon Standartmäßig in der tocuData - Datei eingestellt sein.

pastirma
11.10.2012, 14:33
Erst mal Danke das sie geantwortet haben, ich werde es nochmal versuchen mit dem Port 44444 ich glaube es liegt wohl daran.
Ich werde ihnen so schnell wie möglich antworten mit den Ergebnissen.
Eine frage hätte ich noch, wo stelle ich das mit dem weiterleiten des Port's ein?

P.s. Ich würde die Lan (Direct Connect) Funktion bevorzugen, nur dort habe ich genau das gleiche Problem :( .
Pp.s. Wenn Sie/du wollen würde ich ihnen ein Video über E-Mail schicken um es noch besser zu zeigen. :)

- -

Towky
12.10.2012, 00:21
Bleiben wir mal beim "du" ;)

Die Ports musst du in deinem Router (Internet-Gateway) einstellen. Dort kannst du sowohl den Port als auch die Ziel-IP-Adresse (der PC, auf dem der Server gestartet wird) einstellen. Wie das genau geht musst du in der Beschreibung von deinem Router nachlesen oder google um Hilfe bitten ;)

Du kannst das Video einfach bei Youtube hochladen und auf "nicht gelistet" setzen und mir den Link schicken, dann schau ich mir das an.

Wie gesagt, werden wir aber versuchen bis Mitte/Ende nächster Woche einen Patch rauszubringen, der das Problem mit dem Verbinden über Hamachi beseitigt.

So währe der Weg, wie es aktuell Funktionieren sollte:
Auf dem Server:
- Port 44444TCP auf dem Router weiterleiten
- "Online Game" starten
- Server erstellen (hierbei nicht den Servernamen ändern, es kommt dort manchmal zu problemen)
Client:
- Einfach nur über "Online Game" dem Server beitreten

An sonsten heißt es: Auf den Patch warten :)

pastirma
12.10.2012, 14:19
Ich werde denn lieber mal auf den Patch warten, den Link für
das Video werde ich dir denn bald schicken.

- -