3 Fragen zu Java

C

crunk33

Gast
Hallo,

ich bin 12 Jahre alt und möchte Java lernen. Dazu habe ich drei fragen:

1. Welche Bücher könnt ihr mir empfehlen?

2. Welches Programm könnt ihr mir empfehlen um 3D Spiele zu programmieren?

3. Kann man mit Java sehr gute Games machen und sie auch verkaufen?
(z.B. möchte Autorennspiele entwickeln wie Need for Speed oder so...)

Hoffe auf Antworten da ich nach den Osterferien 2012 nachdem ich Java gelernt habe mit der Spielentwicklung anfangen.
 

Tobse

Top Contributor
Welches Programm könnt ihr mir empfehlen um 3D Spiele zu programmieren?
Da gibts kein Programm dafür. Du kannst mit sacehn wie Cinema4D oder blender 3d-objekte erstellen und die dann in Java3D laden. Allerdings sei dir gesagt, dass flüssiges 3d für ein java-spiel ungefähr minecraft-qualität hat. Des weiteren wird sowas wie Need for Speed (wenn du mal die credits anschaust) von mehreren 100 personen entwickelt.

Auch ist Java im vergleich mit C/C++ oder anderen Hardwarenahem sprachen langsam. Um ein akutelles spiel, um auf dein beispiel zurückzukommen, wie etwa NFS TheRun, das in Java gechrieben ist, flüssig mit guter grafik spielen zu können, bräuchtest du einen Prozessor und eine Grafikkarte, die momentan nichtmal in entwicklung sind.

Wenn du also spiele entwickeln willst kannst du Java lernen um in die programmierung einzusteigen und dann später auf C/C++ umsteigen, dich bei EA bewerben und dort entwickeln.

Ich habe "Java von Kopf bis Fuß" gelesen und fand es sehr gut. Klar zu empfehlen.
 

Marco13

Top Contributor
Allerdings sei dir gesagt, dass flüssiges 3d für ein java-spiel ungefähr minecraft-qualität hat.
..
Auch ist Java im vergleich mit C/C++ oder anderen Hardwarenahem sprachen langsam.

Es - ist - nicht - tot - zu - kriegen :noe:

Es gibt sicher Programmteile und Bereiche, wo Java langsamer ist. Aber nur dass eins der bekanntesten Java-Programme (bzw. 3D-Spiele) von einem Hobby-Hacker geschrieben wurde und in einer Klötzchenwelt spielt, sagt noch nicht viel aus. Sowas wie Bytonic Software hat schon etliche Jahre auf dem Buckel, zeigt aber deutlich, was (auch in direktem Vergleich zu C (und wohlgemerkt C, nicht C++)) möglich ist - insbesondere weil das ganze "tolle" an 3D-Spielen ohnehin auf der Grafikkarte läuft, und damit von Java weitgehend unabhängig ist.

Man kann sich ja mal ein betimmtes Spiel ansehen, nämlich das "Benchmark-Spiel" auf Java 7 -serverspeed÷C++ GNU g++speed | ComputerLanguageBenchmarksGame ...

Sei der ganz abstrakt benannte Aufwand, ein "gutes (schnelles) Programm" in C++ zu schreiben im Vergleich zum Aufwand, ein "gutes (d.h. ähnlich schnelles) Programm" in Java zu schreiben mal außen vor gelassen: Als Einzelkämpfer (und Anfänger) kommt man da nicht weit. Aber wenn man die ersten Hürden nicht überspringen sondern umgehen will, kann man sich ja mal sowas wie jMonkeyEngine 3.0 | Java OpenGL Game Engine ansehen.
 

Tobse

Top Contributor
Es - ist - nicht - tot - zu - kriegen :noe:
Mal ganz im ernst, die grafik von den Jake2 ist nicht gerade umwerfend. Für C/C++ gibt es (nur z.B.) die Unreal-Engine3. Des weiteren ist auf windows meist Nvidia PhysX und DX9c+ installiert, was man meines wissens nach in Java einfach nicht verwenden kann, weil es patformbedingt ist.
Und rein logisch gesehen, muss Java lagnsamer sein. Die JavaVM, die in der gelichen geschwindigkeit wie ein anderes maschienencodeprogramm läuft, muss ja den bytecode erst ausführen. Angenommen wir haben diese 2 equivalenten:
Java:
class foo {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}
Code:
void main() {
    std.cout << "Hello World\n";
}
Dann sind das (ungefähr) folgende schritte:
Code:
H an ausgabe senden
e an ausagbe senden
...
d an ausgabe senden
linefeed an ausgabe senden
-> also 12 statements
Wenn java 3 maschienencode-statements braucht um 1 java-bytecode statement auszuführen ist Java eben 3mal langsamer als maschienencode.

Bei Office anwendung macht sichd as ja nicht bemerkbar, aber bei spielen denke ich schon.
 
B

...ButAlive

Gast
Fakt ist, dass gut programmiertes Java schneller als schlecht programmiertes C ist. Aber auch so braucht Java den Vergleich nicht mehr zu scheuen. Bei so einem kleinem Beispiel wie Tobse schreibt mag das ja so sein, dass C schneller ist, aber die meisten Programme bestehen aus ein bisschen mehr und da macht sich eine gute Speicherverwaltung, JIT-Compiling und viele Sachen die man so in einem C-Programm gar nicht machen kann, bemerkbar. In manchen Fällen ist Java sogar deutlich schneller.

BTW: mein Lieblingskommentar zu diesem Thema war in einem anderen Forum: "Nimm C# weil Java ist interpretiert"
 

Marco13

Top Contributor
Mal ganz im ernst, die grafik von den Jake2 ist nicht gerade umwerfend.

Wie gesagt: Das ist schon etliche Jahre alt, und sieht genau so aus, wie die C-Version! (So war das eben damals ;) ).

Allgemein über die Vor- und Nachteile und Plattformspezifika zu philosophieren ... ja, das wurde schon in vielen Threads gemacht. Wenn ein bestimmter Teil eines Java-Programms über eine native Lib angebunden werden muss (wie schon bei OpenGL, und vielen anderen) ist das ja auch nicht schlimm.

Aber dazu noch
Und rein logisch gesehen, muss Java lagnsamer sein. Die JavaVM, die in der gelichen geschwindigkeit wie ein anderes maschienencodeprogramm läuft, muss ja den bytecode erst ausführen.

Das berücksichtigt nicht den JIT. Tatsächlich kann eine """interpretierte""" (d.h. zur Laufzeit in echten Maschinencode umwandelnde) Sprache wie Java sowohl theoretisch als auch praktisch schneller sein, z.B. durch automatisches Inlining von monomorphen Methoden, was eine statisch compilierte Sprache mangels Wissen über die Ausführungsumgebung prinzipbedingt nicht machen kann.

Nochmal: Das soll kein pauschales Hochloben von Java sein. Es hat Nachteile, und die können sich auch als geringere Geschwindigkeit bemerkbar machen, aber ebenso wären pauschale Aussagen wie "Java ist langsam, und cooler als Minecraft wird's nicht" ungerechtfertigt.
 

j-complex

Mitglied
Da gibts kein Programm dafür. Du kannst mit sacehn wie Cinema4D oder blender 3d-objekte erstellen und die dann in Java3D laden. Allerdings sei dir gesagt, dass flüssiges 3d für ein java-spiel ungefähr minecraft-qualität hat. Des weiteren wird sowas wie Need for Speed (wenn du mal die credits anschaust) von mehreren 100 personen entwickelt.

Wie bereits erwähnt gibt es die Jmonkey Engine womit sich Spiele realisieren lassen die deutlich höhere Grafik bieten. Die Grafik von Minecraft wurde übrigens bewusst gewählt und hat nicht etwa mit mangelnden Möglichkeiten zu tun. Hier noch in den Raum geworfen: Ein gutes Spiel braucht keine Highend Grafik sondern ein gut umgesetztes Spielprinzip.

