mmofacts.com

Browsergame in Java

gepostet vor 18 Jahre, 4 Monate von garyx7de
HI,
ein Kumpel meinte geraade ob es nicht von Vorteil wär wenn man ein Browsergame in Java schrieben würde, was haltet ihr davon? bzw wo seht ihr die vor und nachteile?
gepostet vor 18 Jahre, 4 Monate von Kampfhoernchen
Client oder Serverseitig?

Clientseitig: Nein, viele mögen keine Applets, außerdem ist Java an vielen Schulrechnern nicht verfügbar.

Serverseitig: Hier schon eher. Dabei kommts jedoch darauf an, wie du Java einsetzt. Als Servlet oder als JSP.
gepostet vor 18 Jahre, 4 Monate von garyx7de
Servlet?
JSP ist ja der jave server oder?

ja wenn dann nur Serverseitig aber am besten auch clientseitig
gepostet vor 18 Jahre, 4 Monate von tc_coder
Original von Kampfhoernchen

Clientseitig: Nein, viele mögen keine Applets, außerdem ist Java an vielen Schulrechnern nicht verfügbar.


Naja verfügbar ist es meist schon aber die Version ist dann total veraltet.
gepostet vor 18 Jahre, 4 Monate von HaSkEeR
also in meiner schule ists nicht verfügbar, was daran liegt, dass schulen in österreich nur die i-net kosten vom bundesland bezahlt bekommen, wenn sie verhidnern, dass schüler auf seiten mit pornografischen inhalt oder eben solcher spiele kommt...
gepostet vor 18 Jahre, 4 Monate von MrMaxx
Der Einsatz von Java ist in meinen Augen sehr Lohnenswert, fast unabhaengig davon, was du machen willst.

Ich nehme mal an, das du ein Browsergame implementieren möchtest.
Hierbei bietet dir J2EE eine sehr saubere Welt, in der du eigentlich alles findest, um dich der eigentlichen Programmierung zu widmen (und nicht erst den Rahmenbedingungen).

Für die meisten Bedürfnisse reicht jedoch alles, was du mit einem Tomcat Server zum laufen bekommst. Der Tomcat Server ist ein "Web Container", der die JSP und Servlet Spezifikationen implementiert.
Allerdings ist die Programmierung mit JSP und Servlets nicht so einfach wie die mit PHP. Mit PHP hast du einen leichteren Start, da du sofort losscripten kannst und die Vorbedingungen (Apache+PHP) fast überall zu bekommen sind.
Ein Tomcat Server findest du hingegen meist erst in mit den etwas höheren Preisregionen der Webangebote.

Solltest du schon Erfarungen mit Java gesammelt haben, dann kann ich es dir nur 100%ig empfehlen. Besonders das Arbeiten MVC Frameworks, wie Struts, JSF oder Tapestry ist eine wahre Wonne. Der Aufwand sich ein eines dieser Systeme einzuarbeiten lohnt sich, da sie den Entwicklungsvorgang übersichtlicher machen und dich sauber getrennten Code produzieren lassen.

Auch die Einbindung deiner RundenLogik ist einfach, denn mit JCrontab und anderen Timern kannst du einfach alle x Minuten, oder jede Stunde etc bestimmte Funktionen aufrufen lassen ohne dabei die JAva Welt zu verlassen. So kannst du z.B. einfacher deine Datenbankkonsistenz wahren (indem die ensprechende Funktion als erstes Usereingaben blockiert).
Manch andere BGs implementieren ihre Rundenlogik in C.

Was die Clientseitige Implementation über Applets angeht kann ich mich meinen Vorrednern nur anschliessen. Applets haben sich als technologische Sackgasse herausgestellt, die nurnoch sehr wenig benutzt werden. Solltest du du die Funktionalitaet eines Rich-Clients zur Verfuegung stellen wollen, dann schreib auch einen und verteile ihn über JNLP.

Bis denne ...
Mr.Maxx

P.S.:Wenn du es unbedingt willst gibt es sogar eine Java/PHP Bridge, so das du deine Logik in Java schreiben könntest und die Ausgabe in PHP.
P.P.S.: Ich habe bisher nicht soo viel Erfahrung mit der Implementation von BGs sammeln können, also korrigiert mich, wenn irgendetwas nicht so stimmt.
gepostet vor 18 Jahre, 4 Monate von TheUndeadable
Servus,

zum Client: No way. Java-Installationen im Browser sind nicht immer mit Sicherheit und Sicherheit geprägt und das Boot-Up der JVM ist manchmal erbärmlich langsam. Weiterhin stell ich mir dann die Frage, ob man dann nicht besser ein eigenes Client-Game schreiben soll.

