Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

De_Struktor

unregistriert

1

26.05.2013, 13:23

Bomberman ohne tilemap

Hi,




ich hatte bezüglich meines Bombermans eine Frage: Ist es problematisch, das meine Mapklasse, nicht "Tile" (Kacheln) basiert ist.

Habe dennoch so gut es ging versucht, sie übersichtlich zu gestalten und wiederverwendbar zu machen.

Und wäre es in Ordnung, die Map so zu lassen in der Struktur, wie sie jetzt vorliegt??

edit: es klappt soweit auch alles!

[list][/list]

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »De_Struktor« (26.05.2013, 13:35)


Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

2

26.05.2013, 14:18

Hallo,

die Frage kann ich jetzt nicht so allgemeingültig beantworten. Wie gut deine Umsetzung ist, hängt von deiner Umsetzung ab und da ich diese nicht kenne, kann ich dazu auch nichts sagen.
Ich persönlich finde, dass im 2D-Bereich sich Tiled-Maps häufig besser machen. Ich denke aber auch, dass der Grund dafür einfach nur darin liegt, dass man mit Tile-basierten Lösungen stärker in Sachen Level-Design eingeschränkt ist und dadurch bestimmte Fehler vermieden werden.
Ich habe schon häufig bei 2D-Spielen, die scheinbar einfach nur nicht diese Beschränkungen durch Tile-basierte Umgebungen wollten bereits einige Dinge gesehen, wie, dass Büsche leicht versetzt zueinander standen, aber dennoch eine Viereckige Grundform zu erkennen war oder dass, gerade bei Jump'n'Runs, zu sehr mit dem Formen der Umgebung herumgespielt wurde, wodurch es für den Spieler schwieriger wird, die Kanten dieser klar und deutlich zu erkennen oder die Machbarkeit eines Sprungs einzuschätzen.

Ganz ketzerisch würde ich auch die ersten Tomb Raider Teile (1 bis 5) als gute Beispiele für Tile-basierte Spiele nennen. Man kann gut abschätzen, welche Sprünge man schafft, wann man Anlauf benötigt, um einen Sprung zu schaffen, auf welchen Schrägen man anfängt zu rutschen, an welchen Kanten man sich festhalten kann und somit auch an welchen Kanten man sich entlang hangeln kann usw. Um bei Tomb Raider zu bleiben: die neueren Teile (bspw. der neuste Teil) sind nicht mehr so aufgebaut, was grundsätzlich nicht wirklich schlecht ist. (Die Umgebung sieht hübsch und vor allem realistisch aus.) Allerdings scheint es mir im Falle des neuen Tomb Raiders, als wären weit weit weniger Geheimnisse eingebaut worden, als in vorherigen Teilen...
Aber genug Offtopic...

Um auf deinen Konkreten Fall mit Bomberman zurückzukommen: Ich weiß nicht, ob dein Spiel ein 2D oder 3D Bomberman wird, deswegen werde ich ein wenig etwas für beide Fälle schreiben.
2D:
In einem 2D-Bomberman kann ich mir nicht wirklich vorstellen, wie ein nicht-Tile-basiertes Spiel funktionieren soll. Wie am Beispiel von Tomb Raider bereits beschrieben zeichneten sich die 2D-Bomberman unter anderem dadurch aus, dass die Umgebung einfach zu interpretieren war. Man konnte seine Bombe nur genau in die Mitte eines Felds legen (nicht zwischen 2 Felder) und die Explosion breitete sich dann in alle 4 Richtungen gleichmäßig aus (sofern es keine Hindernisse gibt). Wenn das Spiel nicht Tile-basiert ist, dann wird die Bombe sich wohl nicht an einem Raster orientieren, wenn sie gelegt wird. Wenn neben der Bombe 2 zerstörbare Blöcke übereinander stehen und die Bombe ziemlich mittig platziert wird, dann dürften beide Blöcke zerstört werden. Wenn die Bombe nun aber nicht ganz mittig liegt, sondern etwas höher oder tiefer, werden dann immernoch beide zerstört? Und wenn einer der beiden Blöcke etwas weiter von der Bombe weg steht, als der andere, wird dann nur der eine zerstört? wenn nicht: wie weit darf der 2. Block nach hinten versetzt stehen? Man kann zwar auf diese Fragen antworten finden und das Spiel entsprechend implementieren, allerdings muss der Spieler diese Dinge dann wieder herausfinden. Zudem sehe ich keinen besonderen Mehrwert, den man aus einem Verzicht auf Tile-basiertheit erlangen würde.
3D (Gameplay, nicht nur Grafik):
Als erstes Beispiel für ein 3D-Bomberman ist mir Bomberman 64 eingefallen. Nach einer kurzen Bildersuche hatte sich meine Vermutung aber bestätigt: man kann es ebenfalls als "Tile-basiert" bezeichnen (genauso wie die ersten Tomb Raider, auch wenn vielleicht nur ich die beiden so bezeichnen würde). Bei einem 3D Spiel könnte ich mir noch etwas eher vorstellen, dass es kein Raster besitzt, an dem sich alles ausrichtet (gebogene Gänge, Runde Plattformen etc.), allerdings würde ich auch, gerade für ein Bomberman, Tile-basierte 3D Spiele gut finden.

