# Ein deutsches Spieleprogrammierbuch



## radiac (3. Aug 2009)

Hallo an alle...

Ich habe hier seit 2 Wochen das tolle "Killer Game Programming" Buch liegen und stecke wirklich seit fast 2 Wochen Stunden lang meine Nase da rein... Ergebnis... Seite 47 und aus...

Ich persönlich finde dieses Buch total unnütz für Leute die einfach kein Plan für das Fachjargon auf Englisch haben so wie ich...

Man kann ja behaupten, das man auch durch lesen des Quellcodes etwas in verbindung mit dem Text versteht... aber NEIN!
Der Autor verwendet in diesem Buch super klasse englische Abkürzungen für seine Objekte...

Existiert auf dem Markt ein halbwegs gutes Buch, das die Machart von dem oben beschriebenen Buch ähnelt aber komplett in deutsch geschrieben ist???

Hauptsächlich wollte ich das Buch benutzen um den Aufbau von Java Spielen zu verstehen... aber das Buch tagt nicht mal dafür etwas...

Oder kennt jemand Tutorials, die nicht an diesem Buch gebunden sind, sondern klar und strukturiert erklärt werden?

Hab auch schon nach freeware UML Editoren geguckt. Aber für Netbeans gibts nur eins das sich kein normaler Mensch leisten kann.

Vielen Dank für eure Antworten...

Ps: Bin gerade sauer weil ich wieder fast 5 Stunden in den Sand gesetzt habe, mit der hoffnung mein Projektordner nicht wieder löschen zu müssen...  Ergebnis: delete Projectfolder... also verzeiht meine Schreibweise :toll:


----------



## The_S (3. Aug 2009)

Aufgrund deiner mangelnden Englischkenntnisse zu sagen, dass das Buch schlecht ist, halte ich nicht gerade für sonderlich objektiv. Lern Englisch, sonst wirst du in der (professionellen) Computerwelt nicht weit kommen!

Du kannst dir für den Anfang Quaxlis Spieletutorial ansehen. Einfach mal im Forum danach suchen.


----------



## Landei (3. Aug 2009)

Schließe mich meinem Vorredner an: Ohne Englisch geht nichts! Angenommen, du findest ein gutes deutschsprachiges Buch. Dann willst du ein 3D-Spiel in Java programmieren. Java 3D? Englisch. Open GL? Englisch. JOGL? Englisch. LWJGL? Englisch. JMonkeyEngine? Englisch. jirr? Englisch... Verstehst du, worauf ich hinaus will?


----------



## 0x7F800000 (3. Aug 2009)

Hol dir evtl dasselbe buch einfach komplett auf englisch... Da kann man die abkürzungen im quellcode viel besser mit dem Prosa-text drumehrum assoziieren. Und so gewöhnst du dich auch an englischsprachige literatur. Seit ich aus der schule raus bin, krieg ich aus mir langsam auch kein englisches wort mehr raus, aber beim lesen der fachliteratur ist's was anderes, nach einer woche merkt man gar nicht dass in einer anderen sprache geschrieben ist. 

Und zum Buch an sich... Haben die etwa eine aktualisierte Auflage rausgebracht? Hab mir das büchlein vor 3 Jahren mal angeschaut, afair ging's da um irgendwelchen Java3D-Kram mit Java 1.1 oder irgendsowas, damals kam's mir jedenfalls sehr experimentell, unausgereift und zudem völlig veraltet vor :bahnhof:


----------



## radiac (3. Aug 2009)

Ich habe nicht behauptet, das ich kein Englisch kann. Dieses Buch schreibt aber meiner Meinung nach einfach voll umständlich irgend welchen revandanten Code rein, den ich überall schon 1000 mal kürzer und verständlicher gesehen habe... Der Autor benutzt für ein Kapitel, für das genau 5 Minuten ausgereicht hätten in der Praxis, 30 Seiten.

Dann hört er mitten in den Erklärungen auf und beschreibt was völlig uninteressantes von c' und c++... 

