Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Ich möchte nochmal zum Thema Hexfeld nachhaken. Sascha hat ja im Wiki den Artikel Hexfeld erstellt.
Ich habe selbst auch schon mit Hexfeldern experimentiert, hatte aber das Problem, dass der Hintergrund an den Nahtstellen zwischen den Feldern ab und an durchschien. Wie kann man das verhindern? (Der Effekt trat vorallem auf, wenn man etwas weiter weg zoomte.)
Ich werden später mal meinen Code posten. Hab den momentan nicht zur Hand.
Nebenbei: Es gibt auch eine Mathematische Formel mit der man bestimmen kann, ob 2 Hexfelder zueinandern benachbart sind. Die Formel werden ich vielleicht im Wiki noch ergänzen.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Di Dez 27, 2005 12:44 Beiträge: 393 Wohnort: Berlin
Programmiersprache: Java, C++, Groovy
Hallo Flash,
ich glaube das hängt damit zusammen, dass deine Sechsecke nicht hunderprozentig gleichmässig sind.
Wenn ich mal das Beispiel aus dem Wiki nehme : Die Kanten haben dort in z-Richtung eine Länge von 2 während die 'schrägen' Kanten eine Länge von Wurzel(1.75²+1²)~2.015564437 haben.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Viel kann ich dazu leider nicht sagen. Ich rendere zwar, was auf den Shots im Wiki sichtbar ist, über die Hexfelder nochmal ein Liniengitter mit Linienbreite = 3, aber das auch nur fürs optische Feedback. Aber selbst wenn ich die weglasse scheinen bei mir auch bei weiten Zooms keine Risse oder Schlitze zwischen den Hexfeldern. Evtl. solltest du mal mit den Einheiten (k.a. wie groß du renderst) rumexperimentieren, oder mal versuchen die Z-Range zu optimieren, also zNear und zFar recht nah beieinander.
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Hexfelder sind eine taktische Entscheidung, da du damit in 6 anstelle in 4 Richtungen gehen kannst. Und außerdem sehen Hexfelder besser als normale Quadrate aus.
PS: denke auch mal, dass es von klassischen Brettspielen herkommt. Die basieren mehr oder Weniger alle auf Hexfeldern. (Mechwarrior, Siedler von Katan etc...)
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Es gibt genau 3 verschiedene mögliche Nachbarschaftsbeziehungen:
4N : Quadrat - Du kannst nur die 4 Verticalen/Horizontalen Nachbarn betreten
6N : Hexfeld - 6 Nachbarn
8N : Quadrat - Du kannst auch noch die diagonalen Nachbarn betreten. (Zu den 4N)
6N ist einfach etwas besonders, da diese Form eben nicht üblich war(!). Früher waren die Brettspiele wenn dann auf Quadratbasis. 6N Wirkt da einfach neu und kreativ.
Es gäbe vielleicht noch 3N. Aber ein Spiel auf Dreiechsbasis habe ich noch nicht gesehn. Wäre aber sicherlich interessant.
Hier könnte ja mal jemand von DGL einen Vorstoß wagen, und ein 3N basiertes Spiel bauen.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Mo Mai 29, 2006 21:13 Beiträge: 142 Wohnort: Ballenstedt/Sachsen-Anhalt
Flash hat geschrieben:
Es gäbe vielleicht noch 3N. Aber ein Spiel auf Dreiechsbasis habe ich noch nicht gesehn. Wäre aber sicherlich interessant.
Es gibt ein Spiel namens Triomino, das ist Domino mit 3 Ecken. Saumäßig kompliziert am Anfang
Zitat:
Hier könnte ja mal jemand von DGL einen Vorstoß wagen, und ein 3N basiertes Spiel bauen.
Hab ich auch schon überlegt, aber ich komme auf keine sinnvolle Speichermethode, da man das Anlegen ja auch irgendwie überprüfen muss (auf korrekte Züge meine ich).
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Martok hat geschrieben:
Flash hat geschrieben:
Zitat:
Hier könnte ja mal jemand von DGL einen Vorstoß wagen, und ein 3N basiertes Spiel bauen.
Hab ich auch schon überlegt, aber ich komme auf keine sinnvolle Speichermethode, da man das Anlegen ja auch irgendwie überprüfen muss (auf korrekte Züge meine ich).
Öhm... Ich hab das gester mit nem Kumpel mal durchdiskutiert. Da wir eh gerade an nem Spiel schreiben, werden wir wohl mal versuchen die Karte 3N basiert zu machen. Ich selbst bin auch gespannt in wie weit das was wird.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Mo Mai 29, 2006 21:13 Beiträge: 142 Wohnort: Ballenstedt/Sachsen-Anhalt
Hört sich interessant an! Ich hoffe doch, dass ihr das recht bald veröffentlicht *g
3N halte ich für einiges schwieriger als Hexfelder, da man keine 2d-Arrays benutzen kann. Es hat zum Beispiel nur jeder 2. ein oben, die dazwischen liegenden nur ein unten. Dadran bin ich gescheitert.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Mag sein dass 3N interessant klingt und auch innovativ erscheint, aber das bedeutet noch lange nicht dass es auch Spaß macht. Zum einen schränkt man damit die Bewegungsfreiheit des Spielers ein, und auch in Sachen KI dürfte es wohl etwas schwieriger umzusetzen sein. Aber solltest du da wirklich was in der Richtung umsetzen bin ich mal gespannt.
3N Sollte nicht schwerer sein, auch das kann man problemlos als 2d verwalten. Immerhin stelle jeder Stripe eine 1d linie da. DIe bewegungsfreiheit wird eigendlich auch nicht eingeschränkt. DIe Auflösung dagegen wird erhöht. z.B. Kann eine Barrikade in 6 eckiger Form gebaut werden ohne, das Artefakte der 6ecke auftauchen.
3N und 6N haben bei Strategie spielen den Vorteil, das man echte Forts bauen kann, Bei denen sich Waffen gegenseitig Feuerschutz geben können.
Rein von der spielbarkeit wird 3N extrem ähnlich zu 6N sein..
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Das haben wir uns auch gedacht. Vorallem hat 3N noch den Vorteil, dass man die Auflösung der Karte höher machen kann. Hügel und Berge können dadurch ziemlich coole Formen annehmen.
Wir (Ich) wollten eigentlich 8N benutzen. Aber dann diskutierten wir drüber und das Ende vom Lied war, dass bei 8N die Bewegung in Diagonale Richtung viel "schneller" wirkt als in den Hauptachsen. Wir haben uns das dann mal bei 3N angeguckt, und da ist es wesentlich runder. Aber wie bereits angesprochen: Da Hexfelder auch aus 3Ecken bestehen haben sie ziemlich ähnliche Eigenschaften. Das einzige wo sie nicht mithalten können ist die Auflösung des Spielfelds.
Zurück zur Problematik: Sascha, du zeichnest deine Hexfelder mit GL_POLYGON? Packst du die in Displaylisten? Polygon ist doch recht langsam. Und wie sieht die Karte ohne den recht dicken linien aus? Siehst du dann Spalten zwischen den "Tiles"?
Ich hatte die Hexfelder bei mir aus 6 Dreiecken zusammengebaut. Wie mir gerade auffällt (der Code is schon etwas älter) habe ich nicht GL_TRIANGLE_FAN benutzt sonnder normale Dreiecke. Und da kam es dann zu besagten ritzen (wohl in verbindung mit schlechter Tiefenpufferauflösung). Aber selbst wenn die Tiles in sich keine Artefakte zeigen, würde mich interssieren, ob man sie bündig aneinander legen kann, ohne das man etwas über die Ränder rendert. (Wie bei dir die dicken Linien)
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Ja, ich rendere via GL_POLYGON und packe alles in eine Displayliste. Aber selbst ohne ist dass schnell genug, sind ja nicht wirklich viele Polygone die da trianguliert werden müssen. Ritze zwischen den Tiles habe ich (wie ich oben schon geschrieben habe) auch ohne die Linien nicht, die Linien dienen nur zum optischen Feedback für den Spieler.
Was mir noch aufgefallen ist am Artikel:
Bei den darüber- und darunterliegenden Feldern ist es Abhängig von der Zeile, ob z.B.:die Koordinate des linken oberen Felds (x;y-1) oder (x-1;y-1) ist.
Also: Wenn ich mich in einer Zeile mit nach rechts verschonenen Feldern bin, hast Du recht, dann ist die nächste Zeile nicht verschoben und ich kann einfach die y-Koordinate anpassen, falls ich nach links-oben laufen will.
Bin ich aber in einer nicht-verschobenenen Zeile, dann wäre das Feld in der gleichen Spalte nach rechts verschoben und wenn ich nach links-oben marschieren will, muss die Spalte mit angepasst werden.
_________________ Manchmal sehen Dinge, die wie Dinge aussehen wollen, mehr wie Dinge aus, als Dinge.
<Esmerelda Wetterwax>
Es kann vorkommen, dass die Nachkommen trotz Abkommen mit ihrem Einkommen nicht auskommen und umkommen.
Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.