Beiträge von Daikota

    Ein weiteres Problem habe ich gelöst!

    Und weitere kamen dazu! :D


    Man kann endlich sowohl die Karten richtig übers Feld bewegen und auch beide Spieler sehen das der andere die Karte bewegt.

    Leider funktioniert das mit dem Ablegen der Karten auf den Feldern und das zurück auf die Hand springen wenn es nicht auf einem Feld landet nicht mehr.

    Wenn ich dich richtig verstehe, soll die Loading Station und die unloading Station für jeden Spieler selbst gespawnr werden ohne das der andere Spieler diese sieht?


    Also es soll nichts über den Server Replicated werden.


    Hast du irgendwas auf Replicated gestellt?

    In welchem BP spawnst du die Stations?

    Moin, wenn ich dich richtig verstehe, bewegst du den Actor zwar durch die gegend aber die angegebene XYZ Variablen ändern sich nicht wenn man diese z.b. mit PrintString ausgibt?


    Hatte mal ein ähnliches Problem.

    Da habe ich anstatt den Actor zu bewegen die Hauptcomponente, in meinem Fall den Cube bewegt und daher haben sich die Daten des Actors für seine Location nicht geändert.


    Vielleicht hilft dir das ja weiter.

    Es geht mir nicht darum es kompliziert zu machen sondern so das man nicht so eben mal schummeln kann. Wenn es einfache, sichere Art gibt das zumachen dann her damit.

    Du könntest eine binäre Speicherdatei mit den freigespielten Karten erstellen. Online dann auf einem Server speichern. Das Problem bei beiden Systemen ist halt, also sowohl bei deiner Datenbank, als auch bei den Binärdateien, du musst den Server immer online halten.


    Ich weiß ja nicht wie dein Spiel genau aufgebaut ist, oder was genau es werden soll. Ich nehme mal an so eine Art GWENT. Aber GWENT speichert die Decks nicht online soweit ich weiß. Weder im Spiel the Witcher, noch Standalone. Sonst wären nach meiner Neuinstallation von Windows nicht alle erspielten Karten weg gewesen.

    Würden diese Binären Speicherdatein denn anders zugänglich als eine Datenbank?

    Du könntest eine binäre Speicherdatei mit den freigespielten Karten erstellen. Online dann auf einem Server speichern. Das Problem bei beiden Systemen ist halt, also sowohl bei deiner Datenbank, als auch bei den Binärdateien, du musst den Server immer online halten.


    Ich weiß ja nicht wie dein Spiel genau aufgebaut ist, oder was genau es werden soll. Ich nehme mal an so eine Art GWENT. Aber GWENT speichert die Decks nicht online soweit ich weiß. Weder im Spiel the Witcher, noch Standalone. Sonst wären nach meiner Neuinstallation von Windows nicht alle erspielten Karten weg gewesen.

    Mhmm das ist Komisch. Bei Haerthstone oder Magic ist das egal da kann man auch auf einem anderen PC spielen und hat alle freigeschalteten Karten.

    Erstmal: MariaDB / MySQL ist im Prinzip das gleiche.

    Die HTTP-Requests machst du (bzw. kannst) über / mit VaRest.


    Den HTTP-Server / Enpoint müsstest du dir schon entweder selbst oder mit Hilfe von OSS basteln. Du musst die Requests ja auch authentifizieren, damit nicht jeder an deine Daten kommt.

    Ob der Server jetzt auf PHP, Python, NodeJS oder whatever ist dabei egal.

    Ja das ich das irgendwie selber machen muss ist mir klar. Aber ich weiß nicht wie und auch nicht was ich da alles brauche.


    Gefühlt kommt jedes mal eine weitere Sache dazu. HTTP, php, json, mariaDB, etc.


    Ich habe keine ahnung wo ich da ansatzweise anfangen soll.

    Naja ich muss ja schätze ich mal eine Datenbank benutzen oder? Um die Karten/Decks der Spieler irgendwo abzuspeichern, oder gibt es da noch einen anderen weg?

    Ich dachte VaRest benutzt man als HTTP-Request?

    Seltsam das man dazu nicht soviel findet, aber dann werde ich wohl lieber was anderes benutzen wozu ich mehr Tutorials finde.

    Genauso wie von Stephan beschriebn über HTTP-Requests lösen.
    Kannst das manuell in C++ oder über das VaRest-Plugin machen.

    Sorry wenn ich so dumm frage, aber wie funktioniert das?

    Die Datenbank mit MariaDB erstellen ist ja recht easy, ist ja wie eine CSV Datei.

    Aber wir verbinde ich jetzt das VaRest Plugin mit der MariaDB? Oder muss da jetzt noch ein anderes Programm zwischen?

    Du kannst dir (falls du mit Windows arbeitest) z.B. mit xampp (https://www.apachefriends.org/de/index.html) einen lokalen Server - oder natürlich direkt einen MariaDB-Server (https://mariadb.com/kb/en/inst…adb-windows-zip-packages/). Dann brauchst du erstmal kein Geld ausgeben und kannst alles über den localhost testen.

    Also anstelle einer Verbindung zu deinemCoolenServer.example verbindest du dich einfach per HTTP mit localhost/

    Habe mir jetzt mal dieses MariaDB angeschaut. Wie verbindet man das jetzt mit Ue4?


    Hab nach Ue4 MariaDB gegooglt,aber dazu keine treffer gefunden.

    ist der sinn hinter einem?dedicated?server nicht das der spieler es nicht selber hosten?muss sondern der server dazu da ist die game session zu hosten?

    Genau, wo du das jetzt abfragst ich ziemlich Banane. Listen-Server sind natürlich für den End-User sehr angenehm, da er zum Hosten eines Spiels nicht eine eigene Anwendung starten muss, und das direkt im Spiel machen kann,

    Verstehe jetzt nicht was du damit meinst, inwiefern muss der User noch eine eigene Anwendung starten?

    Joa ich hab ihm auch schon ein paar Links geschickt. Und man muss ja nicht direkt Geld aus dem Fenster werfen.


    Würde es nicht "Geld aus dem Fenster werfen" nennen. Es ist manchmal einfach so das man etwas kleines nicht versteht, aber dutzend Seiten durchlesen muss bis man etwas findet das genau diesen Aspekt so abdeckt das es auf die Situation passt.


    Habe das Problem auch schon öfter gehabt und wäre froh gewesen jemand zu haben den ich einfach mal eine Stunde Fragen stellen kann, weil ich sonst Tage damit verbracht habe eine Lösung für eine Kleinigkeit zu finden.

    Schwer zu sagen. Ich würde jetzt eher bezogen auf dein Puzzlespiel kein Dedicated Server nehmen, sondern Listen Server. Du Solltest dich damit aber ausführlich beschäftigen.


    Hier steht auch viel zu Networking: https://docs.unrealengine.com/…ces/Networking/index.html


    ich habe bisher immer an einen Dedicated Server gedacht weil ich nicht wollte das ein Spieler auf die Karten zugriff hat. Wenn ich das aber richtig verstehe macht das für Listen und Dedicated keinen Unterschied da diese Daten ja so oder so auf einer Database liegen müssen.

    Du kannst dir (falls du mit Windows arbeitest) z.B. mit xampp (https://www.apachefriends.org/de/index.html) einen lokalen Server - oder natürlich direkt einen MariaDB-Server (https://mariadb.com/kb/en/inst…adb-windows-zip-packages/). Dann brauchst du erstmal kein Geld ausgeben und kannst alles über den localhost testen.

    Also anstelle einer Verbindung zu deinemCoolenServer.example verbindest du dich einfach per HTTP mit localhost/

    Werde mir die beiden links mal anschauen, danke.


    Wäre das von meinem verstädnis her den richtig einen Dedicadet Server zu benutzen?

    Moin,



    bin grade richtig lost wie ich das ganze mit den Servern angehen muss.


    Hier erstmal wie ich es verstanden habe.


    Dedicated Server:

    Ein Extra Server führt so gut wie alle Funktionen aus und zeigt diese so gesehen denn Spielern an.


    Listen Server:

    Einer der Spieler ist der Server und führt die Funktionen aus.


    Da ich nicht will das die Spieler zugriff auf die Werte etc. der Karten haben. Sollte ich diese auf einem Server abspeichern und dann anhand z.b. des Steam Namens herausfinden welche der Karten der Spieler besitzt. Auch das abspeichern der Decks sollte auf den Server passieren.

    Dies wäre dann aber etwas ganz anderes als der eigentliche Spiel Server oder?


    Wenn ich das Spiel auf dem Spielfeld starte, im Editor, dann sind dort beide Spieler im selben Spiel. Ok.

    Starte ich über das MainMenü, dann landen beide in ihrem eigenen "Spiel".

    Was ja irgendwie logisch ist das sie nicht wissen das sie sich mit dem anderen verbinden sollen.


    Habe dann mal die Steam Advanced Session Plugin eingestellt. Funktioniert auch.

    Wäre dann aber sicherlich kein Dedicated Server mehr sondern eher ein Listen Server richtig?


    Habe dann wege gelesen wie man einen Dedicated Server für UE4 zum testen erstellt aus dem eigenen Project. Konverten zum c++ Projekt etc.

    Wäre aber bisschen doof das ganze erst immer zu packen um kurz was zu testen.



    Jetzt zu meiner eigentlichen Frage:

    Ich habe meine Karten, ich habe die Decks, worauf der Spieler kein Zugriff haben soll. Sodass er diese nicht verändern kann.

    Nach meinem Verstädnis brauche ich also einen Dedicated Server und eine z.b. MySQL Datenbank, richtig?


    Wie mache ich das am besten ums das Spiel auch venünftig zu testen?

    (Ich wurde mir dann sicher einen Server dafür mieten und diesen nicht auf meinem PC machen, muss ich ja dann sowieso irgendwann.)

    Moin,



    Das bin ich:


    bevor ich zu dem Spiel komme, erstmal was zu mir.

    Bin mittlerweile 29 Jahre und habe einen normalen Alltagsjob. Meine Freizeit habe ich seit jungen Jahren schon mit dem Zocken verbracht. Dabei kam so gut wie jede Art von Spiel unter diese schreibenden Finger.

    Als 2015 Rainbow Six Siege rauskam und ich es ca. 1 Jahr später auch anfing, weil ich es einfach vergessen habe, wurde mir schnell bewusst das dieses Spiel ein reines Bugfest war.

    Da ich davor schon genug schlechte "Launchdays, weeks, months" mitgemacht habe, wollte ich mal ansatzweise verstehen wie ein Game eigentlich funktioniert.

    Also grub ich die CryEngine raus und fing an... und verdammt ich habe nichts kapiert. Habe es grade so geschafft ein "Level" zu erschaffen wo man paar Leute umballert."

    Also wieder Rainbow gespielt und weiter unwissend über Bugs aufgeregt.


    Später hab ich mir dann mal Unity angeschaut weil ich ein Spiel nachbauen wollte. "Seafight" habe ich damals auf dem PC als aller erstes Game wirklich lange gezockt.

    Allerdings war auch da meine "Lust" schnell vorbei.


    Jetzt sind wir bei ca. bei Anfang 2019?

    Jedes Spiel wirkt langweilig, alles nur noch das selbe. Nichts kann mich wirklich lange bei der Stange halten, nicht so wie Rainbow oder Seafight.

    Seit einigen Jahren befasse ich mich schon mit dem Thema Webdesign bzw. Kunst an und für sich.

    Ich spiele auch super gerne "Magic the Gathering", aber eben in Echt. Die Online Version konnte mich nie abholen. (Da gibt es seltsame "geheime" Regeln")


    Alle anderen Kartenspiele auf dem PC find ich auch nicht so gut. Das letzte gute PC Kartenspiel das mit einfiel war "Triple Triad" aus Final Fantasy 8.

    Was mich bisher auch störte ist das diese Spiele auch relativ lange dauern können, ich wollte ein schnelles Kartenspiel, das einen zwingt schnell zu denken.

    Fand zwar eine Spielbare Variante online, aber naja...


    Also dachte ich mir ich fange mit diesem Projekt an, vorher schon in Unreal ein Projekt angefangen, aber wieder aufgehört weil dann jemand ein sehr ähnliches Spiel rausbrachte und mir die Lust fehlte dann weiter zu machen. Damals wieder mit dem gedanken das "mal eben zu machen".

    Oh Boy... lag ich falsch. Spiel wieder auf Eis gelegt, weil kein Erfolg.


    Sprung zum 1. Dezember´ 2020. Von Sleepy das Tutorial https://www.udemy.com/course/u…ngine-blueprint-konzepte/ empfohlen bekommen.

    Gekauft... nie angeschaut.

    Sprung zu März/April 2021, dass Tutorial durchgeschaut, Kartenspiel wieder geöffnet und angefangen.

    Siehe da.. Fortschritt.



    Das Projekt:


    Das etwas andere Kartenspiel.. ja das sagen viele. Ich weiß aber nicht mal ob man das als wirkliches Kartenspiel betiteln kann.

    Vorweg: Es ist nicht das Ziel es am Ende auch wirklich auf Steam etc. zu veröffentlichen. Wenn ich je soweit komme schön. Wenn ich damit nur Spaß habe auch gut.


    Wer Triple Trias kennt wird das Grundprinzip verstehen.


    Es gibt ein Feld das besteht aus mehreren Sechsecken (19).


    Jeder Spieler wählt aus seinen Karten 10 Stück aus.



    Diese haben Werte an ihren Seiten. Diese werden abwechselnd auf dem Feld platziert. Die Karten haben je nach Spieler eine Farbe zb. Rot und Blau.


    Legt Spieler Rot eine Karte an Spieler Blau und ist der Wert an der benachbarten Kante höher wird die Karte auch Rot. Legt Blau an die selbe, jetzt rote Karte, wieder eine mit einem höheren Wert wird sie wieder Blau.

    Wer am Ende die meisten Karten mit seiner Farbe hat, hat gewonnen. Die letzte HandKarte zählt mit.


    Es wird dann noch "Fallen/Zauber" Karten geben und Elemente für die "Monster".


    Fallen und Zauber werden auf den Feldern platziert. Der andere Spieler sieht aber nicht was es ist nur das dort etwas platziert wurde.

    Ob man einen Zauber zusätzlich legen kann oder anstatt eines Monster, weiß ich noch nicht recht.

    Zauber können Karten z.b. verstärken oder für ein eine Runde nicht umdrehbar machen, dies geht aber für beide Spieler.

    Also legt Rot ein Monster auf einen blauen Zauber wirkt dieser auch für ihn.


    Ist es eine Falle, wird das Monster z.b. Schwächer.

    Da man nicht weiß ob es eine Falle ist oder ein Zauber, muss man hier abwegen und Strategisch denken.


    Zurzeit arbeite ich nur an einen Prototypen mit nur 9 Feldern und 5 Karten mit jewals 4 Seiten wie das Original Triple Triad.



    Was bereits läuft:


    Man kann Decks erstellen und zum spielen benutzen.

    Man kann ein Spiel hosten und es joinen (Loading und Warten auf 2 Spieler muss noch dazu)

    Karten werden mit den richtigen Werten gespawned

    Der Deckbuilder zeigt Werte und Namen an

    Das die bewegung der Karten an den anderen Spielern übertragen wird


    Was noch nicht läuft:


    Karten snappen nicht auf die Spielfelder oder gehen nicht automatisch zurück auf die Hand

    Das die eignen Karten auf der rechten Seite angezeigt werden und die gegnerischen auf der Linken Seite

    Karten spawnen zwar mit Werten, aber immer mit dennen des Hosts.



    Wo ich noch nicht weiß wie ich es genau mache:

    Die Serverstruktur, was ich dort alles abspeichern muss. .z.b. Die Karten und Decks der Spieler

    Dedicated oder Listen Server

    Zauber und Fallenkarten hinzufügen