Vorlage für Multiplayer App ?

  • Antworten:11
NOsDormo
  • Forum-Beiträge: 4

27.05.2018, 17:58:55 via Website

Hallo zusammen,
ich habe mir vorgenommen, ein Online-Spiel zu programmieren.
Ich beherrsche die Grundlagen, um mit AndroidStudio eine offline-App zu programmieren,
aber wenn ich mir die Online-Tutorials anschaue, verzweifle ich, weil mich das alles erschlägt.

Gibt es irgendwo eine Art Vorlage für ein Online-Spiel ?
Ich suche praktisch den Code für eine App, in der jeder Spieler ein Profil hat (z.B. durch Registrierung und Login per eMail) und die Daten des jeweiligen Spielers dann online speichert.

Beispiel: Jeder Spieler hat über den Tag Zeit, eine Zahl zwischen 1 und 10 auszuwählen. Jeden Tag um 0 Uhr wird dann zufällig eine Zahl bestimmt und wer diese Zahl gewählt hat, bekommt einen Punkt.

Wenn ich so eine Vorlage hätte, könnte ich eben das Spiel, das ich offline schon fast fertig habe, eben auch als Online Spiel entwickeln.

Vielen Dank schonmal im Voraus,
Viele Grüße

Kommentieren
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

27.05.2018, 18:36:29 via Website

Hallo NOsDormo,
herzlich wilkommen hier im Forum :)


wie stellst du dir das vor?
Sollte jemand ohne Grund eine "Vorlage" (aus auch immer man darunter versteht) programmieren?

Ich vermute das wirst du nicht finden, und wenn doch, dann musst du dich trotzdem in Fremden Code Einarbeiten (für alle Änderungen) und diesen Verstehen.
Vermutlich hast du in der Hälfte der Zeit dir das selber angelernt und Programmiert.

Du darfst auch nicht direkt mit allem auf einmal anfangen.

Am Anfang steht sowieso das Konzept, in dem du klarstellst, was und wie du nachher alles machen willst:
z.b.
1. Online Spiel in Echtzeit oder Rundenbasiert/Aktionenbasiert?
2. Welche Server/Laufzeitumgebung steht dir zur verfügung
3. Welche DB willst du verwenden (vermutlich von 2. anhängig)?
4. Kommunikation zwischen Spielclient und Server, welches Protokoll (vorteile,nachteile von Protokollen mit einbeziehen)
5. aktuell ganz wichtig: Datenschutz ;)

Zudem eine allgemeine Vorlage wäre vermutlich viel zu allgemein, da musst du auch ganz schön viel anpassen.

Ich würde mir erstmal pber die o.g. Punkte gedanken machen und entscheiden.

Aber vergiss nicht: Wenn das Spiel später im Store verfügbar sein soll, brauchst du einen passenden Server mit öffentlicher IP. Wenn du den nicht gerade selbst hostetst, kommen da auch Kosten auf dich zu die du evtl. nicht per Werbung o.ä. decken kannst.

LG Pascal //It's not a bug, it's a feature. :) ;)

Hilfreich?
Bastian SiewersNOsDormo
Kommentieren
NOsDormo
  • Forum-Beiträge: 4

27.05.2018, 18:55:31 via Website

Pascal P.

Hallo NOsDormo,
herzlich wilkommen hier im Forum :)


Dankeschön :)

wie stellst du dir das vor?
Sollte jemand ohne Grund eine "Vorlage" (aus auch immer man darunter versteht) programmieren?

Ich vermute das wirst du nicht finden, und wenn doch, dann musst du dich trotzdem in Fremden Code Einarbeiten (für alle Änderungen) und diesen Verstehen.
Vermutlich hast du in der Hälfte der Zeit dir das selber angelernt und Programmiert.

OK, ich dachte es gäbe vielleicht eine Art "HelloWorld" als Multiplayer-Version
Ich habe eben keine Ahnung von dem ganzen "Online-Code" und die Codes, die ich online gefunden
habe, waren zu komplex, als dass ich da durchgeblickt hätte, was für was zuständig ist.
Es hätte ja sein können, dass man diese "Vorlage", die ich im Kopf hatte, in wenigen Minuten/Zeilen programmieren kann.

