# 2D-Shooter



## Kampfzwereg (13. Sep 2012)

Hallo,

ich würde gerne einen 2d shooter programmieren. So wie doom 2 zum Beispiel. Nur natürlich viel viel simpler. Womit kann ich den graphischen Teil umsetzten, also mit welchem Programm oder Plugin? Ich hab nur NetBeans ( eine Art Java-Editor). Habt ihr irgendwelche Tipps oder empfehlungen ? 

LG


----------



## BRoll (13. Sep 2012)

Ich kann jetzt nicht sagen welches die einfachste/beste Variante ist,
aber es gibt natürlich viele Möglichkeiten.
Entweder du benutzt ein vorgefertigtes Gerüst wie zb. Slick,
baust es in Swing auf, oder im stinknormalen AWT.

Ich persönlich nutze letzteres, aber versuche mich gerade an Slick.

Theoretisch kannst du überall das gleich erreichen, aber
je nachdem für was ist das eine leichter bzw. schneller als das andere.

Zb. kann man ja aus dem simplen AWT Befehl drawImage() sich fast
alles selber zusammenstricken, von Spieloberflächen, Maps bis zu Menüs.

Dazu gibts haufenweise Tutorials, ich würde am Anfang raten es selbst zu
versuchen, also in Swing oder AWT.
Dann versteht man die elementaren Zusammenhänge von grafischen Oberflächen.

Mit welchem Programm versteh ich nicht ganz, du willst es ja in Java programmieren,
und nicht mit einem Programm machen?
Meinst du damit Entwicklungsumgebungen?
Da würde ich Eclipse raten, ist so ziemlich die größte und beste für Java.

Bei genaueren und kronketen Fragen kann ich dir vielleicht mehr sagen,
aber zu einer Frage wie man eine komplexe Spielumgebung aufbaut,
kann man nur Teile einzeln erklären, aber nicht alles auf einmal.

Hast du denn schonmal was in der Richtung gemacht?
Weíßt du wie solche spiele (rein theoretisch) zusemmgebaut sind?



mfg BRoll


----------



## Kampfzwereg (13. Sep 2012)

jo hab ich schonmal für den unterricht gemacht. Ich habs damals so gemacht, dass ich mir nen hintergrundbild genommen hab, was ich einmal auf nen panel gepackt hab. Dazu hab ich dann halt kleine images von figuren da drafu malen lassen, und dann halt immer einen pixel weiter repainten lassen, wenns sich bewegen sollte. Geht das so auch mit komplexeren sachen ? 
Wie sieht das mit 3d spielen aus ? 

Ich meine ob das mit netBeans zu programmieren ist.

danke schonmal für die antwort.


----------



## epTical (13. Sep 2012)

Sorry, aber Doom2 ist für dich 2-dimensional? òÔ"

Wenn es dir im Allgemeinen nur um die Hobby-Spieleentwicklung geht und dir das Coden in Java eher in unwichtig ist, kann ich die kostenlose Version von Unity3D empfehlen.

Absolut starke Entwicklungsumgebung, mit der man selbst als einzelne Person in humaner Zeit hochwertige Spiele kreieren kann ( nötige Skills natürlich vorausgesetzt  ). Programmiert/Gescripted wird dabei in Boo, Java*-Script* oder C# ( letzteres ist Java syntaktisch ähnlich ).

Willst du allerdings bei Java bleiben wäre die JMonkeyEngine empfehlenswert. IDE basiert auf Netbeans. Entwicklungseffektivität bedeutend geringer/aufwändiger als mit Unity3D.

______________

*Edit:* Beide Engines sind sowohl 3D als auch 2D geeignet


----------



## Kampfzwereg (13. Sep 2012)

:-D jo da hab ich mich wohl mit doom2 vertan :-D ....ich meinte eher nen 2 d spiel , oder halt, wenns realisierbar ist für einen hobby programmierer so in richtung doom2.

Es soll schon mit Java geschrieben werden. Wie funktioniert das denn mit monkeyengine. Benutzte ich dann wirklich nur das programm oder hab ich auch weiterhin netbenas , mit dem ich das rpogramm schreibe ?


----------



## Fu3L (13. Sep 2012)

Du musst bei Slick und kannst bei der JMonkeyEngine einfach die jars nehmen und in Netbeans/Eclipse einfügen und programmierst ganz normal in Netbeans/Eclipse.
Die JMonkeyEngine bietet einige Tools zum besseren Programmieren, das JMonkeyEngine SDK, welches einfach NetBeans mit einigen Plugins ist. Allerdgins würde ich von 3D beim ersten Spiel abraten. Es ist schwieriger 

Ich würde für mein nächstes 2D Spiel vermutlich Slick verwenden, um die Performance der Grafikkarte besser nutzen zu können. Aber für ein erstes Übungsspiel machst du mit Swing nix verkehrt


----------



## Luk10 (13. Sep 2012)

Sobald du mit 3D anfangen willst wird das mit Java sehr schwierig und du brauchst dann auch sicher Hardware-Unterstützung die du nur durch OpenGL oder DirectX bekommst. Um das zu nutzen musst du dann auf Libs zurückgreifen, wie LWJGL, JMonkey o. ä. wie schon genannt.

Für 2D würde wahrscheinlich noch Swing oder AWT bzw. CPU-Rendering reichen.

Und noch etwas:
Du programmierst Java *nicht* mit einem _Programm_. Du kannst auch Libs in einem einfachen Texteditor einbinden und nutzen. IDEs (was du mit "Programm" meinst) helfen dir nur deinen Code zu stukturieren, oder erstellen gewisse Teile deines Codes automatisch (wie z.B. ein GUI-Builder) zu erstellen.


----------



## epTical (13. Sep 2012)

Also muss gestehen hab selber nur mal einen Nachmittag mit der JMonkeyEngine verbracht, weil ich mich nach dem ersten Mal starten von Unity direkt verliebt habe 

Das JMonkey-SDK liefert zusätzlich zur Engine selbst, eine modifizierte Version von Netbeans mit. Diese ist total auf die Arbeit mit der JMonkey-Engine ausgelegt und bringt u.a. Tools wie einen Level-Editor mit.

Würde dir daher empfehlen, dir einfach mal das SDK zu saugen ( jMonkeyEngine 3.0 | Java OpenGL Game Engine ) und ein paar Tutorials mitzumachen.


----------



## Kampfzwereg (13. Sep 2012)

ok also dann mach ichs wohl so. Erstmal wurde mir geraten, mich von netBeans zu trennen und durch die eclipse IDE (!!!) :-D zu ersetzten. da eclipse besser sein soll. Dann hole ich mir JMokeyEngide SDK und installier das auf meinem Rechner. Und dann könnte ich teorethisch nen kleines 2d spiel machen. hab ich da sso richtig verstanden ? 

Ist denn MonkeyEngine so ähnlich wie die einfachen draw-Befehle von nem Panel? oder is dasn bissel komplizierter ? 
werd mir denk ich mal einige tutorials darüber angucken müssen!?


----------



## BRoll (13. Sep 2012)

Kampfzwereg hat gesagt.:


> Ist denn MonkeyEngine so ähnlich wie die einfachen draw-Befehle von nem Panel? oder is dasn bissel komplizierter ?
> werd mir denk ich mal einige tutorials darüber angucken müssen!?




Lol wieso schaust du dir nicht einfach ein Video auf Youtube oder so dazu an xD

Nein eine 3D Engine ist sicher nicht so einfach wie ein draw Befehl in Java,
da gibt ne dritte Dimension, dadurch steigt die komplexität im quadrat! 

Also da sollte man vorher sich ne weile mit 3D Entwicklung allgemein beschäftigen,
und bevor du damit anfängst solltest du lieber erstmal mit 2D klar kommen,
sonst wirst du nie damit glücklich


----------



## Luk10 (13. Sep 2012)

Ich würde dir generell davon abraten gleich in eine relativ komplexe Lib wie JMonkey einzusteigen und auch, gleich mit 3D anzufangen ... ohne Grundlagen wirst du nicht glücklich.

Probier doch erstmal Swing oder AWT aus und wenn du dann an die Grenzen von Performance gelangst kannst du ja dein Konzept mit Hardware-Unterstützung umsetzten.


----------



## Kampfzwereg (13. Sep 2012)

ich hatte nicht vor mit 3 d zu abreitne. das ist ja viel zu schwierig. ich dachte man könnte auch mit monkeyEngine 2d spiel proggen ? ....wenn nicht dann einfach mit swing oder so. Da nutze ich doch dann aber einfah die ganzen drawbefehle oder ? ^^


----------



## Luk10 (13. Sep 2012)

"Man" könnte das sicher ... aber "man" muss sich auch in die Engine einarbeiten was deutlich aufwendiger ist als mit Swing (vermute ich zumindest sehr stark).

Wenn du noch nie oder nur wenig mit Grafikanwendungen in Java zu tun gehabt hast schau dir doch das Tutorial hier im Forum an (basiert auf Swing).


----------



## BRoll (13. Sep 2012)

Kampfzwereg hat gesagt.:


> ich hatte nicht vor mit 3 d zu abreitne. das ist ja viel zu schwierig. ich dachte man könnte auch mit monkeyEngine 2d spiel proggen ? ....wenn nicht dann einfach mit swing oder so. Da nutze ich doch dann aber einfah die ganzen drawbefehle oder ? ^^



Ja für den Anfang würde ich die ganz einfachen draw Befehle raten,
damit kann man auch schon schöne Sachen programmieren.

Und eben wenns dann irgendwann mal von der Leistung her nicht mehr hinhaut,
braucht man eine Alternative, und dafür gibts eben diese viele Libs.

Und wieso sollte man mit einer 3D Umgebung ein 2D Spiel machen,
das wäre ziemlich doof und auch nicht so einfach.
Auch wenn du damit 2D arbeitest, musst du mit den 3D ausgelegten Befehlen
arbeiten, die es ganz schön in sich haben 

Also schön unten in der Grafik-Rangfolge anfangen,
dann bist nicht frustriert wenns nicht so schnell klappt,
und verstehst dann auch alles viel besser.


----------



## Kampfzwereg (13. Sep 2012)

mach ich gern, welches genau meinst du, hab hier ne reihe von tutorials...


----------



## Luk10 (13. Sep 2012)

http://www.java-forum.org/spiele-multimedia-programmierung/54795-quaxli-2d-spiele-tutorial.html


----------



## Kampfzwereg (13. Sep 2012)

ah ok ....dann hatte ich doch das richtige ;-) . ja super danke. ich werds mir reinziehen. zum punkt  "über netzwerk spielbar" hab ich ja schon reichlich infos bekommen. Also danke für die antworten 
tschüssili


----------

