Conways Spiel des Lebens in 3D

I

ideaWanted

Gast
Hallo,

ich will Conways Spiel des Lebens in 3D implementieren, habe jedoch zu Anfang noch offene Fragen die ich noch klären muss. Hier meine Fragen:

1. Wie kann man die Regeln auf 3D anwenden? Es sind ja nun nicht mehr 9 Felder (bzw. 8 rundherum) sondern 27 Felder (bzw. 26). Muss man die Regeln noch umändern? Schön wäre es doch, wenn man flexible Regeln einbaut, oder? Wenn ich die Regeln richtig verstanden habe, dann sind diese so: (1) "<2 -> tot", (2) "2/3 ->leben", (3) ">3 tot" und (4) "tot mit 3 N -> leben".
2. Ich möchte den 3D-Kubus auf einer 2D-Zeichenfläche abbilden. Wie mache ich das? Ich kenne mich gut mit linearer Algebra (ABI2010) aus. Da kann man ja entlag eines Vektors einen Raum auf eine Ebene projizieren (z.B. Schattenberechnung). Bringt mich das weiter? Wie regele ich das mit der Rotation bei Mausklick/Mausbewegung?
3. Ich muss einen schönen und einfachen und intelligenten Weg finden, wie man alle "Voxel" (also alle Raumpunkte) erreichen kann mit der Maus ...

Ich hoffe, es kann mir geholfen werden ...
Gruß,
ideaWanted
 

madboy

Top Contributor
3. Ich muss einen schönen und einfachen und intelligenten Weg finden, wie man alle "Voxel" (also alle Raumpunkte) erreichen kann mit der Maus ...

Ich kann dir zwar nicht helfen, aber wenn du für diesen Punkt eine Lösung findest: sag es bloß keinem vorher und lass es dir patentieren, dann wirst reich :D
Ne, im Ernst. Wie willst du mit der Maus, die sich nur in zwei Dimensionen bewegen kann, dreidimensional navigieren? Einzige Idee meinerseits: Verwende Tastatur (z.B. in y-Richtung) und Maus (x und z).
 

Bergtroll

Bekanntes Mitglied
Ich empfehle Dir die Bücher von Andrew Davison, die sich um Java Spieleentwicklung auch in 3D handeln. Das wären

Killer Game Programming (Killer Game Programming in Java)

und

Pro Java 6 Game Development (Pro Java 6 3D Game Development)

Guck dir bei zweiterem Kapitel 2 und 3 an, dort ist dein zellulärer Automat in 3D umgesetzt.

Setze dich mit Andrews Code auseinander und benutze ihn als Basis für deine eigenen Ideen. Der Code funktioniert, um das Prinzip zu erklären, aber da gibts noch einiges zu Refactoren, damit es auch elegant wird. Wenn du dir nicht sicher bist, was du an Andrews Code noch verbessern könntes, gucke mal nach dem Buch "Clean Code". Falls du tatsächlich Anfänger bist, umso besser, versuche soviel wie möglich davon umzusetzen, dann wird dein Java Einstieg leichter vonstatten gehen :).

Greets,
Bergtroll
 

Cola_Colin

Top Contributor
1. Sei doch selber kreativ ;D
2. Hmm, tja da hast du viele Möglichkeiten. Java3D, OpenGL, Softwarerendering... Ich weiß gar nicht, ob man DirectX mit Java verwenden kann ?
3. Ich meine mich zu erinnern, das es da zumindest bei OpenGL eine Funktion für gab. Alternativ kann man z.B. alle Objekte in verschiedenen Farben zeichnen(ohne Kantenglättung !) und schauen, welche Farbe das Pixel unter der Maus hat.
 

Marco13

Top Contributor
1. Wird nicht so einfach. Schon beim "echten" Conway gibt's verschiedene Abwandlungen, die verschiedene Verhaltensweisen verursachen. Wenn ein Parameter nicht stimmt, stirbt alles oder wird überfüllt oder nur noch Matsch :autsch: Dass das frei konfigurierbar sein muss ist eh klar :smoke: ;)

2. Grob: Java3D oder JOGL/LWJGL. Bei ersterem dürfte der Einstieg etwas leichter sein, wenn es darum geht, schnell so ein Würfelgitter auf den Bildschirm zu bringen. Allerdings hat man ggf. nicht mehr so leicht die Möglichkeit, die Würfel z.B. mit einem Shader halbtransparent zu machen ... (nur für den Fall, dass du eine Herausforderung suchst ;) )

3. Das geht eben nicht so ohne weiteres. Eine Möglichkeit wäre, einen Marker mit der Maus in x/y Richtung verschieben zu können, und mit dem Mausrad in z-Richtung, und bei einem Klick eben den Zustand der Zelle zu togglen. Unterschiedliche Ansichten (top/left/bottom) wären auch eine Option, könnte aber aufwändiger und weniger intuitiv sein...
 

Bergtroll

Bekanntes Mitglied
2. Grob: Java3D oder JOGL/LWJGL. Bei ersterem dürfte der Einstieg etwas leichter sein, wenn es darum geht, schnell so ein Würfelgitter auf den Bildschirm zu bringen. Allerdings hat man ggf. nicht mehr so leicht die Möglichkeit, die Würfel z.B. mit einem Shader halbtransparent zu machen ... (nur für den Fall, dass du eine Herausforderung suchst ;) )

Du kannst ohne eigenen Shader die Transparenz deiner Farbwerte setzen und zwar über die Appearance bzw. bei der Verwendung von Texturen über deren Transparenz, oder wie auch bei Andrews geschrieben über Multitexture mit Alphatextur. Willst du eigene Shader verwenden musst du leider damit leben, dass außer dem Quellcode keinerlei Dokumentation darüber existiert, wie deren Verwendung gedacht ist, aber es ist möglich.

Mfg
Bergtroll
 

Marco13

Top Contributor
Man kann in Appearances zwar Transparenzen setzen, aber ich könnte mit vorstellen, dass da ohne eine Möglichkeit, Z-Buffering auszuschalten und von hinten nach vorne zu Rendern nur Matsch rauskommt. Dass in den neueren Java3D-Versionen irgendwo auch "Shader"-Klassen rumlagen, hatte ich mal gesehen, aber noch nicht verwendet und auch leider noch nichts genaueres drüber gelesen.
 
G

Guest2

Gast
Moin,

also ich würde jetzt einwerfen wollen, das das game of life förmlich danach schreit ausschließlich im shader gelöst zu werden. Und mich würde auch nicht wundern wenn die jogl/glsl Lösung kürzer wäre als die Java3D Lösung.
(Wobei der Einstig in Java3D wahrscheinlich schon einfacher ist :D)

Gruß,
Fancy
 

Bergtroll

Bekanntes Mitglied
Dass in den neueren Java3D-Versionen irgendwo auch "Shader"-Klassen rumlagen, hatte ich mal gesehen, aber noch nicht verwendet und auch leider noch nichts genaueres drüber gelesen.

Weil es nichts genaueres gibt, ich habe bestimmt nen halbes Jahr gesucht... Aber nach Javadoc isses wohl recht einfach, man setzt den Shader Source Code in den Shader Knoten und referenziert von seinem Objekt, das geshadet (??) werden soll auf diesen. Mehr kann ich wohl im Dezember sagen, da ich dann wohl genau das versuchen werde.

Man kann in Appearances zwar Transparenzen setzen, aber ich könnte mit vorstellen, dass da ohne eine Möglichkeit, Z-Buffering auszuschalten und von hinten nach vorne zu Rendern nur Matsch rauskommt.

Von hinten nach vorne rendern kann man bspw. mit einer kombination aus ordered group und switch, so habe ich es zumindest gemacht. Je nach Blickrichtung nimmt man die ORderedGroup, die am senkrechtesten zum betrachter steht und rendert von hinten nach vorne. Depth Buffer schaltet man über die RenderingAttributes aus. Aber ich bin mir nicht mal sicher ob man die OrderedGroup für die Würfel wirklich braucht?

Mfg,
Bergtroll
 

Bergtroll

Bekanntes Mitglied
Zuletzt bearbeitet:

Landei

Top Contributor
Die Mausnavigation könnte man z.B. so implementieren, dass die Maus ganz normal in x-y-Richtung bewegt wird, aber bei gedrückter rechter Maustaste in z-Richtung (in die "Tiefe des Raumes") statt in y-Richtung navigiert wird. Stelle ich mir gar nicht mal so unintuitiv vor.
 
G

Guest2

Gast
Im Nvidia OpenGL SDK gibt es auch ein ähnliches Beispiel. Da wird eine 3D Textur durch einen Shader in eine 3D Textur gerändert (Simulationsschritt) und anschließend die 3D Textur durch einen Shader dargestellt (ray marching).
Optisch und funktionell läst sich das natürlich beliebig ausbauen.

Die Lösung da ist rein GL basiert, CUDA oder OpenCL gehen aber natürlich auch. ;)

Gruß,
Fancy
 

Marco13

