Kann man ein Realtime Multiplayer machen??

  • VB.NET

Es gibt 24 Antworten in diesem Thema. Der letzte Beitrag () ist von Wipf1000.

    Kann man ein Realtime Multiplayer machen??

    Hallo

    Ich hab folgendes problem bzw eine Frage:
    Ich hab eine for auf der per klick eine picturebox via code hinzugefügt wird!
    Jetzt möchte ich sowas wie ein , ich nenne es mal "multiplayer"!
    Also dass wenn der eine eine picturebox plaziert die bei dem anderen (an einem anderen rechner) auch an der selben stelle auf der form platziert wird!
    Wie könnte man sowas machen :?:
    ???
    Hm. Schwer zu Sagen.
    Meine Erste Antwort wäre FTP.
    Erstelle eine Datei mit den Kordinaten etc.
    Und lad sie auf dem FTP danach Läd das Programm das Herunter und Setzt
    Die Kordinaten.

    LG Keybladmaster
    Ich würde es mit TCP machen (Tutorial hier im Forum) und solche Befehle schreiben:

    Quellcode

    1. Picturebox <Image> <X> <Y>


    Diesen Befehl einfach an alle Clients schicken, bei empfangen ne IF Abfrage (oder Select Case) und dann einfach dynamisch erstellen.
    Die Paramater der Befehle kannst du einfach mit .Split(" ")(index) bekommen.

    VB.NET-Quellcode

    1. Dim pb As New PictureBox
    2. pb.Image = .... etc.


    LG
    Whos Faster ALPHA: Bald....
    Nimm auf KEINEN Fall FTP! Abgesehen davon, dass es extrem langsam ist, müsstest du deine FTP-Daten ins Programm schreiben, so dass sie jeder lesen kann!
    @Björni
    Du hast schon recht, jedoch muss man seine FTP daten nicht ins Programm einbauen. Siehe PHP Upload.

    @Keybladmaster
    Ich hoffe ebenfalls dass das mit php nicht dein ernst war. :)
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    Keybladmaster schrieb:

    Hm. Schwer zu Sagen.
    Meine Erste Antwort wäre FTP.
    Erstelle eine Datei mit den Kordinaten etc.
    Und lad sie auf dem FTP danach Läd das Programm das Herunter und Setzt
    Die Kordinaten.

    LG Keybladmaster


    Ich finde, wenn man nicht wirklich Ahnung hat was man machen sollte, sollte man sich eher zügeln anderen Leuten bei sowas zu helfen, denn FTP
    ist echt das letzte was du dafür nehmen solltest.

    @Topic, vergiss FTP, auch wenn es dir vielleicht einfacher erscheint es zu benutzen.
    Wie schon mein Vorposter geschrieben hat, liegen die Zugangsdaten auf dem Präsentierteller und es ist langsam bis zum geht nicht mehr.
    Für sowas musst du TCP oder UDP nehmen, wobei Koordinatenübertragung bei den meisten Multiplayer Spielen über UDP erfolgt.

    Gather schrieb:

    Siehe PHP Upload.

    Gather schrieb:

    Ich hoffe ebenfalls dass das mit php nicht dein ernst war.
    Was? Eben deswegen habe ich es doch nicht geschrieben?
    wie @Digot - Software schon sagte
    nimm dir ein tcp server ;)
    mit einem tcp server übertragst du daten mit denen dein client was anfangen kann
    zb sendet der tcp server zu dir diesen befehl
    /msgbox hallo
    und dein client kann dan mit diesem code etwas anfangen zb macht er sowas daraus
    MessageBox.Show("hallo")
    in diesem beispiel kannst du auch ganz andere sachen mit dme befehl machen wie zb eine picturebox erstellen ;) oder auch ein kampfsistem bauen ;) zb kannst du ja übergeben das grade jemand schiessen tut oder so :D

    BjöNi schrieb:

    Gather schrieb:

    Ich hoffe ebenfalls dass das mit php nicht dein ernst war.
    Was? Eben deswegen habe ich es doch nicht geschrieben?
    Ein "Tippfehler" von mir:
    Ich hoffe ebenfalls dass das mit ftp nicht dein ernst war. (ging aber nicht an dich dieser satz)
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    Sorry, dass ich hier so reinplatze (als Anfänger, mein ich). Aber ich habe ebenfalls einen kleineren Denkanstoss:
    Vielleicht würde es gehen, wenn du den ganzen Code in dieses File reinschreiben würdest und mit Scriptcontrol ausführen würdest. Die Clients schreiben nach der Ausführung des Codeschnipsels eine Bestätigung rein (z.b 1 & VbCr) und wenn dein Programm beim Zählen der Bestätigungen auf die erforderliche Anzahl kommt, kann der Inhalt gelöscht werden. Du müsstest natürlich die Anzahl der Clients aus 'nem anderen Text-File ziehen, in welches sich jeder Client beim Starten einträgt.
    Jo, das war's... :)

    Keybladmaster schrieb:

    Meine Erste Antwort wäre FTP.

    Und da gehts schon wieder los. Bedenke es kommt sich nicht auf die Erste Antwort an sondern vielmehr auf die richtige. Und hier teilt sich email und ftp sicher den gleichen Rang.
    Vergesst youtube und weiß der Teufel woher ihr das alle habt. FTP + Chat, Game, ... = Scheiße. FTP + Datei hochladen für z.B. Website = GUT. Alles andere BÖSE.

    Was TCP angeht: TCP-Server musst du selber schreiben:
    [VB.NET] Multiserver (TCP)


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    Anmerkung: der Multiserver von Kevin89 ist für einen Chat geschrieben - also um alle paar Sekunden mal eine kurze Nachricht zu übertragen. Ein Multiplayer für ein Spiel ist da eine komplett andere Baustelle - bedenke, dass die Koordinaten ständig übertragen werden müssen etc. Da eigenen sich Strings zur Datenübertragung einfach nicht, weil sie einen gigantischen Overhead verursachen. Es ist sinnvoller auf Byte-Basis zu arbeiten - setzt aber voraus, dass du mit einem Plan an die Sache herangehst - denn die Gegenseite muss die Bystes aus dem Stream interpretieren können.

    Worauf ich hinaus will: Vergess FTP, das ist für sowas Bockmist. Selbst UDP würde ich als Anfänger nicht nehmen, da es da ja bekanntermaßen Unregelmäßigkeiten gibt. Bleibt also TCP - sollte zudem das einfachere von beiden sein. Ich bezweifel mal, dass du es auf Anhieb zum laufen bekommst - also würde ich Aussagen wie "UDP ist langsamer als TCP" oder "crysis macht das auch mit UDP" erstmal außen vor lassen - das mag ja alles sein, aber du bist kein Profi der einem solchen Niveau optimieren muss. Zudem behaupte ich, dass TCP für sowas "kleines" völlig ausreicht. Also fange mit etwas einfachem (das wohlgemerkt schon sehr kompliziert ist) an, bringe es zum laufen und sehe dann weiter.

    Die zweite Sache ist, dass es hier nicht nur um die Datenübertragung geht. Wenn das eine Art Spiel werden soll und du dazu "Pictureboxen" rumschwirren lässt (vllt hast du ja das ein odere andere Tutorial von LukaSoftware gesehen, bitte auf garkeinen Fall so machen!!!) bist du definitiv auf dem Holzweg. Ohne Tiefere Kenntnisse wirst du da nicht weit kommen - heißt: Spieleprogrammieren nach hinten verschieben, vorher was anderes machen.

    Interessant zum Thema:
    Informatik Facharbeit 2D Netzwerkspiel
    vb-paradise.de/index.php?page=…768f69f3b1c36f716827c838d