Zum Server:
Auf jeden Fall. Ich komme zwas aus 'der anderen Ecke' wie Java (ASP.Net), aber alle Erfahrungen, die ich dort gemacht haben, treffen zum großen Teil auch auf Java zu.
Persönlich hat sich bei mir seit der Umstellung von PHP auf ASP.Net die Entwicklungszeit halbiert und die Stabilität und Wartbarkeit meiner Applikationen hat auf jeden Fall zugenommen.

Ein kleiner Testserver kostet zum Beispiel bei Hosteurope etwa 20 EUR im Monat. Dabei ist dann der Apache Tomcat oder IIS mit ASP.Net. Dies ist ein akzeptabler Preis für einen Server. Daher kann ich MrMaxx in Sachen Preis nur teilweise zustimmen.

Bei einem komplizierten Browsergame wirst du im ein Backend in einer Nicht-PHP-Sprache fast nicht herumkommt. Im Regelfall bedeutet dies die Duplikation vieler Routinen (in PHP und der 'anderen' Sprache). Nutzt du eine ordentlich kompilierte Sprache, die du sowohl auf der Webseite, als auch auf der Backendseite nutzen kannst, so kannst du die Bibliotheken einfach einbinden. Weiterhin gibt es ein ordentliches Framework. PHP ist leider historisch gewachsen und einen harten Schnitt wird es hoffentlich in der Version 6 geben. Beispiel (str_replace, substring, strpos). Die andere Seite hat (String.Replace, String.Substring, String.IndexOf, also schön strukturiert).

In Sachen Performance braucht sich Java nicht zu verstecken. Die JVM wird nur einmal gestartet, die Applikation vorkompiliert und dann geht es rund.

Zur Java-IDE: http://www.eclipse.org, http://developers.sun.com/prodtech/javatools/jsenterprise/index.html
Zur ASP.Net-IDE: http://www.microsoft.com/germany/msdn/vstudio/express/vwd/default.mspx
gepostet vor 18 Jahre, 4 Monate von Fasi
Ich Arbeite seit einiger Zeit mit JSTL (Java Standard Tag Library) und anderen Taglibs für mein Browsergame.

Ich setzte auf der Server Seite Tomcat ein, der Client braucht kein Java. Für die Anzeige der Seiten ist JSTL wirklich super geeignet. Eine Seite lässt sich ähnlich wie PHP aufbauen.

Die Logik des Spiels (z.b. das Kampfsystem) lässt sich nur mühsam mit JSTL realisieren. Da schreibt man besser Java Classen.

Was ich sehr praktisch an JSTL finde ist dass man was im Code ändern kann ohne das ein Restart von Tomcat nötig ist. Aus dem JSTL Code wird im Prinzip automatisch ein neues JSP-Servlet generiert. Ändern man eine Java Classe, dann muss man die erst kompilieren und Tomcat neu starten.

JSTL kann man auch gut kombinieren mit Struts oder anderen Frameworks.

jakarta.apache.org/taglibs/index.html
gepostet vor 18 Jahre, 3 Monate von Macavity
gibt es denn eine einfache möglichkeit zu testen ob der server java kann?
gepostet vor 18 Jahre, 3 Monate von Kampfhoernchen
Kleines Java-Programm schreiben, ausprobieren. Muss ja net mehr machen als ein "hallo welt" ausgeben.
gepostet vor 18 Jahre, 3 Monate von MrMaxx
Macavity...

falls du einen richtigen Server meinst, auf den du Zugang per ssh hast, dann tipp einfach mal "java --version" ein, und dann weisst du was für ne java Version du drauf hast. Solltest du kein Java installiert haben, dann lad es dir von http://java.sun.com runter und entpacke es z.b. nach /opt/java und mach das Verzeichnis /opt/java/bin deinem $PATH bekannt.
Danach dann noch den TomCat ruff ... und dann kanns losgehen


Falls du nur Webspace ohne ssh Zugang auf einem Server gemietet hast, dann schaust du am besten in der KonfigurationsOberfläche des Angebots deines Providers nach. Dort suchst du nach einem TomCat-Server. Wenn du den nicht findest, dann ist es wohl essig ...

Mr.Maxx
gepostet vor 18 Jahre, 3 Monate von Macavity
hm also essig... aber was ist mit Applets oder Webstart? gehen die nicht immer und überall?
gepostet vor 18 Jahre, 3 Monate von mifritscher
Applets gehen schon überall, aber schon alleine die Startzeit, bis bei den Browsern Java angeschmissen ist vertreibt so manchen...

Auf diese Diskussion antworten