Du bist nicht angemeldet.

Werbeanzeige

H5::

Treue Seele

Beiträge: 385

Wohnort: Kiel

  • Private Nachricht senden

11

10.05.2015, 09:48

Also ich würde mal sagen für Go gibt es für so gut wie jede Datenbank ein Paket. Die Standard Library bringt ja sogar schon ein SQL Interface mit.

Hier kannst du nach Paketen suchen und schauen ob für dich etwas vorhanden ist: GoDoc

Wir benutzen unter anderem eine Aerospike Datenbank, und die würde ich mal sagen ist eher unbekannt, bietet aber auch exzellente Go Unterstützung. Gegen Python will ich auch nichts sagen, jedoch empfinde ich Go als produktiver. Der grundlegende Ansatz gefällt mir bei Go einfach besser, es gilt deutlich stärker Konvention vor Freiheit. Was dazu führt, dass man sich schnell in fremdem Code zurecht findet. Widerstrebt aber dadurch auch vielen. Dies sollte aber jeder für sich selbst raus finden, einfach mal mit allem etwas rumspielen sofern kein Zeitdruck dahinter steckt.

Edit: Nur als Anmerkung, die Google App Engine hat nicht viel mit Android zu tun. Google Cloud Endpoints. Gibt aber noch andere Anbieter, Microsoft Azure, Amazon...
Edit2: Java ServerSocket, hast du den backlog Parameter beachtet?
:love: := Go;

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »H5::« (10.05.2015, 13:35)


xardias

Community-Fossil

Beiträge: 2 772

Wohnort: Santa Clara, CA

Beruf: Software Engineer

  • Private Nachricht senden

12

10.05.2015, 20:17

Mir hat persönlich Python (Stackless Python !!! ) zugesagt. Es ist einfach, funktional und vertrauenswürdig.
Nur wenn du PHP schon komisch findest, dann wirst du von Python überrascht sein, was für Syntaxmöglichkeiten es denn gibt,
Mit Python habe ich mich auch schon auseinandergesetzt, sollte ich hierbei auf HTTP-Requests oder auf Sockets setzen? Kann man mit Python überhaupt auf einem Port lauschen?

Vielleicht waere AppEngine etwas fuer dich? https://cloud.google.com/appengine/docs
Vorteil waere, dass man sich um Skalierung keine grossen Gedanken mehr machen muss. Die API ist auch sehr nett und ne gute Gelegenheit mal was mit Go zu programmieren :)
Nachteil ist, dass man ziemlich an die Platform gebunden ist und nicht so einfach wechseln kann.
Ja, der Nachteil reicht, um diese Idee auszuschließen, ich möchte nämlich auch auf iOS und Windows Phone setzen.

Die Serverseitige Plattform schraenkt dich nicht ein auf welchen Plattformen du deine Client Anwendung entwickelst.
Heisst: WP und iOS funktioniert genauso gut mit AppEngine wie Android. Das hat nix miteinander zu tun.
Was ich mit "Platform gebunden" meine ist, dass du deinen Serverdienst nicht so einfach zu einem anderen Anbieter wechseln kannst, wenn dir App Engine nicht mehr gefaellt.

infusion93

Frischling

  • »infusion93« ist der Autor dieses Themas

Beiträge: 19

Wohnort: Frankfurt

Beruf: Informatikstudent

  • Private Nachricht senden

13

11.05.2015, 07:11


Python is life. Python is everything.

Du kannst mit Python sogar eigene Protokolle einführen,
wenn dir HTTP zuwider ist, aber ich würde dir abraten, da HTTP und Derivaten meist gut durchdachte Protokolle sind.

Kommt für mich auch immer darauf an wie schnell das ganze entwickelt werden soll. Ich kenne AppEngine nicht, aber wenn du kaum Zeit hast, nimm einfach HTTP. Ob Du dann PHP oder Python (du kannst auch javascript nehmen) ist dir überlassen.
Vielen Dank für die Antworten, ich werde versuchen, den Server mit Python zu entwickeln. ^^

Die Serverseitige Plattform schraenkt dich nicht ein auf welchen Plattformen du deine Client Anwendung entwickelst.

Heisst: WP und iOS funktioniert genauso gut mit AppEngine wie Android. Das hat nix miteinander zu tun.

Was ich mit "Platform gebunden" meine ist, dass du deinen Serverdienst nicht so einfach zu einem anderen Anbieter wechseln kannst, wenn dir App Engine nicht mehr gefaellt.
Dass der Server von der Sprache her unabhängig ist gegenüber den Clienten, ist mir klar. Da aber in dem Post davor von Skalierung, etc. gesprochen wurde, habe ich das so aufgefasst, dass es sich hierbei um die Android-Entwicklung selbst und nicht um eine Serversprache handelt. :huh:

xardias

Community-Fossil

Beiträge: 2 772

Wohnort: Santa Clara, CA

Beruf: Software Engineer

  • Private Nachricht senden

14

11.05.2015, 18:46

Skalierung in dem Zusammenhang bedeutet, dass dein "Server" sowohl mit 2 Spielern als auch mit 2 Millionen klar kommen kann.

PS: Python ist eine gute Wahl. Ich arbeite groesstenteils in Python und die Sprache macht definitiv Spass :)

15

11.05.2015, 20:53

Hier ist aber eine Grenze von 50 Clients auf einmal gesetzt, wenn ein weiterer Client ankommt, wird dieser "refused".

Wenn Du die Queue größer haben willst musst Du hier http://docs.oracle.com/javase/7/docs/api…ket(int,%20int) mehr übergeben. Skalierbar ist das so natürlich nicht wirklich.
Wenn es doch Java sein darf und Du unbedingt alles selbst machen willst, schau Dir mal http://netty.io/ an. Damit solltest Du recht locker 100k+ Connections hinbekommen.

Ich würde an Deiner Stelle einen einfachen HTTP-Service basteln, http://undertow.io/ macht hier ne ziemlich gute Figur: https://www.techempower.com/benchmarks/ Das gute an HTTP ist, dass man das praktisch unter jeder Bedingung durch ein Netzwerk bekommt und jede Plattform dafür einfache Mittel an Bord hat.

Als Format ist JSON sicher eine gute Wahl, ansonsten XML da bringen die meisten Plattformen auch eine sehr gute Unterstützung mit. Ansonsten ist protobuf eine gute Wahl, das wird z.B. auch von Diablo/Blizzard verwendet. Auch klassische Browsergame Firmen wie Goodgame Studios benutzen das u.A. auch.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Chromanoid« (11.05.2015, 21:16)


Mabenan

Frischling

Beiträge: 24

Wohnort: Bayern

Beruf: IT-Berater

  • Private Nachricht senden

16

12.05.2015, 13:01


[*]MySQL mag ich persönlich nicht. Wieso? Nur ein paar Beispiele


Unterm Video wird allerdings auch mehrfach geschrieben das der Herr sein MySQL system nicht richtig konfiguriert konnte/wollte. Ich hab diese "Fehler" auf meinen System geprüft und es gab jedes mal das erwartete Ergebnis aus.

Nimelrian

Alter Hase

Beiträge: 1 260

Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy

  • Private Nachricht senden

17

12.05.2015, 13:42


[*]MySQL mag ich persönlich nicht. Wieso? Nur ein paar Beispiele


Unterm Video wird allerdings auch mehrfach geschrieben das der Herr sein MySQL system nicht richtig konfiguriert konnte/wollte. Ich hab diese "Fehler" auf meinen System geprüft und es gab jedes mal das erwartete Ergebnis aus.


Wenn ich ein DBMS installiere erwarte ich, dass es sowas tut. Konfigurieren für Optimierungen finde ich in Ordnung, für grundlegende Funktionen, die jedes andere DBMS out-of-the-box bietet, nicht.
Ich bin kein UserSideGoogleProxy. Und nein, dieses Forum ist kein UserSideGoogleProxyAbstractFactorySingleton.

Schrompf

Alter Hase

Beiträge: 1 366

Wohnort: Dresden

Beruf: Softwareentwickler

  • Private Nachricht senden

18

12.05.2015, 14:01

Ich habe für mein kleines Spiel ein paar PHP-Seiten aufgesetzt, die Einrichtung, Abfragen und Eintragungen in eine MySQL-Datenbank vornehmen. Client-Seitig habe ich C++ und libCurl genommen, aber Du wirst halt stattdessen die Programmiersprache nehmen, in der Dein Spiel geschrieben ist.

Ich hatte kurz Spaß mit einem Cheater, weil ich die Eintragungen allzu primitiv vorgenommen habe, aber jetzt mit ein bisschen Verschlüsselung ist das alles kein Problem mehr.

Und Du kannst das auch alles fertig bekommen. Es gibt diverse Leaderboards-Anbieter, die für kleine Sachen wie ein paar hundertausend Einträge kostenlos sind, und deren SDK Du fertig kriegen kannst.
Häuptling von Dreamworlds. Baut aktuell an nichts konkretem, weil das Vollzeitangestelltenverhältnis ihn fest im Griff hat. Baut daneben nur noch sehr selten an der Open Asset Import Library mit.

Mabenan

Frischling

Beiträge: 24

Wohnort: Bayern

Beruf: IT-Berater

  • Private Nachricht senden

19

12.05.2015, 14:30


[*]MySQL mag ich persönlich nicht. Wieso? Nur ein paar Beispiele


Unterm Video wird allerdings auch mehrfach geschrieben das der Herr sein MySQL system nicht richtig konfiguriert konnte/wollte. Ich hab diese "Fehler" auf meinen System geprüft und es gab jedes mal das erwartete Ergebnis aus.


Wenn ich ein DBMS installiere erwarte ich, dass es sowas tut. Konfigurieren für Optimierungen finde ich in Ordnung, für grundlegende Funktionen, die jedes andere DBMS out-of-the-box bietet, nicht.



Wenn ich ein DBMS installiere erwarte ich das ich damit Datenbanken Managen kann und nicht mir das Denken abgenommen wird. Weil ein Programm was unter dem Vorwand der Bedienbarkeit Einschränkt ist meiner nach Schlechter als ein Programm was mir die Option für seine Fürsorglichkeit offen lässt.

Nimelrian

Alter Hase

Beiträge: 1 260

Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy

  • Private Nachricht senden

20

12.05.2015, 16:17

Sorry, aber wenn ich Spalten als "NOT NULL" deklariere, dann erwarte ich, dass mein DBMS mir eine Fehlermeldung entgegenwirft, wenn ich da bei einem Insert keine Werte angebe. Da sollte man nichts konfigurieren müssen.
Ich bin kein UserSideGoogleProxy. Und nein, dieses Forum ist kein UserSideGoogleProxyAbstractFactorySingleton.

Werbeanzeige