Und wenn das mit der Frage nicht wirklich etwas zu tun hat: ich hoffe doch, dass dein Spiel mehr als der Multiplayer-Modus der 2D-Bombermans wird, dass es also auch noch eine Art Story-Modus gibt (vgl. fast alle anderen originalen Bomberman Teile) oder dass der Multiplayer-Modus zumindest ein paar mehr Spielmodi bietet. ;)
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

De_Struktor

unregistriert

3

26.05.2013, 14:31

Vielen Dank, aber ich glaube, ich bekomme es auch ohne Tiles hin, denn, Explosionen, nur Animation, habe ich schon hinbekommen. Ich habe einfach eine bestimmte Anzahl an Blöcken definiert die immer wenn die Bombe irgendwo gelegt wird und explodiert, verschwindet immer ein "Quadrat" von Blöcken, die in bestimmter X- Koordinate von der Bombe und Y-Koordinate von der Bombe liegen.

Also, es klappt auf jeden Fall ;)

Und dazu ist die Mapklasse recht unkomplex, also leicht wieder zu gebrauchen, meines Erachtens.
Als ich Games von Freunden mit dieser Tilestrategie mir angeschaut habe, gefiel mir das einfach nicht, aufgrund von Unübersichtlichkeit.

Naja, ich belasse es aber so wie es ist.

Und ich bin grad fleißig am werkeln, das es GANZ UND GAR NICHT wie die üblichen mist Dinger von Bombermanklonen wird ;)

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

4

26.05.2013, 14:39

Mir scheint es so, als wärst du sehr stark auf den Code bzw. die Implementierung fixiert zu sein. Da du dich auch um die Umsetzung des Spiels kümmerst, ist das auch nicht weiter tragisch. Allerdings solltest du dir nicht nur überlegen, was funktioniert oder wo der Code übersichtlich aussieht, sondern eher darum, was am Ende mehr Spaß macht oder angenehmer ist. Nur weil etwas funktioniert, heißt es leider nicht, dass es auch gut ist... ;)
Wenn du bei dem bleiben willst, was du bisher gemacht hast, dann ist das deine Entscheidung. Ich kann und will diese auch nicht in Frage stellen, da ich deine Umsetzung nicht kenne. Mein Rat wäre nur, für eine Umstellung auf Tile-basiert offen zu bleiben. Ob es noch eine Umstellung geben wird ist dann wieder eine andere Sache.
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

Sp3iky

Treue Seele

Beiträge: 232

Beruf: Entwicklungsingenieur

  • Private Nachricht senden

5

26.05.2013, 16:51

Vielleicht sollte man zunächst mal sagen dass es in 3D keine Tiles gibt...das sind dann höchstens voxelbasierte Maps, wenn man sie auf eine Gitterstruktur runterbrechen kann. Außer natürlich das 3D bezieht sich nur auf die Darstellung und nicht auf die Map selbst (die also trotzdem noch in einer Ebene liegt).

Und um deine Frage zu beantworten:

Es gibt keinen falschen Weg bei der Implementierung, wenn du am Ende das Ziel erreichst. Ich sehe keinen Grund, warum ein Bomberman nicht auch ohne Tilemap funktionieren sollte. Und da es bei dir funktioniert, ist doch alles in Ordnung.
Wiederverwendbarkeit von Code wird zwar auch immer groß geschrieben, ist bei so einem Hobbyprojekt aber völlig unwichtig. Meistens hast du nach dem Projekt so viel gelernt, dass du selbst bei einem ähnlichen Projekt den Code neu schreiben würdest, weil du inzwischen bessere Lösungen kennst oder dir überlegt hast.

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

