Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

WhiteMike

Alter Hase

  • »WhiteMike« ist der Autor dieses Themas

Beiträge: 507

Wohnort: Ulm

Beruf: Schüler

  • Private Nachricht senden

1

13.03.2009, 09:41

Java-Erfahrungen

Ich wollte, dass ihr mitlachen könnt. :badgrin:

Mein Cousin hat in der Schule mit Java angefangen. Dort programmieren sie nicht einmal richtig, sondern nehmen die BlueJ-IDE (sehr schlecht). Das ganze wird auch noch von einer Java-propagandierenden Lehrerin unterrichtet.

Jetzt programmiert mein Cousin also ein Spiel in Java. Ich helfe ihm dabei und frage mich, wie lange es noch gut gehen kann.

Im Moment ist es so weit, dass man zwischen den einzelnen Game-States umschalten kann. Dabei wird im Regelfall erstmal ein Beispielbild gezeigt (als Platzhalter für ... alles ). :lol:
Das Lustige daran ist, wie viel Zeit es braucht, bis das Bild geladen und angezeigt wird. Wenn man vorher einen Rechteck auf den Bildschirm zeichnet, um für eine einheitliche Hintergrundfarbe zu sorgen, sieht man, wie das alte Bild von diesem Rechteck halb verdeckt wird (obwohl es überhaupt nicht transparent ist), dann das neue Bild von diesem Rechteck verdeckt auftaucht und das Rechteck anschließend verschwindet.
Das ganze Dauert subjektiv geschätzt 1/5 Sekunden, obwohl jeder Game-State nur dieses eine Bild lädt (etwa 1280 x 1024).

Was ich damit sagen will, ist: Nehmt kein Java für Spieleprogrammierung! :lol:
(Als ob es etwas neues wäre ... :roll: )

Mit freundlichen Grüßen,
WhiteMike

VuuRWerK

Frischling

Beiträge: 59

Wohnort: Dresden

Beruf: Softwareentwickler

  • Private Nachricht senden

2

13.03.2009, 10:46

Wetten dass das Performanceproblem an Eurem Code liegt? ;)
Ich entwickle beruflich zur Zeit mit Java. Unser Programm umfasst zur Zeit etwa 6000 Klassen und glaub mir es ist keinesfalls langsam. Wir unterstützden u.a. interaktive Charts mit animiertem Zoom und Livestatistiken. Zudem berechnen wir komplizierte Algorithmen in kürzestere Zeit und das in einem verteilten System welches über Netzwerk komuniziert, also sag mir nicht das es langsam wäre ;)

Kennst Du das Spiel "Frozen Bubble"? Das gibt es u.a. als Java-Applet und läuft sogar flüßig :shock: ;)

Klar, C/C++ ist weitaus schneller (selbst die JavaVM ist in C geschrieben) wenn es um 3D geht aber selbst da holt Java schon gut auf. Sobald eine Lösung für den JNI-Flaschenhals gefunden wurde kannst Du davon ausgehen das die ersten 3D Spiele in Java den Markt erobern werden. Oder es wird eine performante Komponente in Java entiwickelt die es erlaubt 3D ohne den direkten Zugriff auf die Grafikpipeline der Grafikkarte zu zeichnen, das jedoch denke ich ist auch noch etwas Zukunftsmusik. Aber die heutige Hardware macht es immermehr möglich ;)

Gut Schuß
VuuRWerK ;)

Asmodiel

Treue Seele

Beiträge: 150

Wohnort: Schweiz

Beruf: Applikationsentwickler

  • Private Nachricht senden

3

13.03.2009, 10:49

... Aha?

1. Jeder fängt einmal an.
2. Bei der Performance habt ihr's verbockt, nicht Java.
So langsam ist Java nun wirklich nicht mehr.
Ich spreche nun nicht extra auf all die Spiele an, die in Java
programmiert wurden...
3. Nichts gegen BlueJ; Ich find's recht witzig. So einfach gehalten. :)
Eat a beaver - Save a tree.

WhiteMike

Alter Hase

  • »WhiteMike« ist der Autor dieses Themas

Beiträge: 507

Wohnort: Ulm

Beruf: Schüler

  • Private Nachricht senden

4

13.03.2009, 10:56

Am Code liegt es nicht. Da gibt es noch nichts, was man verbocken könnte.

Vielleicht bin ich einfach die Geschwindigkeit von C++ gewohnt und finde es deswegen so witzig.

Mit freundlichen Grüßen,
WhiteMike

flux

Treue Seele

  • Private Nachricht senden

5

13.03.2009, 11:04

Zitat von »"Asmodiel"«


2. Bei der Performance habt ihr's verbockt, nicht Java.
So langsam ist Java nun wirklich nicht mehr.
Ich spreche nun nicht extra auf all die Spiele an, die in Java
programmiert wurden...
3. Nichts gegen BlueJ; Ich find's recht witzig. So einfach gehalten. :)

Da hast du Recht. Im Studium haben wir Anfangs auch mit BlueJ entwickelt. Auch wenns manchmal echt anstrengend ist, kann man damit gut Java lernen. Man lernt die Syntax und alles recht schnell und lernt schön in die API Doku zu schauen ;-)
Außerdem kann man in dem Objektinspektor die Objekte anschauen. Das hilft gut, um die OOP besser zu verstehen.

