Tileeditoren, Mapeditoren, GameEngines

Hier kann alles mögliche diskutiert werden. Themen zu Purebasic sind hier erwünscht.
Flames und Spam kommen ungefragt in den Mülleimer.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

> Soweit ich es verstanden habe ist wohl ein Tile sowas wie eine Spritesammlung (was vielleicht mehr für diese Mapengines gilt) und eine Map sowas wie bereits als Bild zusammengesetzte Sprites aus Tiles....ich komm schon noch dahinter...(Sprite scheint auch ein falscher Begriff, es ist wohl so, wenn es sich bewegt, heisst es Sprite und wenn es nur Teil des Hintergrundes ist Tile...?..)

sorry, ich hatte den kernpukt deines problems nicht 100% verstanden.

eine Tilesammlung ist eine Spritesammlung, ein Tile ist ein Sprite.
aber es heisst nur dann Tile, wenn es zusammen mit anderen gleichgrossen Tiles
dazu verwendet wird, um ein hintergrundbild zusammenzusetzten.
engl. Tile = Kachel, Fliese.
schau dir mal deine Badezimmerwand an :wink:

die Map ist die Tabelle, in der steht, welches Tile an welcher Stelle erscheint.

beispiel:
das Tile nr. 64 sei Wiese, das Tile nr.77 sei Wiese mit nem Felsen drauf.
für eine stelle, an der ein einzelner felsen von wiese umgeben ist, steht dann in der Map:
64,64,64,
64,77,64,
64,64,64,

der programmteil, der die tabelle 'Map' ausliest, und die Tiles auf dem Bildschirm darstellt,
heisst dann Mapengine.

die Map selber könnte man auch in DATA-zeilen schreiben, oder als textfile einlesen,
dieses textfile könnte man mit dem normalen texteditor schreiben (s.o.TheShadow)
damit man das einfacher hat, und nicht dauernd nachgucken muss,
welches zeichen man als nächstes schreiben soll, gibt es Mapeditoren.
diese tun nichts anderes, als die erzeugung des textfiles grafisch darzustellen.
(man könnte also ein Tile fast schon mit einem Buchstaben gleichsetzen,
auch die Buchstaben des Alphabets sind gleichsam 'Tiles', aus denen
die 'Map' dieses Postings zusammengesetzt ist.)

das mit den Ebenen ist wieder ein thema für sich, ich will dieses Post nicht zu lang machen,
nur soviel kurz: Ebenen bei Flash, Ebenen in Grafiken und Ebenen in Maps sind verschiedene Dinge.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
mipooh
Beiträge: 226
Registriert: 12.12.2004 04:49
Kontaktdaten:

Beitrag von mipooh »

Aha,

(Danke), dann ist wohl eine "einfache" Mapengine eine, die nur ein Hintergrundbild zusammensetzt und eine "mächtigere" (saublödes Wort, aber ich lese das dauernd irgendwo, soll wohl für "komplexer" stehen) würde dann eine sein, bei der bereits weitere Eigenschaften der Tiles definiert sind, die mit dem Verlauf des Spiels zu tun haben?
Ganz schön schwierig dieser Begriffsdschungel, aber mit Eurer Hilfe klärt sich ja doch langsam einiges.

Gruss
Mipooh
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag von Zaphod »

das mit der mächtigkeit kommt aus der mathematik. die mächtigkeit von mengen zb ist die anzahl ihrer elemente. weil programme auch mehr oder weniger funktionen haben können, sagt man da auch mächtigkeit, da die prinziepien der programmiersprachen ihre ursprünge in der mathematik haben. du brauchst dich hier aber nicht an solche begriffe zu klammern, denn das hier sit ja kein informatiker forum, sondern ein programmierer forum (nicht zwangsläufig dasselbe ;)).

tileengines können schon alleine in ihrer graphischen darstellung unterschiedlich komplex sein. denk dran, dass auch isometrische pseudo 3d darstellungen tileengines sind (wie zb diablo). dann muß man noch dinge beachten, wie die reihenfolge in der man etwas zeichnet, ob etwas überhaupt sichtbar ist etc.
sogar bei echten 3d engines gibt es tileengines.
mipooh
Beiträge: 226
Registriert: 12.12.2004 04:49
Kontaktdaten:

Beitrag von mipooh »

Nochmal im selben Zusammenhang. Ich habe mir nun so einiges angesehen, nur noch nicht so recht die Anwendbarkeit gefunden, da diese Programme ja oft ihre Daten in einem eigenen Format abspeichern.

Könnte vielleicht mal jemand beispielhaft darstellen, wie so ein Tileset eingelesen und zB als Hintergrund ausgegeben wird?
Muss ja kein bildschirmfüllendes Programm sein, nur dass das Prinzip klar wird.

Falls ich beim Stöbern da so etwas übersehen haben sollte, wäre ich ebenfalls für einen gezielten Hinweis dankbar.

Gruss
Mipooh
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

also, mal ein skelett, um das prinzip klarzumachen

Code: Alles auswählen

...
Dim Map(31,31)
...
For n=0 To 63
    LoadSprite(n, "Tile"+Str(n), 0)
Next n
...
For t=0 To 31
    For n=0 To 31
        Read Map(n,t)
    Next
Next
...
Procedure ShowLand(x,y)
    For t=0 To 2
        For n=0 To 2
            DisplaySprite (Map(x+n,y+t),64*n,64*t)
        Next
    Next
EndProcedure
...
Data.w 12,37,51,...
Data.w ...
...
hier mal als beispiel ne 32x32 Map mit 64 verschiedenen Tiles,
die sollten 64x64 sein (in der Show-proc: 64*n,64*t)
davon werden 3x3 angezeigt...
softscrolling hab ich mir mal ausser acht gelassen, ging ja ums tile-prinzip.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
mipooh
Beiträge: 226
Registriert: 12.12.2004 04:49
Kontaktdaten:

Beitrag von mipooh »

Ich versuch mal zu sagen was ich da verstanden habe.

zunächst wird eine Map dimensioniert zweidimensional mit 32 Feldern pro Dimension, dann werden 64 Sprites geladen, und zwar aus Dateien die wohl Tile0 bis Tile63 heisen.

Nun wird eine Map erstellt mit 32x32 Feldern und leer wie sie sind in das Array eingelesen. Da fehlt wahrscheinlich die Zuordnung der Sprites zum Array.

Jetzt werden 3 ausgegeben und zwar vermute ich, dass die Angabe x und y für die Position auf dem Bildschirm gedacht ist, und die n und t Angaben, also werden nacheinander ausgegeben x1y1,x2y1,y3y1, dann die drei x2er dann die 3 x3er, also von links nach rechts drei Zeilen nacheinander, der Rest bleibt leer. Die 64 Sprites würden auch gar nicht reichen, denn sie wären ja nach 2 Zeilen aufgebraucht, oder die 2 Zeilen wiederholten sich ständig.

Jetzt kommt die Bemerkung zur Ausgabe, "die sollten 64x64 sein" Ist damit eine Grösse gemeint? Denn Du hast ja nur 64 insgesamt, und Die Map hat 32x32....??...hmmm.

Der erste Teil scheint relativ klar, wobei ich noch nicht sehe welcher Vorteil darin liegt. Es sei denn ich würde die Dinger nicht so einlesen wie in dem Beispiel, sondern hätte irgendeine Formel, nach der ich die Tiles auf der Karte verteile, etliche mehrfach, damit sie voll wird....

Stimmt das soweit? Und was war mit den 64x64...? hmmm heisst das eventuell, dass ich Sprites von 32x32 habe, sie aber auf der Map in 64x64 ausgebe? Rein rechnerisch könnte das hinkommen....

Danke für die Erklärung
Mipooh
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

1) die tiles sollten für dieses beispiel 64x64 sein,
weil ihr abstand in der ausgabe so gesetzt wird.

2) die map ist nur leer, weil ich jetzt keine 1024 zahlen in die DATA-zeilen geschrieben hab.
könnte man auch aus ner textdatei einladen... (hatten wir schon)
das können zahlen von 0 bis 63 sein, so viele tiles haben wir.
die verteilen wir wie wir wollen auf der karte, also in den DATA-zeilen.
dafür ist dann auch ein map-editor da.

3) x und y sind die position auf der karte, die angezeigt werden soll.
also bei x=5 und y=7:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

die Xe sind die ganze map, fett der ausschnitt der angezeigt wird.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
mipooh
Beiträge: 226
Registriert: 12.12.2004 04:49
Kontaktdaten:

Beitrag von mipooh »

Ohje...
dann hab ich´s wohl doch noch nicht kapiert. Wie die nun mitten ins Bild kommen....
Nungut, aber einen Teil hab ich jetzt kapiert, den Rest kapier ich bei, ausprobieren.
Danke nochmal,
Mipooh
Antworten