AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Zufälligen Levelgenerator

Offene Frage von ".chicken"
Ein Thema von .chicken · begonnen am 24. Mär 2008 · letzter Beitrag vom 25. Mär 2008
Antwort Antwort
.chicken

Registriert seit: 5. Dez 2006
459 Beiträge
 
#1

Zufälligen Levelgenerator

  Alt 24. Mär 2008, 18:55
So, hier kommt direkt noch ne Frage hinterher.

Also, ich arbeite grad an nem kleinen Raumschiffspiel. Ich häng es mal dran, damit ihr eine Vorstellung habt wie das aussieht.
Sinn ist einfach nur so weit wie möglich zu kommen.
Die zufällig generierten Level sehen allerdings noch sehr eintönig und simpel aus.

Wie würdet ihr einen Levelgenerator angehn mit folgenden Funktionen:
-Decke und Boden (ggnfalls auch nur eines oder keins von beidem, soll einstellbar sein)
-gewährleistung, dass immer ein Weg durch die Karte besteht
-freifliegende "Boxen" als hindernisse
-das ganze ansehnlich gestaltet (ala Worms!?)

Wie aufwendig ist sowas, wie geht man das an? Ich denke für viele von euch ist das ne ziemlich leichte Übung, deswegen würde ich gerne mal hören wie ihr sowas umsetzt.
Achja und dann noch eins: Ich setze das Spiel bisher ohne Andorra2D oder sonstige Unterstzuetzung um. Ist das auch bei komplizierteren Polygonen möglich, oder sorgt das für enorme Rechenleistung?
Ist die Performance zu verbessern wenn man statt eines Timers, das OnIdle Event nutzt? (hab da mal irgendwas aufgeschnappt...)

Grüße und hoffe ihr habt schöne Vorschläge

Edit: Achso es geht erstmal hier nicht um Grafiken und sowas, sondern nur um die reinen Formen. Es reicht mir erstmal in schwarz-weiss ^^
Angehängte Dateien
Dateityp: exe rocket_180.exe (588,5 KB, 34x aufgerufen)
  Mit Zitat antworten Zitat
xy124

Registriert seit: 3. Dez 2007
146 Beiträge
 
Delphi 7 Personal
 
#2

Re: Zufälligen Levelgenerator

  Alt 25. Mär 2008, 08:26
erstmal 2 fragen abn dich vor meiner Antwort:
hast du mit delphiX oder andorra gearbeitet?
und wie machst du die highscoreübertragung(ich bin auch grad dabei ein jump'n'run spiel zu machen und sowas würd ich auch gern einbauen)

so und zu deinem Leveleditor: ich würds so machen, das du einen Zufallswert für die Decke berechnest und dann die voreingestellte mindest höhe für den Boden addierst - du musst natürlich darauf achten, das die zufallswerte immer so gewählt sind, das sie auch "reinpassen".
als nächstes könntest du auch immer für die nächste Pixelsspalte sagen, das diese z.B. nur um wenige Pixel anders sein darf als die vorherige. Im endeffekt könnte so was funzen aussehen:
Delphi-Quellcode:
deckenpixel := random(clientheight-hohe)
fussbodenpixel := deckenpixel+hohe
// du kannst hier natürlich auich wieder mit zufall spielen:
fussbodenpixel := clientheight-(random(clientheight-hohe))
ach ja - wie steuert man dein spiel eigentlich?(die pfeiltasten schneinens nicht zu sein)
o o
LJ
TTT
  Mit Zitat antworten Zitat
.chicken

Registriert seit: 5. Dez 2006
459 Beiträge
 
#3

Re: Zufälligen Levelgenerator

  Alt 25. Mär 2008, 11:45
Aeh also erstmal zu den Highscores. Hab mirn ne PHP-Datei geschrieben, die den erreichten Score online in eine Textdatei schreibt und eine PHP-Datei die sie wieder abruft.
Dann werden die Werte anhand einer Trennsilbe getrennt und dann eingetragen.

So zum steuern. Wenn du die Maustaste klickst, steigt die Rakete blinkt unten rechts auch abundzu auf ^^


Dann zum Levelgenerator. So ungefähr mache ich es schon, dass ich zwei Bereiche habe, einen für die Decke und einen für den Boden in dem diese schwanken dürfen, und dann noch eine Maximale Höhe für die Boxen.
Das ist mir aber nich variabel genug...
Ich möchte aber auch nicht, dass Decke und Boden immer gleich aussehn... :-\

Es weiss doch sicher wer, wie genau zB der Worms Levelgenerator funktioniert oder? Ich häng mal Bilder an die verdeutlichen wie ich das gerne hätte
So, meint ihr das ist viel zu kompliziert und nicht umzusetzen?
Angehängte Grafiken
Dateityp: bmp example_175.bmp (1,37 MB, 27x aufgerufen)
  Mit Zitat antworten Zitat
OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#4

Re: Zufälligen Levelgenerator

  Alt 25. Mär 2008, 12:34
Ich würde grundsätzlich den Level in zwei Schritten generieren: Zunächst eine sehr grobe Unterteilung, die die Struktur das Levels vorgibt (zum Beispiel ein grobes Raster oder Polygone mit wenigen Ecken), und dann kannst du noch jede Menge Feinheiten dazu generieren, um mehr Abwechslung reinzubringen. Da du mindestes einen Pfad brauchst, der komplett durch geht, wäre ein Suchbegriff vielleicht Bei Google suchengenerate maze.
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat
.chicken

Registriert seit: 5. Dez 2006
459 Beiträge
 
#5

Re: Zufälligen Levelgenerator

  Alt 25. Mär 2008, 12:45
Ok, die Idee mit grob zu fein gefällt mir sehr gut. Allerdings denke ich, dass ein Labyrinth nochmal was ganz anderes ist und auf ganz andere Weise konstruiert wird oder nicht? (Also zumindest nach den Sachen die ich mir da grad durchgelesen habe).

Mir fehlt jetzt also ein Algorithmus, um die groben Formen der Polygone zu bestimmen. Dabei sollten es nicht nur konvexe (wenn ich das richtig verstanden habe, sind das solche die nach aussen gewoelbt sind oder?) sein. Außerdem muss gewährleistet bleiben, dass immer ein bestimmter Bereich, dess Größe angegeben werden soll, frei bleibt.

Und ich brauche noch freifliegende Hindernisse, aber nur dann, wenn sie nicht zuviel des freien Platzes verdecken ^^

Für mich klingt das ziemlich kompliziert
Ich hatte shconmal drüber nachgedacht,einfach irgendwie die Decke und den Boden zu konstruieren und dann mit einem neuen Polygon einen Weg hinein zu "schneiden". Aber das ist sicherlich nicht sehr performant und ihr habt sicher bessere Vorschläge oder? ^^

Danke soweit

Edit: Bei Wikipedia habe ich nun gefunden, dass die Worms Level mithilfe von zufälligen Alpha-numerischen Strings erstellt wurden. Ich hab allerdings keine Ahnung wie das funktionieren soll :-\
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#6

Re: Zufälligen Levelgenerator

  Alt 25. Mär 2008, 13:17
Zitat von .chicken:
Edit: Bei Wikipedia habe ich nun gefunden, dass die Worms Level mithilfe von zufälligen Alpha-numerischen Strings erstellt wurden. Ich hab allerdings keine Ahnung wie das funktionieren soll :-\
Ich glaube, daß wird nur als Seed für den Zufallszahlengenerator genommen, damit du dir gute Level immer wieder spielen kannst:
gleicher Seed gleiche Zufallszahlen gleiches Level

MfG,
Bug
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat
.chicken

Registriert seit: 5. Dez 2006
459 Beiträge
 
#7

Re: Zufälligen Levelgenerator

  Alt 25. Mär 2008, 13:26
Aso....hmm ok und hat nun wer ne Idee wie ich das ganze umsetze? ^^
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

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

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz