Du bist nicht angemeldet.

JuKu

Profi

  • »JuKu« ist der Autor dieses Themas

Beiträge: 574

Registrierungsdatum: 29.09.2011

Danksagungen: 48

  • Private Nachricht senden

1

25.12.2013, 15:11

Java und 3d

Ich möchte bald ein 3d Spiel in Java programmieren, stehe aber vor mehreren Teilproblemen, die gelöst werden wollen.
Das erste ist, wie ich ein 3d Objekt mit Java lade und darstelle.
Habe dazu schon haufen Tuts durchgelesen, aber immer nur allgemeines gefunden, was ich auch schon durchgearbeitet hatte.
Hat jemand gute Tuts oder Tipps?

Das 2. Problem ist, dass das ganze ein Internet Rollenspiel werden soll und die Map groß sein wird. Diese Map muss ja auch übertragen werden.
Alle Spieler werden diese auch bearbeiten können. In 2d wäre das nicht so das Problem, da hatte ich schon mal was gemacht.
Für dieses Problem habe ich mir überlegt die Map in kleinere Teile zu zerlegen.
Und bei Bedarf werden die Map Teile dann nachgeladen.

Desweiteren soll das auch eine Art Simulation werden, und damit müssen die 3d Objekte auch ein wenig animiert werden.
Soll ich diese eurer Meinung nach auch übertragen?
Ich hoffe auf produktive Antworten.
Danke schonmal!
Wenn euch mein Beitrag weitergeholfen hat, drückt auf "Bedanken"!
Danke! :D

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »JuKu« (25.12.2013, 15:47)


cedi

Profi

Beiträge: 702

Danksagungen: 78

  • Private Nachricht senden

2

25.12.2013, 19:11

Öhm, ich hab jetzt ned riesig den Plan von komplexeren Grafik Geschichten (vorallem ned in Java), aber aus performance technischen gründen würde ich eher von ner Interpretierten Sprache (wie Java) abraten zu ner nicht interpretierten Sprache (C/C++) raten.

Ansonnsten bist glaub mit OpenGL nicht schlecht beraten...

Simon D.

Schüler

Beiträge: 109

Registrierungsdatum: 08.07.2011

Danksagungen: 41

  • Private Nachricht senden

3

25.12.2013, 19:52

Also machbar ist alles :D
Von Java rate ich dir auch dringend ab. Schau die Minecraft an. Die Grafik und das Spiel selbst ist jetzt nicht gerade komplex und frisst trotzdem im Verhältnis zur "erbrachten Leistung" einfach abartig viel RAM und CPU Ressourcen. Nimm lieber C/C++ oder was sonst so an nativ kompilierbarem mit 3D Bibliotheken rumliegt.
Wenn du dir nicht die mühe machen willst Dateiformate für 3D Objekte selber zu zerlegen und dann in OpenGL zu rendern rate ich dir zu einer C/C++ Game- oder Grafikengine. Irrlicht und Ogre sind glaube so die bekanntesten im opensource Bereich.
LG
Simon

Erik

Profi

Beiträge: 1 274

Registrierungsdatum: 22.06.2011

Wohnort: Deutschland ;)

Danksagungen: 307

  • Private Nachricht senden

4

25.12.2013, 21:42

Java würde auch gehen :D
Würde dann aber nicht java3D nehmen, sondern eine Engine wie jMonkeyEngine :)
Beste Webite im Internet ( ͡° ͜ʖ ͡°)
xinra.de

Logan_Adams

Anfänger

Beiträge: 11

Registrierungsdatum: 05.08.2013

Danksagungen: 7

  • Private Nachricht senden

5

25.12.2013, 22:09

Also machbar ist alles :D
Von Java rate ich dir auch dringend ab. Schau die Minecraft an. Die Grafik und das Spiel selbst ist jetzt nicht gerade komplex und frisst trotzdem im Verhältnis zur "erbrachten Leistung" einfach abartig viel RAM und CPU Ressourcen. Nimm lieber C/C++ oder was sonst so an nativ kompilierbarem mit 3D Bibliotheken rumliegt.
Wenn du dir nicht die mühe machen willst Dateiformate für 3D Objekte selber zu zerlegen und dann in OpenGL zu rendern rate ich dir zu einer C/C++ Game- oder Grafikengine. Irrlicht und Ogre sind glaube so die bekanntesten im opensource Bereich.
LG
Simon

