Jump to content
Unity Insider Forum
Kurmuro

Lokaler Multiplayer. Wie geht das?

Recommended Posts

Hallo,

Ich habe mir als Projekt zum Lernen für Unity Kniffel rausgesucht.

Mein bisheriger Stand ist das man Alleine spielen kann. Heißt man spielt ohne Gegner und versucht einfach nur seine Punktzahlen zu verbessern. Siehe Foto:kniffel.PNG.d5cf45f7de722b2b88c374aebd96bdb4.PNG

Bevor ich mich an den Online Multiplayer Wage wollte ich erstmal den Lokalen Multiplayer hinbekommen. Sprich alle spielen auf einem gerät. Man gibt am Anfang ein wie viele Spieler es gibt und gibt ihnen Namen und jede runde wechselt dann der Spieler.

Ich finde allerdings keine Ansätze wie ich so ein Spiel aufbaue... Das wo man im Internet findet sind entweder Spiele wo zwei leute gleichzeitig spielen oder halt von verschiedenen Geräten aus.

Wisst ihr vielleicht wonach man suchen muss um am besten ein direktes Beispiel zu sehen?

Meine Hauptfragen sind: wie läuft das ganze generell ab? Kann ich einfach für jeden Spieler die Szene einfach neu aufrufen? Wie und wo speichere ich dann seine daten, bzw wie geht es das die Szene die erzielten Punktzahlen nicht "vergisst"?

Share this post


Link to post
Share on other sites

Servus,

für einen lokalen Multiplayer würde ich Runde bzw. Züge einbauen und zwei Variablen für Spieler 1 und 2.

Spieler 1 und Spieler 2 in einer Runde ist Spieler 1 dran und danach Spieler 2 usw. dann wenn eine gewisse Rundenanzahl erreicht ist oder eine gewisse Punkteanzahl ist es Zuende.

Das kannst du alles mit Schleifen und IF Anweisungen regeln.

Dazu musst du die Szene nicht neu laden du hast ja eine Update Funktion die jeden Frame läuft bzw. kannst du sowas auch mit Coroutines basteln, wenn ich mich nicht irre.

Die Daten speicherst du in Variablen.

public int player1Points;

public int player2Points;

public int playerTurn = 1;

aus diesen 3 Variablen könntest du schon einen lokalen Multiplayer basteln.

Wenn du dann noch Namen usw vergeben willst für die Spieler brauchst halt weitere Variablen "strings", auf jeden Fall solltest du dir Variablen, Datentypenspeicherungen, Schleifen, Anweisungen und Arrays in C# anschauen.

  • Thanks 1

Share this post


Link to post
Share on other sites

Die Runde wird ja wie beim richtigen Kniffel beendet sobald man die Punktzahl einträgt. Das ist kein Problem.

Allerdings spielen in so einem Spiel mitunter auch gern mal 10 oder mehr Personen mit und alles so aufzubauen das ich alles variabel mache und alles abspeichere... da gibt es doch bestimmt eine elegantere Möglichkeit?

Zudem baut der Online Multiplayer (gefährliches halbwissen) ja eigentlich super auf meinen singleplayer auf. Da muss ja nur der Host später mit den anderen Geräten kommunizieren auf denen selbst eigentlich das selbe abgespielt wird wie beim singeplayer (abgesehen von ein paar wartepausen bis alle Spieler ihre runde fertig gespielt haben).

Share this post


Link to post
Share on other sites

Na du gibst doch bestimmt an wieviele Spieler am Anfang mitpielen. Also machst du eine Klasse Spieler mit den Attributen die du brauchst und erstellst für jeden Spieler ein Objekt dieser Klasse.

  • Thanks 1

Share this post


Link to post
Share on other sites

So habe ich es mittlerweile auch gelöst. 

Ich hatte mir vorher möglichkeiten zum online multiplayer angeschaut. Warscheinlich war ich zu eingenommen davon um auf diese simple lösung zu kommen 😅

Danke euch 👍

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...