edit: um zu verstehen was ich mit "Vorlage" meine: ich dachte, wenn es so viele Apps gibt, die alle den gleichen Grundaufbau haben (Registrierung per Mail, einloggen, Spielerprofil, etc), dann gibt es vielleicht eine Vorlage, die jeder benutzt, sodass das eigentliche Spiel nur noch "dazu programmiert" werden müsste

Du darfst auch nicht direkt mit allem auf einmal anfangen.

Am Anfang steht sowieso das Konzept, in dem du klarstellst, was und wie du nachher alles machen willst:
z.b.
1. Online Spiel in Echtzeit oder Rundenbasiert/Aktionenbasiert?
2. Welche Server/Laufzeitumgebung steht dir zur verfügung
3. Welche DB willst du verwenden (vermutlich von 2. anhängig)?
4. Kommunikation zwischen Spielclient und Server, welches Protokoll (vorteile,nachteile von Protokollen mit einbeziehen)
5. aktuell ganz wichtig: Datenschutz ;)

zu 1)
Vielleicht kannst du mir da helfen, unter welchem Stichwort ich da suchen muss, denn es ist weder klassisch Echtzeit noch rundenbasiert: das Spiel soll ein Fußball-Manager werden. Die Spieler haben praktisch immer 24 Stunden Zeit, ihre Aufstellung und Taktik anzupassen, neue Spieler zu kaufen, etc.
Jeden Tag gibt es dann ein Spiel gegen einen anderen Spieler, das simuliert wird.
Eine echte Interaktion zwischen den Spielern gibt es nicht, außer dass man evtl Nachrichten oder Freundesanfragen verschicken kann.

Zu 2-5) Davon habe ich gar keine Ahnung :/

Zudem eine allgemeine Vorlage wäre vermutlich viel zu allgemein, da musst du auch ganz schön viel anpassen.

Ich würde mir erstmal pber die o.g. Punkte gedanken machen und entscheiden.

Alles klar, da werde ich mich dann wohl schlau machen müssen

Aber vergiss nicht: Wenn das Spiel später im Store verfügbar sein soll, brauchst du einen passenden Server mit öffentlicher IP. Wenn du den nicht gerade selbst hostetst, kommen da auch Kosten auf dich zu die du evtl. nicht per Werbung o.ä. decken kannst.

Dessen bin ich mir bewusst.

Vielen Dank für deine Antwort :)

— geändert am 27.05.2018, 19:00:40

Hilfreich?
Kommentieren
Jokel
  • Forum-Beiträge: 1.530

27.05.2018, 20:12:33 via Website

Hallo von mir auch ein Wilkommen.

Vielleicht ist Google Firebase was für dich.
Zu mindestens kannst du damit die Login Verwaltung machen. Da Firebase auch eine Realtime Database ist sollte das auch für dein Spiel nützlich sein.
Kosten los ist der Dienst leider nur bis zu einen begrenzen Umfang aber für den Anfang wird es schon reichen.
Kannst es dir ja mal ansehen. Einen Google Account hast du ja.

Hilfreich?
NOsDormo
Kommentieren
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

27.05.2018, 20:14:36 via Website

Wow, wenn du das alles allein umsetzen willst, dann hast du genug Arbeit vor dir ;)

Da gibt es kaum "Begriffe" zum suchen, das ist eine Standardanwendung für eine Client/Server Kommunikation mit Push Messaging etc.
Vielleicht da etwas einlesen.

Ich habe hier auch mal was gefunden was deinem Wunsch nahe kommt:

OpenSource Football Manager:
HowTo Artikel:
https://medium.com/@felipecsl/creating-an-android-app-for-beginners-part-i-410a7a64d9b1

Github:
https://github.com/EliFUT (android für die App in Java + Kotlin und backend für das Server Backend)

Pass aber auf, dass du dich nur inspieren lässt und nicht "Abschreibst". Evtl. dann auch den Entwickler/Referenz erwähnen.
Schau dir das mal an, dann wirst du schnell merkten, das das weit über einfache Grunlagen hinausgeht.