Top Contributor
Nebenbemerkung: Das verlinkte Bild ist mit einem Programm gemacht, das im Prinzip eine Portierung des NVIDIA-Beispiels ist - und auch den gleichen CUDA-Kernel verwendet.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Conways Spiel des Lebens nachprogrammiert Spiele- und Multimedia-Programmierung 1
xFearofdarkness Feinde überlappen sich in Java Spiel Spiele- und Multimedia-Programmierung 3
ItundMathe1994 TicTacToe Spiel programmieren Spiele- und Multimedia-Programmierung 2
JEP1 Hilfe bei Spiel Spiele- und Multimedia-Programmierung 1
P Pokemon Spiel Funktioniert nicht ? Spiele- und Multimedia-Programmierung 3
Leon.tr3x Mein erstes Programm/Spiel Spiele- und Multimedia-Programmierung 10
O Texas Hold'em Poker als Online-Spiel mit Freunden Spiele- und Multimedia-Programmierung 5
Drachenbauer Speicher-Tool für ein Spiel schreiben Spiele- und Multimedia-Programmierung 13
M Spiel Mühle-Programmierung Java Spiele- und Multimedia-Programmierung 9
Excess Spiel abzugeben Spiele- und Multimedia-Programmierung 1
I Superhelden - Spiel Spiele- und Multimedia-Programmierung 14
E Hauptmenü und Spiel ???? Spiele- und Multimedia-Programmierung 2
L Sound in Java Spiel Spiele- und Multimedia-Programmierung 5
R Interaktives Spiel Spiele- und Multimedia-Programmierung 5
L Spiel im Editor testen Spiele- und Multimedia-Programmierung 4
Jackii dispatchUncaughtException in Quiz Spiel mit GUI Layout Spiele- und Multimedia-Programmierung 6
D Textbasiertes Spiel Spiele- und Multimedia-Programmierung 8
K Android Spiel Programmieren Spiele- und Multimedia-Programmierung 6
L BrickBreaker Spiel Spiele- und Multimedia-Programmierung 3
A Spiel Figur ansprechen und bewegen Spiele- und Multimedia-Programmierung 3
it_is_all Dialogbox im Spiel - Text in Blöcke aufteilen Spiele- und Multimedia-Programmierung 4
F Koordinieren und Essen von Snake - Spiel Spiele- und Multimedia-Programmierung 14
G Entity Verwaltung in einem 2D Spiel Spiele- und Multimedia-Programmierung 1
E Möchte Spiel Programmieren Spiele- und Multimedia-Programmierung 7
S Connect6 Spiel - Code in ei Spiele- und Multimedia-Programmierung 2
A Spiel nach Abfrage beenden oder neustarten Spiele- und Multimedia-Programmierung 1
G Welten Generierung 2D Spiel Spiele- und Multimedia-Programmierung 4
G Java 2D Spiel mit LWJGL verbinden Spiele- und Multimedia-Programmierung 1
N Problem mit 2D Spiel Spiele- und Multimedia-Programmierung 17
T Probleme bei "Pixel-Fighting"-Spiel: Unausgewogene Mannschaften??? Spiele- und Multimedia-Programmierung 4
R Pong Spiel Problem Spiele- und Multimedia-Programmierung 1
L Coordinate Space JavaFX 2d Spiel Spiele- und Multimedia-Programmierung 0
C Vier Gewinnt Spiel Programmiertipp Spiele- und Multimedia-Programmierung 11
N Jump and run Spiel - wo anfangen / weitermachen? Spiele- und Multimedia-Programmierung 11
K Spiel zum zuordnen von Dienstgraden und Dienstgradabzeichen Spiele- und Multimedia-Programmierung 5
M Textbasiertes Spiel programmieren Spiele- und Multimedia-Programmierung 4
T 2d-Spiel Licht Spiele- und Multimedia-Programmierung 5
S Jump 'n' Run-Spiel Kollisionserkennung Spiele- und Multimedia-Programmierung 3
T Spiel rendern Spiele- und Multimedia-Programmierung 2
Grevak Sounds im Spiel Spiele- und Multimedia-Programmierung 5
B Fehlerhafte Mob Bewegungen in Tower Defense Spiel Spiele- und Multimedia-Programmierung 2
F Spiel ähnlich wie SimCity/o.ä programmieren Spiele- und Multimedia-Programmierung 5
X Erklärung zu einem Tic Tac Toe Spiel Spiele- und Multimedia-Programmierung 1
I Spectator Modus für Spiel ähnlich zu Terraria Spiele- und Multimedia-Programmierung 8
I Textbasiertes Spiel - Umsetzungsfrage & Schleifen Problem Spiele- und Multimedia-Programmierung 26
M Kollisions abfrage bei 3D spiel? Spiele- und Multimedia-Programmierung 12
D JAVA Basiertes Spiel aus dem Internet in eigenem Client laden Spiele- und Multimedia-Programmierung 1
P [Spiel]Welche Bilder sind gleich Spiele- und Multimedia-Programmierung 2
E GUI zum Spiel hinzufügen Spiele- und Multimedia-Programmierung 19
S 2D Spiel - Physics Spiele- und Multimedia-Programmierung 16
S 2D Spiel "Der Sprung" Spiele- und Multimedia-Programmierung 7
A 2D Spiel ohne Tiles Spiele- und Multimedia-Programmierung 10
V welche vorgehensweise beforzieht ihr bei einfachem Quizz Spiel ? Spiele- und Multimedia-Programmierung 4
S Quaxli's Heli Spiel läuft nicht nach Plan Spiele- und Multimedia-Programmierung 2
G Methode sleepen während das Spiel weiterläuft Spiele- und Multimedia-Programmierung 3
T Spiel Überprüfung Spiele- und Multimedia-Programmierung 3
P Spiel laggt nach unbestimmter Zeit tierisch. Spiele- und Multimedia-Programmierung 27
S Hilfe bei Spiel Spiele- und Multimedia-Programmierung 6
B Hauptmenü für Spiel Spiele- und Multimedia-Programmierung 1
W Spiel ist langsam/laggt Spiele- und Multimedia-Programmierung 18
J Ascii Spiel Spiele- und Multimedia-Programmierung 1
Androbin Mein Spiel will sich nicht zeichnen lassen !!! Spiele- und Multimedia-Programmierung 7
O Vollständige Musik in Spiel einbauen (wav - Format) Spiele- und Multimedia-Programmierung 8
Y Quiz Spiel Spiele- und Multimedia-Programmierung 1
B Spiel Programmieren, die Anfänge Spiele- und Multimedia-Programmierung 6
D [OpenGL] Spiel in der Art von Age of Empires Spiele- und Multimedia-Programmierung 4
lord239123 suche Graphiker für ein Pokemon-Spiel Spiele- und Multimedia-Programmierung 6
S Spiel installeren lassen und organisieren Spiele- und Multimedia-Programmierung 3
J Lichtupdate in tile-basiertem Spiel Spiele- und Multimedia-Programmierung 4
P Erstes Spiel (Strategie) Spiele- und Multimedia-Programmierung 31
J Mein erstes Spiel [Spielevorstellung] Spiele- und Multimedia-Programmierung 2
Bananabert Spiel Renderer Images und Strings Spiele- und Multimedia-Programmierung 4
N Spiel Menü error ! Spiele- und Multimedia-Programmierung 5
S Anfangsmenü mit Spiel verknüpfen Spiele- und Multimedia-Programmierung 16
S Spiel ruckelt trotz 50 fps Spiele- und Multimedia-Programmierung 16
D Spiel-Bilddaten auswerten Spiele- und Multimedia-Programmierung 7
Creylon [LWJGL] Spiel Exportieren Spiele- und Multimedia-Programmierung 2
L Hilfe bei Klassendesign für Spiel Spiele- und Multimedia-Programmierung 2
Devil0s Spiel laggt trotz 90 FPS (bei der Anzeige) Spiele- und Multimedia-Programmierung 9
N Webanwendung als eine Art Spiel Spiele- und Multimedia-Programmierung 8
L Korrekte Darstellung von Wasser in 2D Spiel Spiele- und Multimedia-Programmierung 4
F Ideen für spiel Spiele- und Multimedia-Programmierung 4
J wohin mit der Logik des Spiel Spiele- und Multimedia-Programmierung 2
R Experimente mit Quaxlis Spiel Spiele- und Multimedia-Programmierung 12
W Spiel-Grundlagen selbst austüfteln: Kollisionen? Spiele- und Multimedia-Programmierung 3
Kenan89 Java 2D Spiel Spiele- und Multimedia-Programmierung 39
M Automaten Spiel Spiele- und Multimedia-Programmierung 27
J Tic tac toe spiel Neustart Spiele- und Multimedia-Programmierung 5
S 2D Spiel im Vollbild langsamer als im Fenster Spiele- und Multimedia-Programmierung 11
A TicTacToe Spiel Spiele- und Multimedia-Programmierung 3
S Verbesserungvorschläge Spiel Z Spiele- und Multimedia-Programmierung 31
S Spiel abbrechen Spiele- und Multimedia-Programmierung 3
J Greenfoot "Little Crab" Spiel Erweiterungen Spiele- und Multimedia-Programmierung 6
P Spiel HUD erstellen Spiele- und Multimedia-Programmierung 6
E Spiel neustarten Spiele- und Multimedia-Programmierung 4
S Aufbau von Klassen für Spiel Spiele- und Multimedia-Programmierung 13
A Grundlagensuche für Spiel Spiele- und Multimedia-Programmierung 8
V Basisprinzipien Breakout-Spiel Spiele- und Multimedia-Programmierung 8
E Spiel startet nach exportieren nicht Spiele- und Multimedia-Programmierung 7
Gossi Erweiterung von Quaxlis Heli-Spiel Spiele- und Multimedia-Programmierung 16

Ähnliche Java Themen


Oben