In der Zeit, wärend der Autor vergleiche zieht ist das Zeug was der vorher mehr als kompliziert aufgesetzt hat, längst wieder weg... Das heisst, dass alles was er da beschreibt erst ettliche Seiten später mal einen Zusammenhang findet... wenn überhaupt.

Naja, scheinbar gibts nichts deutsches dazu...

trotzdem vielen Dank... War auch nur Wütend auf mich selbst, warum ich das einfach nicht kapiere...

Und das man Englisch automatisch irgend wann liest habe ich auch schon gemerkt... jedoch der Code in kompletten englisch ist einfach für mich unbrauchbar...
Denn die Objektbeschreibungen ect... sind einfach total verwirrend...

Beispiel... cbv, tk, bsg, dbg... und alles in 1 Klasse??? Pff... dann stell ich mich lieber 10 Stunden hin und bau mir selbst irgend eine Wurst zusammen...


----------



## 0x7F800000 (3. Aug 2009)

radiac hat gesagt.:


> cbv, tk, bsg, dbg... und alles in 1 Klasse???


Nun ja, das hört sich echt nicht so an, als ob der autor auf naming conventions achten würde :autsch:
Liegt's vielleicht nicht an der sprache, sondern einfach daran, dass das buch schlecht ist?
Gutes Buch auf englisch sagt einem viel mehr, als schlechtes buch auf deutsch, auch wenn man anfangs über begriffe stolpert.

Im code sollte aber imho grundsätzlich alles auf englisch, wenn man glaubt, dass der code für irgendwas gut ist, und dass ihn womöglich jemand anders anschauen will.


----------



## Quaxli (4. Aug 2009)

Ich finde KillerGameProgramming eigentlich nicht schlecht. Ich habe mir da auch ein bißchen was abgeguckt. Das Buch ist meiner Meinung nach allerdings nicht unbedingt für Anfänger geeignet.

Das kann man z. B. an den Kapiteln sehen, in denen es um die Steigerung der FPS geht. Das ist meiner Ansicht nach für Anfänger erst mal nicht so wichtig. In dem Buch wird aber ein ganzes Kapitel darauf verwendet und geht so richtig ans Eingemachte.

Ich denke das Buch ist eher für Fortgeschrittene gedacht, die Ihr erstes kleines Spiel zusammengeklappert haben und denen es dann um komplexere Geschichten, Performance-Steigerung, etc. geht. 
Um ein konkretes Thema (Steigerung FPS, FullScreen, etc.) nachzulesen find ich das Buch ganz gut. :rtfm:


----------



## newcron (5. Aug 2009)

Es gibt ein sehr gutes UML Plugin für Netbeans, dass frei ist und dazu noch round-trip-engineering unterstützt: NetBeans IDE - Unified Modeling Language (UML) Plugin  (überspringe den "Visual Paradigm" absatz, das ist nur Werbung!)

Round-Trip-Engineering ist ne nette Sache: wenn du das Digramm änderst, passt sich der Code an, wenn du den Code anpasst, aktualisiert sich das Diagramm.


----------



## eliot (5. Aug 2009)

Du musst ein anderes Killer Game Programming Buch habe als ich.
Das Buch sehr gut und beschreibt nicht nur die Eigenheiten von Java
sondern auch ganz Allgemein wie ein z.B. Game Loop aufgebaut ist usw.

Entweder sind deine Java oder Englisch Kenntnisse bescheiden (oder beides).


----------



## radiac (5. Aug 2009)

@ eliot

Auf den letzten Kommentar kann ich pfeifen...

Mittlerweile hat sich das Problem sowieso aufgelöst.

Meine Meinung zu diesem Buch ist einfach, das Dinge so blöd erklärt werden die 1000 mal einfacher zu lösen sind. Und nebenbei genauso effektiv.


----------



## The_S (6. Aug 2009)

Hast du ein Beispiel? Ich lerne gerne dazu  .


----------



## radiac (6. Aug 2009)

Beispiel für was denn? .

Ich habe einfach das gesamte sture und steife neu erlernen von kommandos in JavaSE über board geworfen und meine Kenntnisse von JavaME eingesetzt...

Ich muss zugeben das mein Wissen und das Buch Killer Games Programming sich irgendwie sehr gut ergänzen....

Zwar musste ich zbs. keine Leinwandklasse declarieren, aber dafür eben erst ein JFrame Fenster bauen...  

Als ich heute zbs. ein Fullscreenfenster aus meinem JFrame machen wollte, gabs das problem, das in JavaME nur der befehl aus dem Package javax.microedition.Graphics; setFullscreen(true); gereicht hat umd den gesamten Display des Handys zu füllen.

In Killergames Buch wird beschrieben wie man ein fullscreenmode einbindet...

Dadurch, das ich die Anzeige aber anders programmiert habe, und meine eigene FPS berechnung eingebaut habe, anstatt diese im Buch sah das natürlich alles anders aus.

(Im endeffekt ist es aber doch ziemlich gleich) Ich glaube einfach, dass das Buch sehr veraltete Techniken anwendet. Und ich damit nicht so klar komme.

Jedenfalls mische ich gerade SE und ME wissen... und auf der Bahn fahr ich schneller voran, als ich bis vor 1 Monat noch gefahren bin, als ich stur nur Techniken von JavaSE lernen wollte.

Hab auch festgestellt, das die auf diesem Board vorgestellten Tutorials sehr ähnlich gestaltet sind wie das Buch.

Ich vermute auch, das man bei JavaSE viel mehr beachten muss als bei ME, jedoch finde ich, das man Techniken aus ME auch gut nutzen kann für SE, mit dem Vorteil das man ökonomischer und Ressourcenbewusster ist.

Das heisst, langsam verstehe ich wie manche das Buch anwenden... und zwar als Nachschlagewerk... Aber als Lernbuch absolut nicht zu empfehlen.


----------



## The_S (6. Aug 2009)

radiac hat gesagt.:


> Beispiel für was denn? .



Was blöd erklärt ist, und wie man es besser erklären könnte.



radiac hat gesagt.:


> Ich habe einfach das gesamte sture und steife neu erlernen von kommandos in JavaSE über board geworfen und meine Kenntnisse von JavaME eingesetzt...



Ich bin sowohl im Java SE, Java EE und Java ME Bereich tätig und kann dir sagen (wie viele andere in diesem Forum auch), dass jede Technologie andere Standards hat, die man kennen sollte. Natürlich kann man in JSPs auch Java-Code in Form von Skriptlets und Threads in JEE Anwendungen verwenden, aber da wird dir jeder erfahrenere EE-Programmierer gehörig auf die Finger hauen. So kannst du natürlich auch versuchen Techniken von Java ME auf Java SE (und umgekehrt) zu übertragen. Damit wirst du aber noch viel schneller und mit deutlich höherer Wahrscheinlichkeit auf die Schnauze fliegen, als beim Einsatz von EE Techniken in der SE Welt.



radiac hat gesagt.:


> Zwar musste ich zbs. keine Leinwandklasse declarieren, aber dafür eben erst ein JFrame Fenster bauen...
> 
> Als ich heute zbs. ein Fullscreenfenster aus meinem JFrame machen wollte, gabs das problem, das in JavaME nur der befehl aus dem Package javax.microedition.Graphics; setFullscreen(true); gereicht hat umd den gesamten Display des Handys zu füllen.
> 
> ...



Java ME ist *völlig* anders aufgebaut als Java SE, da die beiden schon einmal für komplett unterschiedliche Anforderungsgebiete gedacht sind! Ich habe das Buch nie gelesen, aber ich glaube nicht, dass es auf Java ME großartig eingehen wird, oder!? Aufjedenfall kannst du nicht Java ME und Java SE miteinander "verbinden" und schon gar nicht die Klassen miteinander vermischen/vertauschen. Bei der Entwicklung einer ME Anwendung geht man komplett anders vor, als bei der Entwicklung einer SE Anwendung.



radiac hat gesagt.:


> Ich vermute auch, das man bei JavaSE viel mehr beachten muss als bei ME



Das Gegenteil ist der Fall! Das einzige außergewöhnliche bei einer Desktopanwendung mit GUI, was man evtl. nicht sofort auf die Reihe bekommt, ist der Einsatz des EDT und dass man AWT und Swing nicht mischen soll. Ansonsten läuft dein Programm so ziemlich überall und mit deutlich mehr Möglichkeiten gleich (sofern du keinen groben Unfug treibst, den du in Java ME aber genauso treiben kannst). Bei Java ME musst du auf unterschiedliche Herstellerspezifizierungen eingehen. Musst zig Versionen für die unterschiedlichen Geräte bereitstellen. Was machst du, wenn du deine ME-App mal updaten willst? Du musst die unterschiedliche Displaygrößen beachten, die beschränkte Anzahl an Ressourcen, mangelnde Möglichkeiten der sinnvollen Fehlerbehanldungen, extreme Einschränkungen durch die Sandbox (uff, nennt man das unter Java ME auch Sandbox?), ...



radiac hat gesagt.:


> jedoch finde ich, das man Techniken aus ME auch gut nutzen kann für SE, mit dem Vorteil das man ökonomischer und Ressourcenbewusster ist.



Das würde ich so nicht unterschreiben. Kommt auf die Techniken an. Wenn es eine Technik ist, möglichst viel in eine Klasse zu quetschen und auf Interfaces, DesignPattern, ... zu verzichten, damit der Code kleiner und speichersparender ist, dann muss ich das definitiv verneinen.


----------



## radiac (6. Aug 2009)

Okay... und was ist der Sinn deiner ständigen Verneinung und Ablehnung???

Auch wenn du massivste Erfahrungen hast in SE,EE,ME...
muss ich doch am besten wissen, wie mein Programm laufen soll.
Und wenn etwas nicht klappt, finde ich schon eine Lösung... 
Laut deinen Äusserungen klingt das so... nur das und nichts anderes!

Ich habe nie behauptet, das ME = SE ist. Im Gegenteil: Ich habe gesagt, das man vieles was in ME ist umbauen muss, damit es in SE funktioniert...
Auch ist mir durchaus bewusst, das jede Java_version andere standarts hat.

Zum 3. kann mir keiner auf die Finger hauen, da ich das nur aus Hobby mache und nicht als Beruf. Ich hab nicht mal ne Ausbildung in Java. Ich bringe mir seit Monaten das ganze Zeug selber bei. Und dein Wissen solltest du eigentlich Nutzen um anderen zu helfen und nicht um andere zu Kritisieren und denen damit den Spass am Programmieren nimmst.

Also nochmal für dich: Ich bin Anfänger und kein Profi. Und ich bin auch für jeden Tipp offen... solange er sich nicht anhört wie... ich bin der beste und du kannst nichts!

Du könntest mir eher helfen, anstatt so auf mir rumzuhacken.


----------



## The_S (6. Aug 2009)

radiac hat gesagt.:


> Okay... und was ist der Sinn deiner ständigen Verneinung und Ablehnung???



Auch wenn ich es nicht so bezeichnen würde: Der Sinn dahinter ist es dir aufzuzeigen, dass du nicht von Java ME auf Java SE schließen kannst (was du scheinbar anfänglich gemacht hast, aber wohl mittlerweile eingesehen hast, dass das nicht der Fall ist  ).



radiac hat gesagt.:


> Auch wenn du massivste Erfahrungen hast in SE,EE,ME...!



Hab ich nie behauptet



radiac hat gesagt.:


> muss ich doch am besten wissen, wie mein Programm laufen soll.