Ein paar Tipps wo du dich einlesen solltest:

  • Allgeimeine Client/Server konzepte (insb. Rest APi mit Json)
  • Serverseiteige API Programmierung in einer Sprache deiner Wahl (php auf standard Webserver, Java auf TomCat o.ä. Java Server,RubyOnRails,C# mit Asp.Net -...) -- Sprache vor dem Einlesen festlegen. Mit der Sprache legst du dir dann auch schon den Servertyp fest, php können fast alle, Java etc. ist meist teurer...

    • Nutzen von externen Libs wie Retrofit, OkHttp, Ion und verstehen deren Doku,Guava, Gson...
    • Schreiben von schönem wartbarem Code, das ist in den meisten Fällen der knackpunkt, dass man für änderungen ewig viel Aufwand betreiben muss.

Edit: @Jockel: Wenn er sowieso einen Server braucht, dann ist eine Friebase DB evtl. ungeschickt. Flexibler ist es, dann eine MySql oder vgl. zu nehmen, es sei denn man will im Google umfeld bleiben und das Backend dort hosten, das könnte aber teuer werden glaub ich (nur eine Vermutung, nicht auf Zahlen gesützt)

— geändert am 27.05.2018, 20:16:43

LG Pascal //It's not a bug, it's a feature. :) ;)

Hilfreich?
NOsDormoJokel
Kommentieren
Jokel
  • Forum-Beiträge: 1.530

27.05.2018, 20:45:16 via Website

@Pascal das mit FireBase war ein Vorschlag. Den er sich mal anschauen kann.
Sollte nicht die Lösung sein.
Zumindest ist es nicht schlecht um etwas in die online Geschichte rein zukommen. Denn er braucht keinen Server aufsetzen zu unterhalten und vor allen zu Programmieren. Gut ein paar PHP Skripte wird er schon brauchen. Aber das Erstellen einer API oder Rest fällt eigentlich weg.

Klar ist MySql vielleicht flexibler aber gerade das Realtime Prinzip finde ich schon toll.

Wie gesagt sollte es ein Beispiel sein, weil es viele ähnliche Apps gibt. Und er der Meinug war es gäbe ein fertig Lösung.
Natürlich kann man auch alles selber machen.

Nichts für Ungut habe es nur Gut gemeint.

lg J.

Hilfreich?
NOsDormoPascal P.
Kommentieren
NOsDormo
  • Forum-Beiträge: 4

28.05.2018, 14:45:22 via Website

OK, Vielen Dank schonmal für die Antworten.
Ich dachte, da ich das offline Spiel im Prinzip schon fertig habe, wäre es nicht so schwer, das ganze dann auch online zu programmieren.. da habe ich mich wohl geirrt :(

Eine Frage hätte ich dann noch:
Ich habe das Gefühl, dass das für mich zu schwer/viel ist bzw. zu lange dauert, das alles selbst zu lernen.
Wie lange würde denn ein erfahrener Programmierer in etwa brauchen, um diese Online-"Vorlage" zu programmieren ?
Ich will eben nicht, dass jemand die ganze App für mich programmiert, sondern ich hätte am liebsten eben eine leere Vorlagen-App in der die ganzen Online-Sachen da sind, mit der ich dann herum probieren kann.
Ich hätte auch kein Problem damit, einen Server zu kaufen, da ich von meiner App wirklich überzeugt bin und denke, dass sich das trotzdem rechnen würde.
Den ganzen Code für die Spielererstellung, für die Match-Simulation, für die Spielerentwicklung etc. habe ich ja schon selbst geschrieben.
Deswegen würde ich gerne jemanden bezahlen, dafür dass er mir solch eine Vorlage erstellt, aber eben nur wenn der Zeitaufwand und die damit verbundenen Kosten für mich nicht so hoch wären.
Oder macht das mit der Vorlage eher keinen Sinn und ich denke mir das Ganze zu einfach ?

Hilfreich?
Kommentieren
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

28.05.2018, 17:12:39 via App

Wenn du mit der "Vorlage" weiterarbeiten willst, misst du diese auch verstehen.
Das kannst du nicht, wenn du dich nicht in die Themen einliest etc.
D.h. selbst mit Vorlage brauchst du alle Infos und Verständnis um da ansetzen zu können.
D.h. da zahlst du ewig viel Geld für eine Vorlage und nacher hast du keine Ahnung wie diese zu benutzen ist....

Zudem: Du musst genau definieren, wie weit die Vorlage vor implementiert sein soll und auf welche Technologien (Server z.b. php oder Java etc.) aufgebaut werden soll.

Nach Gefühl würde ich sagen, ein erfahrener Entwickler braucht dafür ca. 5 - 10MT (je nachdem vieviel Umfang).
Beispiel Rechnung: maximal: 10T*8h = 80h.
80h*60€= 4800€
Und für einen Freelancer mit Erfahrung ist 60€/h vlt. noch zu wenig.Oder du suchst dir einen Werkstudent der das für weniger Geld umsetzt.

Wenn du es alles selbst machst, hast du erstmal keine Kosten wenn du deine eigene Zeit außen vor lässt.
Im Zweifelsfall brauchst du ein Jahr aber du hast danach das entsprechende KnowHow und kannst gut Programmieren.

— geändert am 28.05.2018, 17:15:56

LG Pascal //It's not a bug, it's a feature. :) ;)

Hilfreich?
NOsDormo
Kommentieren
NOsDormo
  • Forum-Beiträge: 4

28.05.2018, 18:36:37 via Website

Pascal P.

...

Alles klar, dann werd ich mal versuchen, mir das ganze Wissen selbst anzueignen :D
Noch einen Tipp, wie oder mit was ich am Besten anfangen sollte ?
Evtl gibt es auf Youtube eine Tutorial-Reihe oder ein verständlich geschriebenes Buch,
das ihr mir empfehlen könntet ?
Wie bereits geschildert, die Programmier-Basics habe ich auf jeden Fall drauf,
aber das wars dann eben auch.

Hilfreich?
Kommentieren
Jokel
  • Forum-Beiträge: 1.530

28.05.2018, 19:34:16 via Website

Hallo auf jeden Fall solltest du dich für eine Sprache entscheiden die du auf deinem oder auch erstmal eigenen freien Server benutzen willst. Für einen free Server wurde ich PHP vorschlagen.
Ebenfalls solltest du dich mit Datenbanken beschäftigen. Da wäre MySQL sinnvoll. Weil genau die Kombi PHP und MySQL von vielen Server angeboten wird.
Für den Server wirst du dir eine API Schnittstelle zur Datenbank und http schreiben müssen.
Auch wird wohl viel Programm Logik auf dem Server laufen und auf dem Handy größten teils nur Angezeigt und dann wieder Daten an den Server geschickt werden.
Der eigentliche Programmablauf läufst bei den meisten Spielen auf dem Server.

Dann brauchst du auch ein Daten Format mit dem du Daten austauschen willst zwischen Handy und Server da würde ich Json sagen.
Damit würde ich erst mal anfangen. Und nicht gleich dein Projekt sondern erstmal Erfahrung im Client Server Prinzip sammeln .

Aber das hat dir Pascal eigentlich auch alles schon gesagt .
Er kann das besser in Worte fassen als ich.

Einen link habe ich im Moment nicht parat.
Lg J.

Hilfreich?
Kommentieren
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

29.05.2018, 10:52:51 via Website

Du kannst nicht direkt "groß" anfangen.
Mache kleine Projekte, lies dir im Internet Tutorials dazu durch (auf Englisch).
Dann solltest du langsam voran kommen.

LG Pascal //It's not a bug, it's a feature. :) ;)

Hilfreich?
Jokel
Kommentieren
Rexxar
  • Forum-Beiträge: 2.563

30.05.2018, 17:08:04 via App

Ansonsten eignet sich auch die Unity Engine, das mit den Servern geht da ganz leicht. Dafür sind die Apps dann nicht nativ und es ist halt eig ne 3D Engine

Liebe Grüße, Rexxar :)
Moto Z Play Stock
Nvidia Shield Tablet K1
http://www.androidpit.de/forum/634540/allgemeines-faq-fuer-neulinge

Hilfreich?
Kommentieren