Game ohne C++ erstellt und jetzt möchte ich C++ nutzen

  • Hi zusammen,


    dies ist meine erster Post hier und ich werde mich gleich noch kurz im passenden Bereich selber vorstellen.


    Bin mir nicht sicher, ob der folgende Link das selbe Thema behandelt hat:

    uasset in Visual Studio öffnen


    Um erstmal ein Gefühl für die Engine zu beklommen, habe ich bei Udemy den Kurs Unreal Engine 4: How to Develop Your First Two Games und bin jetzt so weit, dass ich eine Map, 2 Character, eine Waffe und eine Kampfanimation habe.

    Es ist also möglich gegen die AI zu kämpfen.


    Um ein bisschen mehr Spaß in die Sache zu bekommen, wollt eich diese zugegebenermaßen bis jetzt sehr langweile Spiel, trotzdem mal multiplayerfähig machen. Dazu habe ich mir also bei Udemy von einem anderen Dozenten den Kurs Unreal Engine 4 Mastery: Create Multiplayer Games with C++ geholt und Visual Studio installiert.

    Das Game welches dort designt werden soll habe ich nicht erstellt, sondern bin zum Bereich Multiplayer übergegangen, einmal um mein Spiel multiplayerfähig zu machen und zum anderen, damit ich direkt lerne Wissen zu Adaptieren.

    Leider hänge ich ganz am Anfang, weil ich mein Game nicht von Beginn an in C++ erstellt habe und nun scheinbar die ganzen Klassen nicht vorhanden sind die .cpp Dateien.


    Habe nur eine Standart Class über File --> new C++ Class erstellt, damit ich mit Visio die C++ Klassen erstellen konnte.

    Konkret kann ich in der Unreal Engine zwar ein Multiplayer Game simulieren, sehe auch in beiden Fenstern wie die beiden Player sich bewegen, kann den anderen Player auch besigen, aber ich sehe die BEwegung des Schwertes nicht.


    Im Lehrvideo hat der die ganzen Classen unter Source --> Private --> da habe ich aber leider nichts.


    Gibt es da zufällig eine relatove einfach Möglichkeit, mein bis jetzt geschriebenes Game zu zu ändern, dass ich es vernünftig im C++ Multiplayer Toturial zum lernen nutzen kann?


    LG

  • Das Problem was du hast ist, du versuchst über C++ Blueprint Klassen zu Replizieren. Diese sind im Source Code (C++) allerdings nicht sichtbar da es sich bei Blueprints (soweit ich weiss) selber um ein Plugin/Extension handelt welches von Epic entwickelt wurde.

    Deine Blueprint Klassen sind erst nach dem Starten der Engine überhaupt vorhanden.


    Lange rede kurzer Sinn: Wenn du die Replication in C++ machen willst müssen auch deine Klassen (oder zumindest die Basisklassen) in C++ geschrieben werden.


    Eine einfache Möglichkeit um aus einer Blueprintklasse eine C++ Klasse zu generieren ist mir leider nicht bekannt.


    Gruss Veelos

  • Hallo Veelos


    Das konvertieren bestehender Blueprint zu C++ Klassen ist schon möglich, aber eher zur Performance Zwecken. Der Code der dabei ensteht ist logischerweise generiert und unterleserlich.


    Das bestehende Blueprint Projekt kann problemlos durch die C++ Multiplayer Klassen ergänzt werden.


    Gruss

  • Tipp 1 :

    - Erstelle deine BP-Parentactors in C++

    - weise deinen BPs die neuen C++ Parentclasses zu


    Nun kannst du sie nutzen, als hättest du von Anfang an eine C++ Klasse erstellt.

    Also du kannst deiner Characterklasse dann ebenfalls die Referenz des Schwertes übergeben. Aber du kannst nur auf in C++ geschriebene Funktionen/Variablen zugreifen. Auf die BP-Variablen/Funktionen kannst du meines Wissens nach nur im BP-Editor zugreifen. Also musst du dir gut überlegen, welche Daten du in c++ schreibst und welche du dann im BP implementierst.


    Tipp 2 :

    - Der Fehler beim Animieren/Synchronisieren des Schwertes liegt aber nicht an C++

    oder kein C++, sondern daran, dass du einen Fehler in der Replication des

    Schwertes/bzw dessen Components eingebaut hast.

    - Dazu solltest du dich in Multiplayer/Server/Replication einlesen


    Tipp 3 :

    - Da du ja eh, so wie es scheint, dein Projekt mehr oder weniger neu machen musst, wenn du alles in C++ schreiben willst, würde ich entweder dein

    Projekt in BP weiter führen, die Logik, welche man für MP benötigt, ist ja die gleiche.


    ODER


    - vielleicht doch erstmal den Kurs komplett durchziehen, bevor du versuchst einen Teil zu adaptieren. So hast du die Grundidee/Logik durch das Kursprojekt verstanden und kannst es dann auf dein Projekt übertragen.

    (z.B. vielleicht merkst du, dass du nur Funktionen X,Y, Z und Variablen 1,2,3 replizieren musst und nicht den Rest deiner Klassen. Somit müsstest du nur gewisse Teile in C++ schreiben neu schreiben)



    Ich hoffe ich kann dir damit etwas helfen,


    bei weiteren Fragen frag einfach :)

  • Hey zusammen,


    vielen Dank für Eure Antworten.

    Im Endeffekt habe ich mich dann jetzt dazu entschieden, erstmal alles neu zu machen um mehr Gefühl für die ganze Sache zu bekommen.

    Ist ja auch viel schöner, wenn ich dann später viel präzisere Fragen stellen kann.


    LG