Auch ist Java im vergleich mit C/C++ oder anderen Hardwarenahem sprachen langsam.

Es wird heute sowieso kaum noch ein Spiel in einer Programmiersprache geschrieben. Alles mit C++ zu realisieren dauert einfach viel zu lange. Wen wundert es da das z. B. bei EvE Online ein Großteil in Python implementiert ist?

C++ ist meiner Meinung nach eine schlechte Wahl - vorallem wenn man alleine programmiert. Der Programmieraufwand ist einfach viel zu hoch. An der Stelle kann ich eigentlich nur C# mit Unity3D empfehlen. Damit lassen sich sehenswerte 3D Spiele deutlich einfacher entwickeln als mit C++.

Normalerweise fängt man sowieso erstmal mit 2D Spielen an. Ist schwer genug. Zudem braucht man neben der Programmiersprache auch ein hohes Maß an Mathematik Kenntnissen. Erst nach dem Abitur kann man sich da wenn überhaupt ernsthaft dran wagen.
 
Zuletzt bearbeitet:

schlingel

Gesperrter Benutzer
@all - warum könnt ihr dem Buben oder dem Mädchen nicht einfach die Info geben ohne hier einen Abklatsch einer bereits mindestens 1.000.000 in diesem Monat (jedenfalls global gesehen) geführten Diskussion runterzwirbeln zu müssen?

@crunk33 - Nein, es ist nicht unmöglich Spiele-Entwickler für Highend-Spiele zu werden. (Irgendwo müssen die ja auch weiterhin herkommen!) Ob Java die richtige Wahl ist oder nicht spielt ganz am Anfang sowieso keine Rolle da du einen Pfad einschlagen möchtest der mit genauso viel Mühen und Anstrengungen verbunden ist wie der eines jeden anderen Hackers auch.

Prinzipiell musst du verstehen wie dein Computer bzw. diese Maschine funktioniert. Nur auf dieser Basis kannst du Spiele entwickeln. Wie beretis angedeutet überschneiden sich also einige Anforderungen aus dem Pfad ein Hacker zu werden und dem eines Spieleentwicklers. Also schau dir zu aller erst folgendes an: How to become a hacker

Wenn du danach noch immer Spiele entwickeln willst, musst du dir bewusst sein, dass Need-For-Speed kein Projekt ist mit dem du anfangen solltest.

Zu aller erst natürlich die Programmiersprache. Durchforste hier im Forum die Bücherecke um herauszubekommen welche Bücher für Anfänger geeignet sind, geh Online-Tutorials durch und bekomme ein erstes Gefühl für deinen Editor/IDE, den Compiler und die Sprache.

Wenn du soweit bist dass du dir denkst, gut, ich kann jetzt schon etwas arbeite das Buch Entwurfsmuster von Kopf bis Fuß durch. IMHO das perfekte Buch um OOP und Design-Patterns kennen zu lernen.

Nachdem die Java-Skills auf einem Level sind, mit dem du arbeiten kannst, schreib erst mal ein Text-Adventure oder irgend ein anderes textbasiertes Spiel. Das ist ein Tipp, da ich aus eigener Erfahrung weiß, dass ein 3D-Spiel zu viele Baustellen für einen Neuling hat als dass er je ordentlich vorwärts kommen kann. Lies dazu z.B. Creating a text adventure

Wenn du dann auch Dinge wie Spielmechanik gemeistert hast, lauern schon die nächste Punkte auf dich.
  • Zeichenlogik
  • Timing
  • Geometrie
  • Trigonometrie
  • Physik

Ich habe gute Erfahrungen mit dem Buch Killer Game Programming in Java.

Für den Mathe-Teil gibt es viele Bücher. Ich werde auf der Uni damit gequält weswegen ich ziemlich trockenen Stoff gewohnt bin und nicht so ganz einschätzen kann ob die folgenden Quellen für dich geeignet sind:

Mathematics for Game Developers
Mathematics for 3D Game Programming and Computer Graphics
Oder schau dir die Liste in dieser Stack-Overflow-Frage durch.

Da du erst 12 bist (und daher jede Zeit der Welt hast um der beste Coder/Spieleentwickler der Welt zu werden), kann es sein, dass du mit dem Stoff nicht so ganz zurecht kommst. Ich kann auch die for Dummy-Bücher empfehlen. Ich hab mir aus Interesse das Physics for Dummies gekauft welches Physik auf Abitur-Level lehrt. (Hatte nur 2 Jahre Physik in der Oberstufe, deshalb.)

Wenn du dich dann da durch gequält hast bist du ein fähiger Programmierer mit einem Grundverständnis in Mathematik und damit für alle GameDev-Frameworks gerüstet.
 

Marco13

Top Contributor
@crunk33 - Nein, es ist nicht unmöglich Spiele-Entwickler für Highend-Spiele zu werden. (Irgendwo müssen die ja auch weiterhin herkommen!) Ob Java die richtige Wahl ist oder nicht spielt ganz am Anfang sowieso keine Rolle da du einen Pfad einschlagen möchtest der mit genauso viel Mühen und Anstrengungen verbunden ist wie der eines jeden anderen Hackers auch.

Prinzipiell musst du verstehen wie dein Computer bzw. diese Maschine funktioniert.
...
Nachdem die Java-Skills auf einem Level sind, mit dem du arbeiten kannst, schreib erst mal ein Text-Adventure oder irgend ein anderes textbasiertes Spiel.

Teilweise stimme ich da zu: In mancher Hinsicht ist die Sprache wirklich nicht so wichtig. Ich finde aber, dass auch nichts dagegen spricht, sich gleich mit 3D-Grafik zu beschäftigen - in dem Sinne, dass man sich irgendwo einen "Stub" kopiert der ein Fenster aufmacht und eine Kugel rendert, und man sich dann auf das Programmieren irgendwelcher GLSL-Shader stürzt (Design Patterns? WTF? ;) ). Früher oder später (d.h. bei echten Spielen) hilft einem das auch nichts, aber genaugenommen ist es ja gerade das, was einem einzlnen das komplette Ausprogrammieren von sowas wie NeedForSpeed unmöglich macht: Man müßte sich mit IO, GUI-Design und OOP auskennen, Shadern, Physik und Kollisionserkennung, vielleicht noch Netzwerksachen... und eigentlich auf jedem dieser Gebiete ein Experte sein und nebenbei noch 50 Jahre Zeit haben ;) Aber man kann sich ja für den Anfang auf das fokussieren, was einen am meisten interessiert.

EDIT: Wegen der extremen Mathe-Lastigkeit ist 3D-Programmierung (und einige andere der genannten Punkten) vielleicht schwierig, wenn man in der Schule gerade Bruchrechnen lernt, aber... das ist ein anderer Punkt...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
X Anfänger hat Fragen bzgl. Bücher Bücher, Tutorials und Links 2
A Java-Buch für erfahrenen Programmierer gesucht Bücher, Tutorials und Links 2
A Buch- Parallele Programmierung mit Java Threads Bücher, Tutorials und Links 1
Robert Zenz Java Wiederholungen - Sich wiederholende Themen kurz zusammengefasst Bücher, Tutorials und Links 6
M Java Grafik Übungen Bücher, Tutorials und Links 13
B Java Buch für Kinder Bücher, Tutorials und Links 5
M.L. Java 17 Bücher, Tutorials und Links 23
M.L. Java Dossier 8/21 Bücher, Tutorials und Links 5
M.L. Minecraft & Java 16 Bücher, Tutorials und Links 1
M.L. Java Version Almanac Bücher, Tutorials und Links 0
Ullenboom Neue Java-Video-Serie - Java 1 bis Java 16 - 50 Std. insgesamt Bücher, Tutorials und Links 1
M.L. "Free Java Training and $25 Certification Exams" Bücher, Tutorials und Links 0
M.L. Java-Tage (2020) Remote Bücher, Tutorials und Links 0
M.L. Dossier für Java-Entwickler 2020 Bücher, Tutorials und Links 0
M.L. Java 16 Bücher, Tutorials und Links 0
M Beste Fachzeitschrift für Java Bücher, Tutorials und Links 2
C "Java von Kopf bis Fuß" als pdf Bücher, Tutorials und Links 6
M.L. Java 14 Bücher, Tutorials und Links 2
M.L. Dossier für Java-Entwickler 2020 Bücher, Tutorials und Links 0
K "Webbrowser Programmierung in Java" Bücher, Tutorials und Links 0
J Buch für Anfänger gesucht - Java / JavaFX Bücher, Tutorials und Links 52
D Java Foundations 1Z0-811 Bücher, Tutorials und Links 0
M Lust auf Online-Kurs, um Java noch besser kennenzulernen? Bücher, Tutorials und Links 3
R Free Access-Ultimate Java Development and Certification Course Bücher, Tutorials und Links 0
M Java Bücher, Tutorials und Links 9
M.L. Java-Dossier für Softwarearchitekten 2019 Bücher, Tutorials und Links 0
T Java Fortgeschrittene und Profis Bücher, Tutorials und Links 2
T Java 8 lernen? & meinungen zum Buch Bücher, Tutorials und Links 12
K Cooles Java Tutorial, voll hilfreich Bücher, Tutorials und Links 3
K Vollständiges Java-Projekt zum Mitmachen Bücher, Tutorials und Links 2
M Einsteigerbuch / Tutorial für Java am PC + Android + Eclipse Bücher, Tutorials und Links 11
T Java Programmieren Bücher, Tutorials und Links 5
S Java Anfänger Kurs/Buch Bücher, Tutorials und Links 13
J Java Buch speziell zur Vererbung Bücher, Tutorials und Links 1
Wurstkopp [Humble Book Bundle] 15 Java O'Reilly E-Books für ~13€ (Englisch) Bücher, Tutorials und Links 0
S Java für Fortgeschrittene? Bücher, Tutorials und Links 1
S Java-Programmierung für Anfänger Bücher, Tutorials und Links 2
J Java-Hamster, mein Résumé. Bücher, Tutorials und Links 3
J Aktueller Java Kurs online Bücher, Tutorials und Links 5
J Java-Hamster1_Inspiration und Hilfestellung zu Aufgaben Bücher, Tutorials und Links 6
W Introduction to Programming Using Java Bücher, Tutorials und Links 1
I SCJP Sun Certified Programmer for Java 6 Study Guide - ist das Buch noch aktuell? Bücher, Tutorials und Links 6
DaCrazyJavaExpert Buchempfehlung für den erweiterten Java-Einstieg Bücher, Tutorials und Links 6
P Buch-Empfehlung zum Einstieg in Java Bücher, Tutorials und Links 42
D Java Online Video Kurs Bücher, Tutorials und Links 2
S Java-Programmieraufgaben Bücher, Tutorials und Links 1
S Java Facebook Gruppe Bücher, Tutorials und Links 0
K Java 8 Buch Bücher, Tutorials und Links 6
J aide android java ide Bücher, Tutorials und Links 2
M ausführliche Doku/Tutorial/Buch zu Java Mission Control Bücher, Tutorials und Links 0
S Java Tutorials Bücher, Tutorials und Links 0
S Java-Buch für absolute Anfänger Bücher, Tutorials und Links 7
I Java von Kopf bis Fuß (2006er Version) Bücher, Tutorials und Links 3
W Suche Java einsteiger Buch und habe eine Frage zu einer Mathe Software. Bücher, Tutorials und Links 8
T Java Netzwerkprogramierung Bücher, Tutorials und Links 6
J Gutes Java Buch für programmieren von Anwendungen Bücher, Tutorials und Links 1
Fab1 Java lernen mit ZERO TO ONE! (Youtube) Bücher, Tutorials und Links 1
N Java Anfänger Bücher schlechte Erfahrungen! Bücher, Tutorials und Links 15
S Daten in Java Programmen Bücher, Tutorials und Links 4
M Von Java nach C# Bücher, Tutorials und Links 13
E Wie in Java FX einsteigen und Tutorials dazu? Bücher, Tutorials und Links 8
M Suche Tutorial für Sound erstellung in JAVA Bücher, Tutorials und Links 3
U Jemand Erfahrungen mit dem Buch "Schrödinger programmiert Java" ? Bücher, Tutorials und Links 10
F Java von Kopf bis Fuß kostenlos !! Bücher, Tutorials und Links 3
F Java Bücher für Einstieg inkl. Übungsaufgaben Bücher, Tutorials und Links 0
V Suche gute Bücher über Informatik insbesondere Java Bücher, Tutorials und Links 1
A Kursempfehlung Java unter Eclipse gesucht Bücher, Tutorials und Links 2
G http://www.java-forum.org/ herunterladen? Bücher, Tutorials und Links 5
I Anfangen mit Java Bücher, Tutorials und Links 10
O FÜR JAVA-Anfänger ohne Grundwissen Bücher, Tutorials und Links 2
S Suche Java Herausforderungen Bücher, Tutorials und Links 5
F Suche gutes Buch oder Tut zu Java Spieleprogrammierung Bücher, Tutorials und Links 3
R "Java ist auch eine Insel" - Unterschiede zwischen Java 5 und 7 Bücher, Tutorials und Links 3
J Was meint ihr zu Java mit Eclipse? Bücher, Tutorials und Links 5
E Cover von Java Büchern Bücher, Tutorials und Links 5
B Java Start Software Bücher, Tutorials und Links 4
A Java-Grundlagen mit älterem Java5 Buch erlernen? Bücher, Tutorials und Links 4
S Java-Buch Part2 Bücher, Tutorials und Links 5
tuttle64 Suche Buchempfehlungen zu Java Sicherheit Bücher, Tutorials und Links 2
M Empfehlung Java Buch für Programmdesign Bücher, Tutorials und Links 7
T Anfängerbuch für c++ und evtl Java Bücher, Tutorials und Links 10
L Java Projekte Bücher, Tutorials und Links 3
M Java 5 und Java 7 Bücher, Tutorials und Links 7
K Deutsches Buch für Java Swing Bücher, Tutorials und Links 7
H Java von Kopf bis Fuss ? Bücher, Tutorials und Links 3
J Java Von Kopf bis Fuß Bücher, Tutorials und Links 14
P Suche Java Übungsaufgaben zu Datenstrukturen wie Listen etc Bücher, Tutorials und Links 5
K Java ist auch eine Insel Bücher, Tutorials und Links 10
F Java-Buch als Nachschlagewerk? Bücher, Tutorials und Links 13
S Suche gutes Java-Buch für fortgeschrittenere Themen Bücher, Tutorials und Links 4
J Java als Anfang Bücher, Tutorials und Links 4
I 2. Kapitel in Java Von Kopf bis Fuß Bücher, Tutorials und Links 27
I Java - Von Kopf bis Fuß - Bücher, Tutorials und Links 11
J Java ist auch eine Insel für Anfänger? Bücher, Tutorials und Links 26
C Java Buch Bücher, Tutorials und Links 10
M Java im Informatik Unterricht Bücher, Tutorials und Links 12
I "Sprechen Sie Java?" oder "Java von Kopf bis Fuß" Bücher, Tutorials und Links 15
3 Lohnt sich ein neues Java Buch? Bücher, Tutorials und Links 10
S Java EE 6 Tutorial Bücher, Tutorials und Links 2
S Java von kopf bis Fuß Bücher, Tutorials und Links 6

Ähnliche Java Themen

Neue Themen


Oben