java browsergame entwickeln

FlitzeBogen

Mitglied
Hi,

ich wollte als kleines Projekt ein GANZ simples Browsergame entwickeln.
Das Problem ist egal wo ich suche, es gibt keine Themen über die Java Webentwicklung (Browserspezialisiert)...

Kann man es überhaupt mit Java machen?
MfG
 
Hi,

ich wollte als kleines Projekt ein GANZ simples Browsergame entwickeln.
Das Problem ist egal wo ich suche, es gibt keine Themen über die Java Webentwicklung (Browserspezialisiert)...

Kann man es überhaupt mit Java machen?
MfG

Also Java als Websprache gibt es sicher genug Seiten bei Google. Um HTML/Javascript/CSS kommst du aber nicht herum sofern du nicht ein Applet, Flash oder irgendwelche anderen Plugins nutzen willst.

Bevor du dir also überhaupt zum Browsergame selbst machst, solltest du dich darüber informieren welche Technologien es gibt. Zb. könnte der Server des Browsergames in Java geschrieben sein und mit einer NoSQL Datenbank arbeiten und die Weboberfläche in mit PHP und HTML/CSS/Javascript geschrieben sein...
 
Ansatz, wenn es wirklich Java sein soll (und nicht HTML 5 oder Flash oder Silverlight etc.)

Das Game braucht eine GUI, also in der Java Doku von Oracle nach Graphic suchen.
Das Game braucht eine Ereignissteuerung, also in der Java Doku von Oracle nach Thread suchen.
Und und und.

Fazit:
Das Game auf dem Papier ausgestalten im Layout und in der Steuerung, so konkret wie möglich.

Eine Java-Anleitung für Java 7 mit Beispielen beschaffen und dort die Kapitel nach Bedarf der Ausgestaltung anschauen.
Abgleich der Vorstellungen mit dem, was Java kann.
Galileo Computing - <openbook> - Bücher online lesen und herunterladen

Eclipse Classic beschaffen (Free) und installieren. Dort die Beispiele der Javaanleitung testen.
Eclipse Downloads

Klar: Applet-Tag in HTML ist bekannt. Eclipse erstellt das Applet auch selbst.

Ohne Aneignung der Java-Komponenten - beginnend mit einfachen Oberflächen, also unter Anleitung -
wird es schwer.

Ansonsten: Java ist generell alles andere als easy.
 
Also eigentlich kommen bei einem modernen und schön gestalteten browsergame nur 3 sachen in frage:

applet mit 2d oder 3d grafic engine, und normalen networking
Grafisch die wohl schönste Lösung aber eindeutig zuviel für den anfang.

Wicket, sehr saubere möglichkeit dynamisches webzeugs zu machen, vorteil ist das wicket fast normales html benutzt, komplizierte sachen kann/muss man sich in javascript selber basteln.

GWT, dazwischen, gwt compiliert code der auffem client läuft auf javascript und läst den dann im browser laufen. Ermöglicht eine ziemlich gute reaktionsfähigkeit, würde sagen man kann damit mit flash mithalten vom ergebnis her.

Und dann gibt es noch jsp&jsf&servlets, zumindest servlets sollte man verstehen weil darauf baut der ganze andere kram auf. jsp und jsf zur vollständigkeit halber mla angucken ist auch nicht schlecht, die beiden sind jedoch schon 10 jahre lang veraltet konzeptionell.
 
Willst du wirklich auf dem Client Java laufen lassen oder soll der Client HTML / JS oder Flash nutzen und nur serverseitig Java zum Einsatz kommen?
 
Also ich bin grad ziemlich angetan von Javascript, bzw Coffeescript.

Mit HTML5 und dem Canvas kann man ziemlich viel machen, im Grunde alles, was man auch mit dem Java-Canvas in nem JPanel machen kann.

Dazu Node.JS und man kann in der gleichen Sprache und mit der gleichen Codebase die Serverseite entwickeln.

Zur Kommunikation nimmt man z.B. socket.io.

Und mit Coffeescript wird Javascript zu ner echt coolen Sprache. ;-)
 
Falls du ein simples Spiel zum Laufen bringen willst ohne vorher jahrelang zu studieren oder ziellos in APIs zu wühlen:

1) Schau bei java4k.com vorbei
2) copyPaste vom Quellcode eines der unzähligen Spiele nach Eclipse
3) run as Applet
4) Code modifizieren und Spaß haben

damit lernst du schneller, besser und hast mehr Freude.

z.B. das hier (zufällig ausgewählt)
Java4K - Minimum Games, Maximum Fun!

Natürlich ist das bei einer 4k Restriktion kein sauberer OO Programmierstil.
Andererseits bekommen die meisten NIE ein Spiel fertig, weil sie den ganzen Tag über Designpatterns+Technologien nachdenken.
 
Also ich bin grad ziemlich angetan von Javascript, bzw Coffeescript.

Mit HTML5 und dem Canvas kann man ziemlich viel machen, im Grunde alles, was man auch mit dem Java-Canvas in nem JPanel machen kann.

Dazu Node.JS und man kann in der gleichen Sprache und mit der gleichen Codebase die Serverseite entwickeln.

Zur Kommunikation nimmt man z.B. socket.io.

Und mit Coffeescript wird Javascript zu ner echt coolen Sprache. ;-)

Naja HTML5 ist ganz nett, doch solange der Standard nicht verabschiedet, geschweige denn sauber umgesetzt ist wird das so nichts werden. Wenn du nur einen Browser unterstützen musst (z.B. Chrome) lassen sich damit schon ganz nette Dinge anstellen, sobald du aber ein kommerzielles Spiel mit möglichst vielen unterstützten Plattformen machen sollst führt derzeit (leider) noch kein Weg an Flash vorbei oder eben ein Java Applet (irgs).
 
Applets kann man meiner Meinung nach getrost vergessen, falls man ein großes Publikum erreichen will und Flash hat keine Zukunft.

Naja HTML5 ist ganz nett, doch solange der Standard nicht verabschiedet, geschweige denn sauber umgesetzt ist wird das so nichts werden. Wenn du nur einen Browser unterstützen musst (z.B. Chrome) lassen sich damit schon ganz nette Dinge anstellen, sobald du aber ein kommerzielles Spiel mit möglichst vielen unterstützten Plattformen machen sollst führt derzeit (leider) noch kein Weg an Flash vorbei oder eben ein Java Applet (irgs).

Das hat sich zum Glück geändert seitdem es LibGdx gibt 🙂
Kann ich jedem wärmstens empfehlen:
Ich code bequem unter Eclipse mit seinen ganzen Annehmlichkeiten (kein Javascript oder Flash Schrott) und kann den selben Code ohne Anpassungen auf Android laufen lassen.
HTML5 geht über GWT ebenfalls, sogar iOS (bisher mit Einschränkungen).

Libgdx - Desktop/Android/HTML5 Game Development
 
Libgdx - Desktop/Android/HTML5 Game Development schon disqualifiziert, da WebGL in IE nur über Chrome Frame unterstützt wird, ansonsten sehr interessantes Konzept.
Es geht ja auch hauptsächlich um Desktop und Android (und iOS) bei LibGdx. HTML5 ist ein netter Bonus.

Du hast von kommerziellen Spielen geschrieben, die auf vielen Plattformen laufen sollen - wie viele kannst du denn aufzählen, die mit WebGL gemacht sind? Da ist doch ein kleiner Riss in deiner Argumentationskette, falls magelhafte Unterstützung in einem Browser das Framework disqualifiziert.
 
Wir hatten über Browsergames gesprochen und da ist HTML5 kein netter Bonus sondern die einzige echte Alternative zu Flash. Wenn es um Grafikrendering geht wird da WebGL die einzige sinnvolle Technik in HTML5 sein.

Vielleicht solltest du die Argumentationskette dann doch noch einmal nachvollziehen.
 