Solltest du. Aber jeder Anfang ist schwer. Deshalb wirst auch du Fehler machen. Und du wirst vermutlich auch nicht darum herumkommen dein Programm mit wachsender Erfahrung immer und immer wieder umzuschreiben. Deshalb bist du ja auch in einem Forum. Dort bekommst du von fortgeschrittenen Usern Hilfe und Tipps, damit dir starke Querschläger bzw. größere Probleme erspart bleiben. Deshalb auch mein Beitrag: Ich wollte dich auf etwas hinweisen, was dir scheinbar noch nicht ganz klar war.



radiac hat gesagt.:


> Und wenn etwas nicht klappt, finde ich schon eine Lösung...



Ja, dafür kannst du dann ja auch im Forum nachfragen  .



radiac hat gesagt.:


> Laut deinen Äusserungen klingt das so... nur das und nichts anderes!



Das habe ich nie behauptet und ich weiß auch nicht, wie du darauf kommst, da ich keinerlei konkrete Beispiele genannt habe, die man unbedingt so machen soll. Tut mir leid, falls du das in den falschen Hals bekommen hast.



radiac hat gesagt.:


> Ich habe nie behauptet, das ME = SE ist. Im Gegenteil: Ich habe gesagt, das man vieles was in ME ist umbauen muss, damit es in SE funktioniert...



Gut, da habe ich dich dann wohl falsch verstanden. Mir kam es so vor, als ob du am Buch bemängelst, dass man Java SE Spiele nicht identisch wie Java ME Spiele aufbauen kann, und das Buch deshalb für unzureichend hältst. Ich wollte dich lediglich aufklären, dass man Java ME nicht mit Java SE vergleichen kann, wovon du (wie erwähnt) scheinbar anfänglich ausgegangen bist.



radiac hat gesagt.:


> Zum 3. kann mir keiner auf die Finger hauen, da ich das nur aus Hobby mache und nicht als Beruf.



Das war ein allgemeines Beispiel. Privat haut dir zwar keiner auf die Finger, deshalb kann es aber trotzdem genauso unangenehm werden, wenn bspw. eine rießige und mühevoll angelegte Datenmenge aufgrund eines Programmfehlers unwiderruflich gelöscht wird.



radiac hat gesagt.:


> da ich das nur aus Hobby mache und nicht als Beruf. Ich hab nicht mal ne Ausbildung in Java. Ich bringe mir seit Monaten das ganze Zeug selber bei.



Sehr löblich. Ich weiß noch, als ich Stunden mit meinen Java Büchern verbracht habe und mir daraus Java beigebracht habe. Also nicht aufgeben!



radiac hat gesagt.:


> Und dein Wissen solltest du eigentlich Nutzen um anderen zu helfen und nicht um andere zu Kritisieren und denen damit den Spass am Programmieren nimmst.



Such mal im Forum nach meinen Beiträgen. Ich spende sehr viel meiner freien Zeit an das Forum um anderen zu helfen. Geld oder eine sonstige Entlohnung bekomme ich dafür nicht.

Wenn du dir aber keine Kritik zu deinem Code oder deiner Vorgehensweise anhören möchtest, weil du sonst den Spaß an der Programmierung verlierst, bist du hier fehl am Platz.

Du willst gar nicht wissen, was ich mir schon alles anhören musste und es teilweise auch noch immer muss. Aber ich beschwere mich nicht darüber, dass ich kritisiert werde. Ich freue mich über einen Erfahrungsaustausch und immer wieder etwas neues zu lernen bzw. die Sache aus einem anderen Blickwinkel zu sehen. Und wenn ein Kritiker in meinen Augen nur dumm daher schmarrt und selbst keine Ahnung hat, heißt das ja noch lange nicht, dass ich dessen Meinung übernehmen oder mich auf ein Streitgespräch/Diskussion einlassen muss.



radiac hat gesagt.:


> Also nochmal für dich: Ich bin Anfänger und kein Profi.



Ich mach da eigentlich keine Unterschied. Auch ein Profi kann auf einem ihm fremden Gebiete mit Anfängerproblemen konfrontiert werden.



radiac hat gesagt.:


> Und ich bin auch für jeden Tipp offen... solange er sich nicht anhört wie... ich bin der beste und du kannst nichts!
> 
> Wie ich sowas hasse!



Da sind wir ja schon zu zweit  .


----------



## ice-breaker (6. Aug 2009)

Also als unabhängiger muss ich da The_S aber nochmal Recht geben.

*Java SE und Jave ME sind 2 Welten.*

Beides ist Java, beides teilt sich den gleichen Sprachdialekt (in J2ME abgespeckt, keine Generics usw) aber das wars dann schon.
Die Low-Level-API von J2ME ist wirklich optimal dafür ausgelegt darin Spiele zu programmieren, Swing ist in 1. Linie erstmal für Desktopanwendungen gedacht, was jedoch nicht bedeutet, dass es für Spiele ungeeignet ist, du musst nur ganz anders an die Sache herangehen, eine Ecke komplexer als in J2ME dafür hast du aber auch viel mehr Möglichkeiten.

Also einfach dein J2ME-Wissen für die Spieleentwicklung in J2SE zu nutzen, geht denke ich mal schief, wenn du dich erstmal kurz mit Desktop-Anwendungen in Swing beschäftigst (keine Spiele) dann sollte es aber auch danach kein Problem sein, dein Wissen über Spieleprogrammierung (Game-Loop usw) auf Swing anzuwenden.


----------



## radiac (6. Aug 2009)

Ich geb Ihm doch auch recht .


Aber ich bin doch das beste Beispiel dafür, das man mit Erfahrung in JavaME einfacher mit JavaSE umgehen kann.

Wie gesagt, versuche ich seit mehr als 2 Monaten JavaSE zu lernen. Hab 6 Bücher hier liegen. Eins kennt bestimmt jeder: "Handbuch der Java Programmierung 6". Dieses Buch ist einfach Spitze, weil das ein perfektes Nachschlagewerk ist. Dann habe ich ein Spezielles Buch über GUI und Datenbank. Das ist auch sehr Hilfreich. Dann habe ich jetzt noch ein Buch Speziell über Grafikprogrammierung in Java bestellt. (Hoffe es ist gut). Dann besitze ich noch ein Buch (mein erstes für Java6) über OOP. Auch sehr gut. Aber davon sind ja sowieso viele gut. 
VOn allen Büchern habe ich bis auf den 1300 Seiten Schinken (Handbuch) alles schon mindestens 2 mal durch.

Mir fehlt es einfach an der Praxisarbeit an Spielen... und mich ärgert das Buch einfach, das es Dinge anspricht, die ich in keinen Meiner Bücher so nachlesen konnte... Da die Techniken die in diesem Buch benutzt werden in den anderen Büchern viel viel einfacher zur Anwendung kommen.

Und dadurch dass das Buch auf (höchsten niveau) englisch ist, und ich mit meinem 12 Klasse Englisch da einfach meistens scheiter ich keine Chance habe zu verstehen was der da eigentlich warum macht. 

Und wenn man in 1 Klasse Abkürzungen für Objekte benutzt die auf Englisch sonstwie abgekürzt werden und davon noch 7 Stück wie sgb, vbg usw... blickt man am ende garnichts mehr... und soviele Farbstifte hab ich garnicht um alle zu makieren was zu welches Ding gehört.

Da blätter ich lieber einmal zuviel in meinem JavaME Büchern rum, und wende ME Code umgeschrieben in SE an. Und es funktioniert.

Und als Beweis, zeige ich euch bald mein aller erstes Java Spiel . 
Das soll jetzt kein angeben sein. Ich wills einfach beweisen das es auch so geht. Und ja, ich werde sicherlich noch viel viel Hilfe von euch brauchen .


----------



## radiac (6. Aug 2009)

Hmm... und als beweis das es geht... das hier 


Das soll mal mein Software Logo sein 

File-Upload.net - test.rar


----------