6

26.05.2013, 18:14

Vielleicht sollte man zunächst mal sagen dass es in 3D keine Tiles gibt...das sind dann höchstens voxelbasierte Maps, wenn man sie auf eine Gitterstruktur runterbrechen kann.

Voxel leitet sich von Pixel ab ("volumetric pixel") und stellt das 3D-Äquivalent eines Pixels dar. "Tile" lässt sich allerdings am ehesten mit "Kachel" übersetzen, nicht mit "Pixel". Da die von mir genannten Spiele über eine Art 3D-Raster verfügen, bei der man die Felder auch Kacheln nennen könnte (gleich groß, gleich ausgerichtet, gleich positioniert etc.), finde ich die Bezeichnung "Tile-basiert" durchaus passend.

Und ich habe nie anzweifeln wollen, dass es ohne Kacheln nicht funktionieren kann, aber auch hier passt wieder die Anmerkung: Nur weil es funktioniert, heißt es nicht, dass es gut ist. ;)
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

7

26.05.2013, 18:30

Ob man das ganze nun Tile oder wie auch immer nennt ist denke ich egal. Der Gedanke sollte klar sein. Ich habe im Zusammenhang mit 3D auch schon von Tiles gehört. Ist ja auch im Prinzip alles nur eine Definitionssache. Ich denke aber Sacaldur hat klar gemacht worum es ihm ging. So Diskussionen wegen irgendwelchen Begrifflichkeiten müssen hier nicht in jedem Thread geführt werden. Bei falschem Gebraucht kann man darauf hinweisen und dann soll es auch gut sein. Das artet hier im Forum immer ziemlich aus und das finde ich nicht besonder schön. Ich würde mich freuen wenn ihr die angefangene Tiledisskussion( ;) ) so stehen lassen würdet. Zum Thema dürft ihr natürlich gern weiter machen. Auch wenn die Frage glaube ich beantwortet ist.
PS: Wenn du da noch mehr Meinungen zu haben möchtest, dann poste doch noch mal einen Screenshot vom Spiel. Dann kann man sich da mehr drunter vorstellen. Dann sehen wir wie deine Karte aufgebaut ist und können vielleicht mehr sagen;)
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

De_Struktor

unregistriert

8

26.05.2013, 19:15

Ob man das ganze nun Tile oder wie auch immer nennt ist denke ich egal. Der Gedanke sollte klar sein. Ich habe im Zusammenhang mit 3D auch schon von Tiles gehört. Ist ja auch im Prinzip alles nur eine Definitionssache. Ich denke aber Sacaldur hat klar gemacht worum es ihm ging. So Diskussionen wegen irgendwelchen Begrifflichkeiten müssen hier nicht in jedem Thread geführt werden. Bei falschem Gebraucht kann man darauf hinweisen und dann soll es auch gut sein. Das artet hier im Forum immer ziemlich aus und das finde ich nicht besonder schön. Ich würde mich freuen wenn ihr die angefangene Tiledisskussion( ;) ) so stehen lassen würdet. Zum Thema dürft ihr natürlich gern weiter machen. Auch wenn die Frage glaube ich beantwortet ist.
PS: Wenn du da noch mehr Meinungen zu haben möchtest, dann poste doch noch mal einen Screenshot vom Spiel. Dann kann man sich da mehr drunter vorstellen. Dann sehen wir wie deine Karte aufgebaut ist und können vielleicht mehr sagen;)
Gerne: Hier ist die Map:
»De_Struktor« hat folgendes Bild angehängt:
  • Debug_Photo.PNG

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

9

26.05.2013, 19:45

Na guck. Deine Karte ist ja gekachelt. Bei den anderen kam das glaube ich eher so an, dass du das Spiel nicht gekachelt gebaut hast. Das was du da machst ist im Prinzip eine TileMap. Natürlich kommt das da immer auf die Definition an. Die Umsetzung spielt dabei aber erst mal keine Rolle. Ich selbst kann mir jetzt nicht vorstellen, dass du Kollisionen etc schneller umsetzen konntest als bei einer klassischen Implementierung einer TileMap. Wenn dein Code funktioniert und tut was er soll und du damit gut arbeiten kannst, dann ist doch alles super.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

De_Struktor

unregistriert

10

26.05.2013, 19:47

Ich wollte ja nur, von euch wissen, was effizienter ist, aber ist alles super :)

Werbeanzeige