Zurück   Flashforum > Flash > ActionScript > Spielkonzepte und Spieleprogrammierung

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 27-09-2010, 21:27   #1 (permalink)
Neuer User
 
Registriert seit: Oct 2009
Ort: Bremen
Beiträge: 147
Techniken für Mapgenerierung

Moin alle miteinander,

ich wollte mich mal erkundigen, was ihr für Möglichkeiten und Techniken kennt, um Karten für Spiele zu erstellen.

Ich habe momentan ein 2dimensionales Array, das erscheint mir aber auf lange Sicht, also je größer die Map wird, doch etwas zu umständlich. Ich hab mal gehört, dass man mit Matrizen arbeitet, wüsste allerdings nicht, wie ich das in AS3 umsetzen könnte.

Bin über jede Idee dankbar.

mfG,
Tobi
DerTobi ist offline   Mit Zitat antworten
Alt 27-09-2010, 21:51   #2 (permalink)
ING
whatever
 
Registriert seit: May 2008
Beiträge: 419
vorrangig wäre es erstmal interessant was da alles so auf deine map soll und wie diese aufgebaut ist.

wenns tile-based ist kann ich empfehlen die routine mit strings zu füttern:

"000a0bb0ccc0"
"0a00dd000a00"
...

wobei jede ziffer für ein verschiedenes tile steht, diese string kann man dann problemlos in xml's schreiben und verarbeiten. mit etwas tricksen kann man diese technik auch für nicht tile-basierte maps verwenden.
ING ist offline   Mit Zitat antworten
Alt 27-09-2010, 21:57   #3 (permalink)
Neuer User
 
Registriert seit: Oct 2009
Ort: Bremen
Beiträge: 147
Hey ING,

also sie sollte schon tile-based sein.
Möglicherweise mit Texturen und darüber liegenden Objekten. Das heißt, dass auch auf mehrere "Platten" ein Gebäude kann. Da hapert es bei mir auch noch an der Vorstellung, wie man dann Objekten ihre Position mitteilen kann.

EDIT:

Wenn man dann auf dieses Schema auch noch Pathfinding anwenden kann, wäre es perfekt

Geändert von DerTobi (27-09-2010 um 21:59 Uhr)
DerTobi ist offline   Mit Zitat antworten
Alt 27-09-2010, 22:02   #4 (permalink)
in the boondocks
 
Benutzerbild von shin10
 
Registriert seit: Feb 2006
Ort: Augsburg
Beiträge: 3.501
Zitat:
Ich habe momentan ein 2dimensionales Array
das würde ich eigentlich schon als matrix verstehen, oder nicht?

klar wird das mit der zeit unüberschaubar, zumindest wenn du versuchst das level allein durch code aufzubauen. mit einem leveleditor ist das aber super machbar. auch dreidimensionale (für vorder-/hintergrund), wo du dann sicher bald landest.

mfg

sx

edit: die vorstellung davon solltest du möglichst schnell entwickeln, sonst codest du nur ins blaue. der plan kommt immer ganz am anfang
__________________

flintfabrik.de

Geändert von shin10 (27-09-2010 um 22:03 Uhr)
shin10 ist gerade online   Mit Zitat antworten
Alt 27-09-2010, 22:23   #5 (permalink)
Neuer User
 
Registriert seit: Oct 2009
Ort: Bremen
Beiträge: 147
Ja du hast Recht shin. Ein 2dimensionales Array ist natürlich schon eine Matrix

Also die Map die ich mir vorstelle kann man sich vom Grundgedanken her wie Google Maps vorstellen. Also eine leichte 3d-Sicht. Sie sollte in einzelne Felder unterteilt sein, mit der Möglichkeit, dass ein Gebäude auf mehreren Feldern steht. Da ich eventuell auch einen Hintergrund einbauen muss, wären also auch Tiefeninformationen von Nöten.

Wenn ich mir nun das ganze als 3dimensionales Array vorstelle, kommt gleich meine nächste Frage: Wie kann man das Ganze denn platzsparend Speichern?

Ideen?

Wenn man das Ganze auch noch unter dem Aspekt betrachtet, dass Pathfinding möglich sein sollte, wird es in meinen Augen noch komplizierter. Ich kenne bisher nur die Möglichkeit über aufgestellte Graphen / Trees den Weg mit A* oder anderen Algorythmen zu ermitteln. Ist das bei einem Array möglich oder sollte man dann doch eher über ein Objekt nachdenken, was seine Nachbarn kennt?
DerTobi ist offline   Mit Zitat antworten
Alt 27-09-2010, 22:39   #6 (permalink)
in the boondocks
 
Benutzerbild von shin10
 
Registriert seit: Feb 2006
Ort: Augsburg
Beiträge: 3.501
platzsparend bekommst du es in ein bytearray. aber erstmal ist nur wichtig, dass du es überhaupt speichern kannst. egal ob via xml, ein bytearray oder sharedobjects. sonst macht die ganze entwicklung keinen spaß.

tiefeninformation kommt ja dann durch die nächste dimension. aber eigentlich handelt es sich dabei eher um eine unterscheidung zwischen spiel-, vorder- und hintergrundebene. map[x][y][z] oder map[z][y][x]
für pathfinding brauchst du ja in der regel nur eine ebene, sprich zwei dimensionen. es sind ja eigentlich eher die grafiken, die dir vorgaukeln, dass es sich um höhere oder tiefere ebenen handelt.
__________________

flintfabrik.de
shin10 ist gerade online   Mit Zitat antworten
Alt 27-09-2010, 22:42   #7 (permalink)
ING
whatever
 
Registriert seit: May 2008
Beiträge: 419
ziel sollte es auf jeden fall sein ein mapformat zu entwickeln, evtl. auch 2 verschiedene, einmal das externe, also die dateien mit denen du den mapgenerator fütterst und das interne, welches vom mapgenerator erstellt wird (während es die map rendert) und die daten im spiel bereit stellt.

ersteres sind in der regel textdateien da sie leicht zu bearbeiten sind, gibt auch einige editoren wie schon erwähnt. zweites, wie auch schon erwähnt, arrays weil man damit am besten arbeiten kann.

man kann verschiedene ebenen anwenden um unterschiedliche arten von objekten (größe, interaktivität etc.) zu verteilen:

00100 - 0e000
01010 - 0g000
00010 - 00p00

0 = nichts
1 = wand
p = spieler
e = gegner
g = geschütz (auf der wand)

diese blöcke arbeitet man dann einfach ab und setzt alles auf einander, je nach ebenen typ auf die gleiche ebene oder auf eine andere zb. hintergrund, objekte usw.

pfadfindung geht auch leicht, wenn die map fertig ist einfach eine zusatzliche ebene mit knotenobjekten die überall dort erstellt werden wo nichts ist. die werden miteinander verbunden und dann kannste den a* wegfindung drüber jagen. man kann auch überlegen diese pfadfindungs map aus externer quelle zuerstellen, kann man später etwas performance sparen (wenn nötig) weil man zb. nur wegpunkte an kreuzungen setzen braucht.
ING ist offline   Mit Zitat antworten
Alt 27-09-2010, 22:46   #8 (permalink)
Neuer User
 
Registriert seit: Aug 2008
Beiträge: 205
Käme da nicht einfach eine isometrische map in Betracht?
Flashesjetzt ist offline   Mit Zitat antworten
Alt 27-09-2010, 23:01   #9 (permalink)
in the boondocks
 
Benutzerbild von shin10
 
Registriert seit: Feb 2006
Ort: Augsburg
Beiträge: 3.501
kann man auch machen, aber ich denke das sollte man erstmal eher im zeldastyle durchziehen.

ich würd mir zum experimentieren auch als erstes mal ein schickes sprite sheet suchen. z. b.: http://img45.imageshack.us/img45/425...gssheet7dv.png

edit: mit professionellen bildern zu arbeiten hebt die laune ungemein...
__________________

flintfabrik.de

Geändert von shin10 (27-09-2010 um 23:27 Uhr)
shin10 ist gerade online   Mit Zitat antworten
Alt 28-09-2010, 20:18   #10 (permalink)
Neuer User
 
Registriert seit: Oct 2009
Ort: Bremen
Beiträge: 147
Also vielen Dank ersteinmal für eure Ideen.

Deine, ING, hab ich zwar noch nicht ganz kapiert, aber ich glaube die isometrische Map wäre das richtige für mich.

Ich werd jetzt mal ein wenig probieren und programmieren und meld mich dann wieder.

mfG,
Tobi
DerTobi ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Anti-Decompile Techniken icebaer Flash MX 2004 2 15-11-2005 02:06
Techniken um den Box-Modell-Bug des IE zu umgehen gaspode Alternative Technologien 1 14-09-2005 21:58
techniken bei animationssteuerung fenster 3D 4 22-11-2003 08:03
[Umfrage] zukünftige trends/techniken? Mr.Twister Gestaltungstheorien 10 09-02-2003 01:24
Eure Flash-Techniken?->Umfrage! Strobe Flash 4 und Flash 5 1 16-04-2002 07:15


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:04 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele