Programiersprache für Browsergame

DerFabi

Member
11 Juni 2010
6
2
Wir haben vor über längere Zeit ein Browsergame zu erstellen.

Sind durchaus keine Anfänger im programmieren und haben etwas Ahnung aber nicht unbedingt in den Sprachen die man für soetwas benötigt.

Daher eine ganz grundsätzliche Frage:

Was für Sprachen sind für ein Browsergame zu empfehlen bzw. notwendig zu lernen.
Also für alles drum und dran, von eigentlichen Spiel, über die Darstellung im Web und die Verbindung von der Seite und dem Spieler mit dem Server.


Ich bedanke mich schon mal für jede Antwort :)
 
Server seitig:
Dürfte PHP die Oberhand haben, dazu noch MySQL als Datenbank.

Client seitig:
Natürlich (X)HTML/CSS.
Sollen Inhalte dynamisch nachgeladen werden, ohne dass die gesamte Seite neu geladen werden muss, wird AJAX(keine eigenständige Programmiersprache, siehe JavaScript) benötigt.
Für Effekte, wie Drag&Drop, auf- und abblenden usw. kommt JavaScript und teilweise CSS in Frage.
 
Danke für die gute Antwort,

ich hab gehört man kann statt PHP auch einige andere benutzen ASP.NET oder Perl zum Beispiel, ist PHP am ehesten zu empfehlen?
 
Kommt ganz drauf an. Man kann z.B. auch Java - sowohl server-(JSP), als auch clientseitig (Applets) einsetzen. Flash würde sich auch anbieten, um viel grafischen Schnick-Schnack auf dem Spielerbildschirm anbieten zu können.

Es kommt auch grundliegend drauf an, wie das Spiel funktionieren soll. Ein Spiel, was nahe Richtung Echtzeit geht, hat sicherlich andere Anforderungen, als ein Spiel, was rundenbasierend läuft.
 
Es kommt auch grundliegend drauf an, wie das Spiel funktionieren soll. Ein Spiel, was nahe Richtung Echtzeit geht, hat sicherlich andere Anforderungen, als ein Spiel, was rundenbasierend läuft.
Genau das wollte ich auch schon schreiben. Das ist wohl das entscheidentste Kriterium bei der Wahl der Sprache.

Wenn ich 'nen kleinen Tipp einstreuen darf: Werdet Euch erst über die Architektur Eures Systems klar, welche Komponenten werden in welcher Zusammenarbeit gebraucht und welche Anforderungen und Schnittstellen hat jede einzelne - komplett ohne auf irgendeine konkrete Sprache einzugehen (im Endeffekt also einen klassischen Entwurf). Daraus dürfte dann sehr schnell ersichtlich werden, welche Sprachen für Euch überhaupt in Frage kommen.

Welche von den verbliebenen Ihr dann wählt, ist im Endeffekt nahezu egal. Wenn Ihr beispielsweise noch nie was mit PHP gemacht habt, aber relativ fit in Perl seid, macht's in Perl. Ihr müsst halt nur mit der Sprache umgehen und das von euch konstruierte System umsetzen können.

Und noch was: Unterschätzt das Ganze nicht. Lasst Euch lieber viel mehr im ersten Moment scheinbar vergeudete Zeit in der Planung als dass Ihr später irgendwann ein halbgares System habt, das in einer scheinbar guten, aber doch total ungeeigneten Architektur feststeckt, weil entscheidende Anforderungen erst sehr spät erkannt wurden. Dann vergeudet man nämlich weit mehr Zeit im Umstricken als wenn man's gleich richtig gemacht hätte... ;)
 
ASP.Net hab' ich eher schlechte erfahrungen gemacht.

Je nachdem wie komplex es wird wuerde ich entweder PHP (Symfony Framework) oder Java (Spring) verwenden.

Java clientseitig wuerde ich abraten, obwohl ich ein absoluter Java Fan bin. Es is einfach zu schwer und basiert genau wie Flash auf einem Plugin, was eventuell User abschreckt/ausschliesst.
 
[...] und basiert genau wie Flash auf einem Plugin, was eventuell User abschreckt/ausschliesst.
Plugin wäre aber kein Grund, da ein Browsergame ja eine spezielle Zielgruppe anspricht.

Is genauso, wie du dir auch kein Computer-Spiel kaufst, wenn du zuwenig RAM hast, um die Systemvoraussetzungen zu erfüllen.
 
Von Ruby habe ich auch schon gelesen, soll eigentlich recht gut und einfach sein..

Also wir werden ersteinmal etwas Zeit in die Planung stecken ich denke der tleilax hat da schon sehr recht :) , danke für die netten Antworten..
Werde mich dann evt. bei Zeiten wieder melden ;)
 
war ja klar, das ein Teil wieder kommen muss und ihre Lieblingssprache und Lieblingsframework empfehlen :roll:

Eine Sprache und Framework sucht man aus persönlichen Präferenzen aus und nicht weil irgendwer in einem Forum irgendetwas empfiehlt.

Aber gut, im Grunde wissen wir ja schon, dass wenn so ein Thread wie der von DerFabi erstellt wird, es in aller Regel doch scheitert, weil sie nicht die nötige Erfahrung haben und solch ein Projekt total unterschätzt beginnen und sich dann total verstricken.
 
Mag sein das es scheitert, aber ich sehe kein Problem dadrin...

Wir werden es versuchen... und ich denke nicht das wir es unterschätzen..
wie gesagt einn wenig kennen wir uns dann doch schon aus und wir haben auch schon mal ein Browsergame am Konzepttisch gehabt und haben es dann verworfen, weil wir bemerkten, dass wir es nicht schaffen würden, aber inzwischen halten wir es für realistisch, natürlich mit genug Zeit.

Warum darf ich mir hier nicht mal ein paar Meinungen einholen welche Sprachen die Programmierer-Welt dazu empfiehlt?
Schaden kann es sicher nicht..


Also ein wenig mehr differenzierten Rationalismus als so einen sinnlosen Kommentar, wenn du schon etwas bemängelst dann spezifiziere dich zumindest etwas und sag was du für einen Gegenvorschlag hast.
 
Warum darf ich mir hier nicht mal ein paar Meinungen einholen welche Sprachen die Programmierer-Welt dazu empfiehlt?
Schaden kann es sicher nicht..
Weil jeder nur das empfiehlt, was er selber kann, aber objektiv keine geeignete Empfehlung abgeben kann, solang noch nix näher über das eigentliche Ziel bekannt is.

Wenn du wirklich sinnvolle Posts haben willst, solltest du dich am besten für ein paar Wochen aus diesem Thread zurückziehen und dann wieder hier melden, wenn du ein gut durchdachtes Konzept hast und weißt, was du haben willst und wie es funktionieren soll.
Dann kann man sicherlich auch besser drüber diskutieren.
 
In einem sind sich aber alle einig.

Also Datenbank technisch gesehen ist postgre SQL eine bessere Alternative zu MySQL. MySQL hat zwar in den letzten 2 Jahren gut aufgeholt, aber ich finde es immernoch besser.
SQL ist SQL, aber die Fuktionalität eines DBMS ist für mich auch ein Punkt der in meine Entscheidung einfließt.

Java wird meist in Form von Servlets benutzt. Es ist nicht wirklich anders als PHP. In beidem werden Klassen geschrieben, die die Schnittstellen ergeben, sei es zur Datenbank oder für die Ausgabe.
Ruby ist, wenn man es kann auch einfach. Kenn mich mit dem Client-seitigen Teil von Ruby nicht aus, aber bei Java oder PHP ist immer ein HTML/CSS/JS Mix.

Man sollte jedenfalls eines Beachten. Templates und Code der die Templates füllt, strikt zu trennen.
Für jede Seite, ein Template plus Codefile -> Projekt bleibt im Detail übersichtlich!

Viel Spaß beim konzeptionieren !
 
ASP.Net hab' ich eher schlechte erfahrungen gemacht.

Inwiefern hast du schlechte Erfahrung mit gemacht?

Wie hier schon gesagt wurde, muß man erstmal wissen was genau man machen will. Denn erst anhand dessen kann man eher sagenwas geeignet ist und was nicht.

Das genau wie die Frage:" Welches CMS könnt ihr empfehlen". Auch da wird jeder sein Lieblings CMS nennen. Gibt einige die Typo3 nnenen würden, ich mit sicherheit nicht.

Jeder hat nun mal auch seine vorlieben. Ich neige momentaan lieber zu c# als zu php, lieber zu mysql/mssql als zu Postgres (Ich finde pgadmin so gräßlich), das wird dann genutzt wenn es sinnvoll ist (Geodaten).
 
Kenn mich mit dem Client-seitigen Teil von Ruby nicht aus, aber bei Java oder PHP ist immer ein HTML/CSS/JS Mix.

Client und Server haben nichts miteinander zu tun, HTTP ist die einzige Schnittstelle, an die man sich halten muss, der Rest ist beliebig austauschbar. Deshalb spielt es -für den Client- auch absolut keine Rolle, ob du Ruby oder PHP oder Java einsetzt,


Templates und Code der die Templates füllt, strikt zu trennen.

MVC ist auch übersichtlich.
 
Also Datenbank technisch gesehen ist postgre SQL eine bessere Alternative zu MySQL. MySQL hat zwar in den letzten 2 Jahren gut aufgeholt, aber ich finde es immernoch besser.
SQL ist SQL, aber die Fuktionalität eines DBMS ist für mich auch ein Punkt der in meine Entscheidung einfließt.
toll, dass Entscheidungen mit Gründen belegt werden :roll:
Und komm mir ja nicht mit Performance ;) Es gibt keinen Benchmark im www, der in irgendeiner Art fair oder reproduzierbar ist. Denn die Postgre-Leute können kein MySQL richtig konfigurieren und umgekehrt.
Ich vertraue da auf die BigPlayer (Google, Facebook, Youtube), dass die sehr genau wissen, welche Datenbank besser performt, denn die werden das Geld haben, dies ordentlich zu testen.
Featurevergleich: PostgreSQL kann mehr als MySQL, richtig, braucht man das auch? Das ist eine ganz andere Sache.
MySQL hat das Konzept von pluggable Storage-Engines um Dinge hinzuzufügen, die fehlen, hat es dadurch mehr Funktionalität als PostgreSQL?
Schwer zu sagen, in manchen Bereichen sicherlich, in anderen nicht.
Eine Engine für Graphen (OQGraph), DataWarehouses (InfiniDB), Streaming von Dateien aus der DB (BLOB Streaming) fügt MySQL sicher sehr viel Funktionalität hinzu, und macht das Packet runder, ein Ersatz für Materialized Views ist es aber nicht.
Ob die eine oder andere Datenbank besser ist, kommt auf die Anforderungen an.

Ich neige momentaan lieber zu [...] mysql/mssql als zu Postgres (Ich finde pgadmin so gräßlich), das wird dann genutzt wenn es sinnvoll ist (Geodaten).
Das Aussehen der Verwwaltungsoberfläche ist natürlich auch ein riesen Grund eine andere Software zu nutzen :p
Nebenbei bemerkt, falls du es nicht wissen solltest, hat auch MySQL Geodaten-Support. Allerdings nur in MyIsam.
 
Welche Db nutzt denn google & Co??

Na so habe ichs ja nicht gerade gemeint.

Du meinst andere DB oder?

Denn bei Software ist schon die useability wichtig!
Willst du ein Programm haben was du leicht und schnell bedienen kannst oder etwas was unhandlich ist? Ich hätte gern Datev (Kanzlei ReWe) weil die useability dort super ist im gegensatz zu Lexware, leider bekommt man Datev nicht als "Endkunde".

Sicher bei der DB ist die DB das wichtige und nicht die Aufmachung, der verwaltung.
Das es das inzwischen für MySQl gibt habe ich mitbekommen, aber wie siehts mit der performance aus? Und wie sieht es mit Tools aus? Gibts da auch ausreichend Tools mit denen man z.B. OSM-Daten leicht reinbekommt und auch wieder raus (Kacheln?)

Aber glaube das wieder ein anderes Thema ;)
 
Zuletzt bearbeitet:
Welche Db nutzt denn google & Co??
MySQL

Für die Suche jedenfalls keine relationale Datenbank.
richtig, wäre ja auch totaler Quatsch :mrgreen:

Denn bei Software ist schon die useability wichtig!
richtig, aber du willst mir nicht sagen, dass du alle 5min in den Administrationstools der Datenbank hängst oder?
I.R. hat man sich ja Scripte oder einen Adminbereich gebaut um nicht mehr in der DB rumfummeln zu müssen.

Das es das inzwischen für MySQl gibt habe ich mitbekommen, aber wie siehts mit der performance aus?
teste es

Und wie sieht es mit Tools aus? Gibts da auch ausreichend Tools mit denen man z.B. OSM-Daten leicht reinbekommt und auch wieder raus (Kacheln?)
innerhalb weniger Sekunden in Google gefunden :roll:


Aber kommen wir zurück zum Thema.
Der Thread-Ersteller soll die Sprachen und Tools nutzen, mit denen sich das Problem am besten lösen lässt und das findet man eben erst heraus, wenn man seine Pläne konzeptioniert hat.
Möchte man Comet anbieten, bleibt z.B. noch kaum eine Sprache oder Software übrig (soweit ich weiß setzt jede einigermaßen sinnvoll wirkende Implementierung auf Jetty Continuations)

Die Anforderungen bestimmen die Software, nicht die persönliche Präferenz.
Es bringt ja nichts wenn ein System mit PHP/Perl/Python/Java/usw hingefrickelt wird, nur weil man Konzepte versucht umzusetzen, die mit der Sprache gar nicht möglich sind.