Die Performanceprobleme von Minecraft sind aber nicht auf die Sprache, hier Java, zurückzuführen, sondern eher an den schlechten Umsetzungen der Algorithmen,
wie z.B. dem Weltgenerator. Dir hilft auch C++ nix, wenn du deine Algorithmen einfach "scheiße" programmierst.
Außerdem wird Java zwar teils interpretiert (Bytecode) , aber auch kompiliert (Quellcode -> Bytecode), weiteres siehe https://de.wikipedia.org/wiki/Just-in-time-Kompilierung

Mal eine Link zu einer Diskussion zu diesem Thema (Java sei langsam, etc.) : http://stackoverflow.com/questions/21634…n-of-being-slow

LG

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Logan_Adams« (25.12.2013, 22:18)


Es haben sich bereits 2 registrierte Benutzer bedankt.

Benutzer, die sich für diesen Beitrag bedankt haben:

Erik (25.12.2013), Johannes S. (25.12.2013)

Erik

Profi

Beiträge: 1 274

Registrierungsdatum: 22.06.2011

Wohnort: Deutschland ;)

Danksagungen: 307

  • Private Nachricht senden

6

25.12.2013, 22:39

Habs doch net geschrieben, weil ich fand, dass es ot ist, aber minecraft ist echt scheiße programmiert :D

Edit: interessanter thread bei stackoverflow :)
Beste Webite im Internet ( ͡° ͜ʖ ͡°)
xinra.de

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Erik« (25.12.2013, 23:40)


JuKu

Profi

  • »JuKu« ist der Autor dieses Themas

Beiträge: 574

Registrierungsdatum: 29.09.2011

Danksagungen: 48

  • Private Nachricht senden

7

27.12.2013, 11:45

Erstmal vielen Dank für die vielen Antworten! :-)
Das mit Java stimmt nur teilweiße, meines Wissens setzt selbst Google viel auf Java, also muss da was dran sein.
Und Java ist Bytecode und Android ist meines Erachtens auch schnell.
Wenn ich nun ein 3d Objekt habe, wie kann ich das 3d Objekt dann nutzen?
Wenn euch mein Beitrag weitergeholfen hat, drückt auf "Bedanken"!
Danke! :D

Erik

Profi

Beiträge: 1 274

Registrierungsdatum: 22.06.2011

Wohnort: Deutschland ;)

Danksagungen: 307

  • Private Nachricht senden

8

27.12.2013, 16:42

Wenn du das Ding nicht grad selbst in ein 2d bild rendern willst, was auch gehen würde, dann solltest du eine Engine benutzen. Java bringt dafür Java3D mit (ist aber net so gut und man muss das dann immer auf dem Client zusätzlich installieren). Du kannst aber auch eine richtige 3rd Party Engine benutzen, da gibts einige kostenlose, mein Tipp ist wie gesagt jMonkeyEngine. Musst halt erstmal lernen, eine Engine zu benutzen, aber ohne wirds denke ich viel zu aufwändig und auch schlechter von der Grafik-Qualli :)
Beste Webite im Internet ( ͡° ͜ʖ ͡°)
xinra.de

Simon D.

Schüler

Beiträge: 109

Registrierungsdatum: 08.07.2011

Danksagungen: 41

  • Private Nachricht senden

9

28.12.2013, 02:04

wenn dir eine einfache Grafik ohne viel Schnickschnack reicht, kannst auch einfach Wavefront Objekte zerlegen und mit einer OpenGl-bibliothek rendern. Aber wenn du jetzt an die Grafik höhere Ansprüche hast oder gar Features wie komplexe Physik willst, dann nimm lieber eine fertige 3D-Engine und konzentriere dich auf das eigentliche Spiel.
LG
Simon

JuKu

Profi

  • »JuKu« ist der Autor dieses Themas

Beiträge: 574

Registrierungsdatum: 29.09.2011

Danksagungen: 48

  • Private Nachricht senden

10

28.12.2013, 12:02

An eine 3d Engine hatte ich schon gedacht, aber noch keine richtig gute gefunden.
Gibt es außer jMinkeyEngine noch eine andere gute 3d Engine?
Wenn euch mein Beitrag weitergeholfen hat, drückt auf "Bedanken"!
Danke! :D

Ähnliche Themen