Und zum Thema Performance kann ich nur sagen, dass es immer drauf ankommt, wie man programmiert. Also in einem Projekt haben wir sehr viele Bilder verwendet und rumgezeichnet (mit Swing). Wir hatten keine Probleme mit der Performance, selbst auf sehr langsamen Laptops.

Fragt sich auch, ob du OpenGL oder DirectX benutzt hast oder auch AWT oder Swing. Ein Bild mit der WinAPI darzustellen ist ja nun auch nicht super Highspeed.

WhiteMike

Alter Hase

  • »WhiteMike« ist der Autor dieses Themas

Beiträge: 507

Wohnort: Ulm

Beruf: Schüler

  • Private Nachricht senden

6

13.03.2009, 11:26

BlueJ ist gut zum Lernen, aber wenn ich ein richtiges Projekt anfange, würde ich alles andere als das nehmen.

Und mit der Performance ist es vielleicht so, dass ich nur das Anfangsstadium vor mir habe. Vielleicht kommt nicht mehr viel Zeitverlust dazu und alles daher rührt, dass Java im Hintergrund eben einen Haufen Dinge initialisieren muss.

Warum sollte ich die WinAPI nutzen, wenn ich Java programmiere?

Mit freundlichen Grüßen,
WhiteMike

flux

Treue Seele

  • Private Nachricht senden

7

13.03.2009, 13:40

Nee, ich meinte, wenn du in C++ ein Bild mit der WinAPI zeichnest, ist das auch nicht sonderlich schnell. AWT und Swing sind ja auch nicht für die Spieleprogrammierung ausgelegt.

Databyte

Alter Hase

Beiträge: 1 040

Wohnort: Na zu Hause

Beruf: Student (KIT)

  • Private Nachricht senden

8

13.03.2009, 13:51

Also ich finde java auch net schlecht ( xD bis auf ein paar Kleinigkeiten weswegen ich lieber doch C++ nehme^^ )

Und zu BlueJ muss ich sagen dass ich das eigentlich voll ok finde :)
Nur IntelliSense o.ä. fehlt :)
Besonders für den einstieg in OOP ist es sehr gelungen !

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

9

13.03.2009, 13:54

ich weis ja net, aber warum die bitmap immer wieder neu laden!?

anyway, ich mag java auch net :p

Zitat von »"flux"«

Ein Bild mit der WinAPI darzustellen ist ja nun auch nicht super Highspeed.


ka ich hab sogar in VB6 kleine spiele geproggt die mit dem WinGDI als Grafik API gerne mit 60-100 fps liefen. und die habn schon weit mehr gemacht als nur n bild angezeigt...

the[V]oid

Alter Hase

Beiträge: 775

Wohnort: Aachen

  • Private Nachricht senden

10

13.03.2009, 14:05

Re: Java-Erfahrungen

Zitat von »"WhiteMike"«

Ich wollte, dass ihr mitlachen könnt. :badgrin:

Mein Cousin hat in der Schule mit Java angefangen. Dort programmieren sie nicht einmal richtig, sondern nehmen die BlueJ-IDE (sehr schlecht). Das ganze wird auch noch von einer Java-propagandierenden Lehrerin unterrichtet.

Jetzt programmiert mein Cousin also ein Spiel in Java. Ich helfe ihm dabei und frage mich, wie lange es noch gut gehen kann.

Im Moment ist es so weit, dass man zwischen den einzelnen Game-States umschalten kann. Dabei wird im Regelfall erstmal ein Beispielbild gezeigt (als Platzhalter für ... alles ). :lol:
Das Lustige daran ist, wie viel Zeit es braucht, bis das Bild geladen und angezeigt wird. Wenn man vorher einen Rechteck auf den Bildschirm zeichnet, um für eine einheitliche Hintergrundfarbe zu sorgen, sieht man, wie das alte Bild von diesem Rechteck halb verdeckt wird (obwohl es überhaupt nicht transparent ist), dann das neue Bild von diesem Rechteck verdeckt auftaucht und das Rechteck anschließend verschwindet.
Das ganze Dauert subjektiv geschätzt 1/5 Sekunden, obwohl jeder Game-State nur dieses eine Bild lädt (etwa 1280 x 1024).

Was ich damit sagen will, ist: Nehmt kein Java für Spieleprogrammierung! :lol:
(Als ob es etwas neues wäre ... :roll: )


Einzig schlecht ist, etwas, wie in dem Fall BlueJ, als "sehr schlecht" zu pauschalisieren. Wir haben damals in der 11.2 auch mit BlueJ angefangen. Und was heißt denn "nicht richtig programmieren"? Also wir haben damals in der 11.1 Grundlagen der Programmierung gelernt anhand von Kara (kA ob das jemand kennt). Und dann mit BlueJ halt OOP gelernt. Ich kann nur sagen: Dem war BlueJ genau angemessen. Achja, und mein Lehrer hat auch Java propagiert, der andere Info-Lehrer an meiner Schule war ein Pascal/Delphi-Fanatiker, ich bin froh, in der Java-Fraktion gewesen zu sein... Die API von Java ist einfach äußerst geil.
<< an dieser Stelle ist eine Signatur verstorben >>

Werbeanzeige