Als ich LibGdx vorgeschlagen habe, habe ich deinen Beitrag zitiert, in dem es um kommerzielle Spiel auf möglichst vielen Plattformen ging.
Ich schlage LibGdx vor, von dir kommt nur altklug "disqualifiziert, da WebGl und IE sich nicht verträgt".
Ein kommerzielles Spiel, das auf WebGL basiert, fällt dir nicht ein. Viele kommerzielle Spiele gibt es im Browser nicht... doch halt!
Das erfolgreichste Spiel überhaupt: Minecraft. Läuft mit Lwjgl im Browser.
Rate mal, was LibGdx als Desktop Backend nutzt... Lwjgl. Kann man prima als Applet einbinden.
Hast du nicht Applets neben Flash als einzige Alternative genannt?
Mal davon abgesehen, dass du in einen Java-Forum Flash nennst aber nicht Unity... damit erreicht man weitaus mehr Leute (Xbox, PS, Browser,...)

HTML5 habe ich als "netten Bonus" erwähnt, da man mit Browsergames kaum Geld verdienen kann ("kommerziell").
"Netter Bonus" zudem, da man es per Knopfdruck ohne Entwicklungsaufwand geschenkt bekommt, wie auch die Android Version.
Android und Desktop (und iOS) habe hervorgehoben, da nur hier ein richtiger Markt ("kommerziell") vorhanden ist und man die meisten Leute erreicht.


Schieß doch bitte noch ein Eigentor.


Wir hatten über Browsergames gesprochen und da ist HTML5 kein netter Bonus sondern die einzige echte Alternative zu Flash. Wenn es um Grafikrendering geht wird da WebGL die einzige sinnvolle Technik in HTML5 sein.
Tooor!
Ich versteh dich echt nicht... erst disqualifizierst du LibGdx, da es WebGL beim HTML5 Backend nutzt und nun ist es wieder sinnvoll?
 
Junge du solltest lernen zu lesen und zu denken... eyeyey...
Noch einmal zum mitschreiben auch für die, die sich damit schwer tun.

Ich habe von kommerziellen Browsergames gesprochen. Wenn du meinst, dass sich damit kein Geld verdienen lässt, dann erkläre das z.B. mal meinem Arbeitgeber, aber egal.

Kommerzielle Browsergames, Flash, HTML5, das war was ich oben in einem zusammenhängenden Absatz geschrieben habe... Wenn du da Gedankensprünge machst, dein Pech.

Spiele lassen sich in HTML5 nur mit WebGL sinnvoll umsetzen, da es aber im IE nicht nativ unterstützt wird, ist es spontan disqualifiziert... Junge Junge kannst du da einen Müll reininterpretieren:
Wenn du nur einen Browser unterstützen musst (z.B. Chrome) lassen sich damit schon ganz nette Dinge anstellen, sobald du aber ein kommerzielles Spiel mit möglichst vielen unterstützten Plattformen machen sollst führt derzeit (leider) noch kein Weg an Flash vorbei oder eben ein Java Applet (irgs)

Ich seh nicht, wo der Zusammenhang zwischen "unterstützten Plattformen" und Browser in diesem Satz nicht gegeben ist.

Aber weißt du was, danke für das Tor... *Augen roll*
 
Um nochmal auf das Thema Browsergame zu kommen:
Die alten Browsergames die ich noch gespielt habe hatten als nicht-statische Komponenten fast nur Timer die anzeigen wann ein Event (z.B. Bauevent) fertig ist, bzw aktualisierten dannach entsprechend die Seite (z.B. bei Ogame den Kampfbericht verfügbar machen sobald die Flotte angekommen ist).
Was wäre denn euer Vorschlag wie man so ein Verhalten z.B. mit JSF umsetzen könnte (das geht doch sicherlich als alle 0.5 sekunden von der clientseite aus polling zu betreiben oder?)

Gruß
 
Du kannst dafür entweder Timer Events nutzen und regelmäßig pollen, ansonsten gibt es noch Longpolling und Websocket als Alternativen. Diese beiden Versionen benötigen aber entsprechenden Support auf Serverseite. Was es da jetzt genau bei JSF gibt kann ich dir nicht sagen, da ich kein JSF nutze.
 

Neue Themen


Zurück
Oben