Beiträge von Daikota

    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.



    To-Do-Liste:

    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

    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

    Rundenbasiertes System

    Punkte anzeige

    Gewinner anzeige

    Zurück zum Menü nach Runenende.




    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

    Zauber und Fallenkarten hinzufügen

    Also die Karten haben Werte und mehr wonach mann gehen kann. Daher wir ein Filter sowieso kommen.


    Habe denn Deckbuilder auch fertig. Es fehlen noch paar Kleinigkeiten wie "Neues Deck abgespeichert" Nachricht. Ansonsten fehlen nur visuelle Sachen. Die ich aber in dem Prototypen denke ich weglassen werde.



    Zurzeit überlege ich wie ich am besten die Decks abspeichern. Da mit der GameInstance diese ja nicht in die nächste Session übertragen werden? Muss diemwohlmauf einem Server speichern so wie die Karten.

    Moooooin!


    Ich bin grade dabei für mein kleines Projekt den Deckbuilder zu bauen und frage mich ob mein Weg der richtige ist.

    Es ist nur ein Prototyp (das Projekt).


    Derzeit mache ich das wie folgt.

    Ich habe ein Widget mit einer VertikalenBox, darin eine ScrollBox in der wiederum eine WrapBox.

    Aus einem Data Table bekomme ich meine Daten, zurzeit nur den Namen.

    Für jeden Eintrag im Data Table wird über ein anderes Widget eine Checkbox mit Text generiert, mit einen "For Each Loop"

    So habe ich dann derzeit 10 Einträge in meiner Liste.

    Das funktioniert auch bisher.


    Wenn man nun 5 Einträge anklickt werden diese in einer zweiten VertikalenBox als "Deck" angezeigt.

    Sind 5 drinne, kommt darüber eine Button mit "Fertig?" Drückt man diesen, werden diese 5 Karten in der "GameInstance" als neues Deck abgespeichert.
    Sollte man eine 6te Karte hinzufügen wollen, gibt es eine Fehlermeldung oder nach der 5ten werden die anderen nicht mehr anklickbar.

    Das Problem wäre dabei dann nur das man nach der 5ten Karte keine mehr rausnehmen könnte, ausser das ich im Deck Feld selber die Karten entferne, aber dann müsste ich sicher wieder eine Variable aktualisieren damit die Checkboxen das auch wissen.


    Später kommt dann noch eine Filter dazu, für Namen, Werte, etc. was halt noch dazu kommt.


    Frage mich nun ob das der richtige Weg ist?

    Wäre es vielleicht besser anstatt der Checkbox 2 Buttons mit + und - zu benutzen?



    Was meint ihr? Wie würdet ihr das angehen?

    Habt ihr Verbesserungsvorschläge?

    Wenn du links und rechts haben willst. Kannst du die Karten basierend auf dem PlayerController spawnen und zwar auf dem Server und diese dann Replicaten. Links PlayerController0 und rechts PlayerController.

    das habe ich bereits versucht. Vielleicht war mein Weg falsch.


    Ich habe im PlayerController über den Server mit einer Branch gecheckt ob es der erste oder zweite PlayerController ist und er hat mir bei beiden Spielern immer den ersten ausgegeben.

    Vielleicht muss ich das anders abfragen aber ich weiß nicht wie das gehen soll.

    Bei Spielen wir Hearthstone hat der Spieler ja immer das untere Deck (glaube ich zumindest). In diesem Fall gibt es auch keinen Grund

    die Karten zu replicaten. Das wäre auch auch hinsichtlich Cheats viel sicherer. Falls das für dich überhaupt eine Rolle spielt.

    Also das ist etwas das ich auch noch ausprobieren wollte, nur da hatte ich keinen Anhaltspunkt wie ich das mache das dir Sicht der Spieler ja sogesehen spiegelverkehrt ist.


    Da dachte ich das mit den Karten Links und rechts wäre einfacher ?


    Wenn ich das mit den Tags wegnehme dann wissen die Karten aber ja gar nicht mehr wo sie spawnen sollen.