Prozedurale Levelgenerierung - Let's GameDev

Поділитися
Вставка

КОМЕНТАРІ • 80

  • @JellieBean123
    @JellieBean123 9 років тому +28

    Ich vermisse diese Art von Videos :,C
    Die kommen viel zu selten dafür dass sie so gut sind. Kannst du nicht eine App entwickeln, die dich simuliert, damit du mehr Zeit hast um neben LevelUP und sonstigem auch noch mehr solcher Videos zu machen? :D
    Wenn ich es endlich mal schaffe mich dazu zu bewegen ein Projekt zur Abwechslung auch wirklich mal fertig zu stellen kommen auf jeden Fall ein paar Let'sGameDev Anspielungen rein :D

  • @MehrLeistung
    @MehrLeistung 9 років тому +22

    "Schritt Null" hat mir schon wieder gefallen :D

    • @ScoringStageEu
      @ScoringStageEu 4 роки тому

      hahaha ja schönes Unwort. "...separt zu haben" fand ich auch gut. 'Separieren' hätte es getan :))

  • @Modosco
    @Modosco 9 років тому +13

    Ich merke erst jetzt wie mir deine Videos fehlen ;(
    Richtig gut, wie eig. immer :D

  • @stfm
    @stfm 9 років тому

    Du kannst wirklich hervorragend erklären.

  • @Linus-qe8po
    @Linus-qe8po 9 років тому

    Wow, das Video ist richtig gut gemacht, sehr verständlich und anschaulich erklärt! Da bekommt man richtig lust selber so einen Levelgenerator zu programmieren und auszutesten! Vielen Dank!

  • @nEuDyYT
    @nEuDyYT 9 років тому +1

    Wieder ein sehr tolles Video :) Diese Art von Video habe ich schon in deinem Kanal vermisst.. Mach weiter so :-)

  • @DreieckFX
    @DreieckFX 9 років тому

    Schön, mal wieder ein Technik Video von dir zu sehen :D

  • @paxxverse
    @paxxverse 9 років тому

    Sehr gutes Video, Tom!
    Ich weiß zwar, dass du viel zu tun hast mit LevelUP (großartiges Format btw) und genauso weiß ich auch, dass ich nie ein Spiel programmieren werde (lange Geschichte, ich hab's aufgegeben :D) aber ich finde den Stil deiner Videos super und informativ. Außerdem mag ich es zu verstehen, wie sowas generell umgesetzt wird :D
    tl;dr: Wenn du Zeit und Lust hast mach weiter mit den Videos, an Publikum wird es dir nicht mangeln.

  • @JohnDoe-xo8tb
    @JohnDoe-xo8tb 7 років тому

    Das ist super erklärt! Bin durch Zufall auf dieses Thema gestoßen (Elite Dangerous) und wollte einfach mal, anhand eines einfachen Beispieles wissen wie prozedurale Synthese prinzipiell funktioniert.

  • @Brotcrunsher
    @Brotcrunsher 9 років тому +8

    Aaaawaaa! Genau darüber habe ich angefangen meine Bachelor Thesis zu schreiben. :)

    • @LetsGameDev
      @LetsGameDev  9 років тому

      +Brotcrunsher Das wär cool, wenn ich die urteilsfrei lesen dürfte wenn sie fertig ist^^

    • @Brotcrunsher
      @Brotcrunsher 9 років тому

      LetsGameDev
      Geht klar! März oder so :)

    • @LetsGameDev
      @LetsGameDev  9 років тому

      supi^^

    • @FunLobbyDE
      @FunLobbyDE 8 років тому

      +LetsGameDev Wie war eigentlich das Bachleorstudium? War es schwer? Muss man viel zuhause erledigen? Ich möchte nach der kaufmännischen Ausbildung und einem Praktikum die Fachhochschule und das Bachleor of Science in Wirtschaftsinformatik erreichen.

  • @Christian-Drackert
    @Christian-Drackert 4 роки тому

    Sehr gut erklärt! Vielen Dank.

  • @basstell4617
    @basstell4617 6 років тому

    Sehr interessantes Video! Vielen Dank.

  • @thepnn
    @thepnn 7 років тому

    der Algorithmus klappt wunderbar in Minecraft mit der Spigot-Api

  • @AreyouReggae
    @AreyouReggae 9 років тому

    :D nice, zum Glück hab ich schon ne level Generierung für die gppcc geschrieben :D dabei werden aber immer die zwei nächsten räumen mit einem gang verbunden und eine Raum bekommt mehrere Gänge die zu jeweils einem anderen Raum führen :D das ganze erinnert dann eher an die anfangs level von pokemon mystery dungeon

  • @karl-henriklohmann6859
    @karl-henriklohmann6859 8 років тому

    Wann kommt das Spiel raus?
    Ich freu mich darauf!

  • @ErasSoft
    @ErasSoft 9 років тому

    Cooles Video :) Mehr davon

  • @crykrafter
    @crykrafter 8 років тому

    man kann auch eine geordnete list machen wo man eine methode machet die den wert des benachbarten zurückgibt. dann kann man für die felder auch objekte nehmen dien man mehr eigenschaften geben kann

  • @ekko331
    @ekko331 9 років тому

    kann ich das in dem RPG Maker VX Ace auch nutze wen nicht gipt es da ne
    andere möglichkeit

  • @gr3y5had0w
    @gr3y5had0w 9 років тому

    Darüber schreibe ich gerade meine Facharbeit :D super Video!

    • @LetsGameDev
      @LetsGameDev  9 років тому

      +Daniel Behpunkt die ich natürlich lesen möchte^^

  • @SargasLP
    @SargasLP 9 років тому

    Verstehe ich dass richtig dass der Generator sozusagen über eine Formale Grammatik definiert ist und das Level dann die Formale Sprache darstellt?

  • @gerritweiermann79
    @gerritweiermann79 8 років тому

    Echt cool. Ich habe es mal in GameMaker:Studio v1 nachgebaut: puu.sh/sv5xd.gif
    In deinem Video hättest du den Weg, eine Sackgasse zu finden etwas performanter erklären können, indem man einfach schaut, wo der Weg geht und der Stack "leer geschaut wird".

  • @doctorwhojr.2022
    @doctorwhojr.2022 9 років тому

    Das ist mega cool ;)

  • @Kombi-1
    @Kombi-1 7 років тому

    Interessante Videos. Total vergesseen....

  • @pizzatrain9600
    @pizzatrain9600 9 років тому +5

    Hi Tom, mein G++ Game wird wohl leider wegn Schule und Star Wars Battlefront nicht rechtzeitig fertig, ich werde es trotzdem mit mehr Zeit fertig machen :D

    • @pizzatrain9600
      @pizzatrain9600 9 років тому +1

      +Pizza Train Achja: Danke, dass du mal wieder so ein Video gemacht hast!

    • @ByteBitTV
      @ByteBitTV 9 років тому +1

      +Pizza Train Haha :P Auch einer der Battlefront spielt und deswegen nicht (vermutlich nicht) mit macht :D

    • @pizzatrain9600
      @pizzatrain9600 9 років тому +1

      Liegt ja nicht NUR an Battlefront... :D

  • @krmax44
    @krmax44 9 років тому

    kannst du die html, js und css dateien zum download anbieten? wäre super:)

  • @WebDevAndMore
    @WebDevAndMore 8 років тому

    Hej Tom wie hast du die Räume gesetzt? also wie umgesetzt ?/

  • @amilismurfs
    @amilismurfs 9 років тому

    kann es nicht sein dass bei schritt 4 sich zwei räume durchgang verschaffen, aber sich mit keinem Weg verbinden?

  • @mormir6822
    @mormir6822 9 років тому

    Was ist eigentlich mit Heart eater?

  • @MrDavibu
    @MrDavibu 9 років тому

    Ich hätte mich ja noch eine Punkt 6 gewünscht:
    6
    \0
    Wenn schon nerdig dann richtig :D
    Edit:
    Upps ein Fehler, das ist ja ne Escape-Sequenz, die kann ja garnicht als String ausgegeben werden XD
    Edit Edit:
    Außer du escapest die Escape-Sequenz. Aber das müsstest du vor der Ausgabe tun, was aber dann hardcoded wär, weil es ja nur für den Fall ist, wenn array[x]=="\0" ist.
    Escaped kannst du ja nicht in den Array schreiben, sonst hat er ja kein Ende mehr ^^
    Und wenn du die Felder alle während der Ausgabe escapst hast du das Problem das deine tolle Formatierung flöten geht XD

  • @ricardosendes776
    @ricardosendes776 9 років тому

    eine frage, ist es dann nicht doof dass in 100% der sackgassen truhen vorzufinden sind?

    • @LetsGameDev
      @LetsGameDev  9 років тому

      +Ricardo Sendes Das ist j dir überlassen, du kannst ja auch sackgassen haben ohne truhen^^

  • @mixschnack
    @mixschnack 6 років тому

    Hallo, Tom!
    Dein "Level" verfügt ja über eine definierte Fläche innerhalb derer sich alle Gänge und Räume befinden müssen. Was ist nun aber, wenn man die zusätzliche Bedingung zu erfüllen hat, dass die gesamte Fläche zu 100% genutzt werden soll? Also, sagen wir mal, das Level besteht aus 16x16 Feldern von denen jedes entweder Wand oder Raum oder Gang sein muss. Was ändert sich dann am Algorithmus, bzw. was muss ich bei der Implementierung eines solchen beachten? Ich würde mich über ein paar "Vorüberlegungen" als Denkanstoß freuen, denn so weit ich es anhand deiner vielfältigen Videos erkennan kann, bist du ein recht cleverer und findiger Denker und Programmierer.

    • @LetsGameDev
      @LetsGameDev  6 років тому

      Also, wenn jede Kachel entweder Wand oder Raum oder Gang sein soll, dann würde ich folgendes Definieren: Gänge sind doch eigentlich auch nur Räume, denn in beiden kann man gehen. Und Wand ist Wand egal wie Dick diese ist. Demnach würde das was ich hier gezeigt habe, sogar deiner Definition entsprechen.
      Wenn du aber ganz am Ende vermeiden willst, dass es große Schwarze "Wandflächen gibt", so könntest du vielleicht diese Identifizieren und dort wieder räume generieren.

    • @mixschnack
      @mixschnack 6 років тому

      Ok, cool, dass du du trotz der anstehenden G++CC12 noch Zeit gefunden hast, mir zu antworten. Deine Antwort lasse ich mir noch durch den Kopf gehen. Btw., die Top 3 Spiele der G++CC12 waren 3 von 6 Spielen, die bei mir persönlich in der engeren Auswahl waren.

  • @schrottgames
    @schrottgames 9 років тому

    Hallo Tom, mein G++ Game ist schon fast fertig, aber bevor ich es abschicke hätte ich noch ne Frage.
    Und zwar zu den zwei Screenshots die man mit einschicken muss.
    Sollen diese zu 100 % dem Spiel entsprechen oder dürfen die auch bearbeitet sein, also so wie die meisten Screenshots im Play Store, die unter anderem auch Schrift und andere Elemente enthalten?

    • @LetsGameDev
      @LetsGameDev  9 років тому +2

      +Schrott Games eines sollte auf jeden fall unbearbeitet sein

    • @schrottgames
      @schrottgames 9 років тому

      Ok, dann mach in ein Screenshot unbearbeitet, und auf den anderen schreibe ich Infos drauf

  • @jakobhellermann6974
    @jakobhellermann6974 8 років тому +1

    Hat jemand eine gute Idee, wie man implementieren könnte, welche der Nachbarfelder frei sind und man anhand dessen seinen x/y wert verändert? Mir fallen nur sehr hässlich ineffektive methoden ein :p
    Danke im vorraus

  • @1SvenKevin
    @1SvenKevin 9 років тому +10

    Schritt 0 :) Den verstehen nur Programmieren vollständig ^^

    • @1SvenKevin
      @1SvenKevin 9 років тому

      +Sven Haberkorn Wenn das überhaupt eine Anspielung darauf sein soll, dass Programmierer von 0 hochzählen müssen. :)

    • @LetsGameDev
      @LetsGameDev  9 років тому +3

      +Sven Haberkorn sollte tatsächlich keine sein XD aber du hast recht und nun freue ich mich das ich mir selbst einen witz vorenthalten habe XD

    • @FunLobbyDE
      @FunLobbyDE 8 років тому +3

      +LetsGameDev Im Prinzip solltest bei jedem Video, wo du mit Schritt 1 anfängst am Ende des Videos mein Browser abstürzen mit der Fehlermeldung "IndexOutOfBoundsException: Dieser UA-camr hat es auf dich abgesehen".

    • @Nibooss
      @Nibooss 8 років тому

      +Sven Haberkorn außer du programmierst lua

    • @1SvenKevin
      @1SvenKevin 8 років тому

      *****
      Okay, bis auf kleine Ausnahmen. :) Aber cool dass du's sagst. Von Lua hatte ich noch nichts gehört.

  • @SimonNitzsche
    @SimonNitzsche 9 років тому

    Mit Stack meinst du Array oder Table stimmts?

    • @LetsGameDev
      @LetsGameDev  9 років тому

      +BuschTube Mit Stack meine ich Stack. In Javascript hat allerdings ein Array auch die Funktionallitäten eines Stacks

    • @letsnecnucerkue7466
      @letsnecnucerkue7466 9 років тому

      +BuschTube In Java wäre ein Stack zB eine Queue (gleiche Funktion wie ein Stack)

    • @FunLobbyDE
      @FunLobbyDE 8 років тому

      +LetsNecnuc ● Ɗĕŗ ǨūŋƋȅ Es gibt auch den Originalstack wie von Tom beschrieben: docs.oracle.com/javase/7/docs/api/java/util/Stack.html

  • @SofaPlays
    @SofaPlays 9 років тому

    Heii :) Also das ist so: ich bin noch relitiv jung (für das Programmieren) und fange deswegen an mit python zu programmieren, weil ich nicht mit so welchen programmen wie xojo oder so arbeiten möchte.Ist es schlau mit python anzufangen?Ich fing schonmal an die java sprache zu lernen, dann sagte mir mein onkel (er arbeitet als Programmiere oder so :D)das das quatsch ist am anfang java zu lernen.Würde mich über eine antwort freuen, eigentlich egal von wem ^^

    • @sera_kath
      @sera_kath 9 років тому

      ich hab auch mit python angefangen kann bis heute nichts anderes wirklich gut

    • @KevinLikesChips
      @KevinLikesChips 9 років тому

      +Sofa Plays Wenn du dir einen Raspberry Pi holst, kannst du echt coole Projekte mit Python programmieren. Wetterstationen, Smart Home Systeme, Motoren steuern usw. Dazu ist Python 'ne relativ einfache Sprache :)
      Ich würd dir aber auch empfehlen HTML und CSS zu lernen damit du ein Grundverständnis für einrücken und die Auswirkung von Befehlen hast. So habe ich es damals gelernt :D
      PS: Gib nicht zu schnell auf. Programmieren kann manchmal echt frustrierend sein, aber das ist meiner Meinung nach das spaßige daran :D

    • @SofaPlays
      @SofaPlays 9 років тому

      +KevinLikesChips ja, mir macht auch am meistem spass das korrigieren, das nachdenken und das verzweifeln :D Am Ende ist man dann um so stolzer ^^ Und danke für dein Kommentar :)

    • @SofaPlays
      @SofaPlays 9 років тому

      +Boronwarrior Aber wenigstens kannst du eine sache ;)

    • @JonyXL44
      @JonyXL44 9 років тому

      +Sofa Plays Wie alt bist du denn ;) ?

  • @Fluffyisasir
    @Fluffyisasir 9 років тому

    In diesem Sinne.

  • @ZZD_yt
    @ZZD_yt 8 років тому

    HTML5 KANWAAS Element. :3

  • @AposGamerblog
    @AposGamerblog 5 років тому

    Hi @LetsGameDev, vielen Dank für das Video. Auf dessen Grundlage konnte ich meinen eigenen Levelgenerator basteln :)
    ua-cam.com/video/x9ie-2owKMA/v-deo.html

  • @Caplin94
    @Caplin94 9 років тому +2

    hehe bin der 69. Zuschauer >:)

  • @Kombi-1
    @Kombi-1 7 років тому

    Das "und ich programmiere ein Spiel" hat sich nicht sehr überzeugt angehört!

  • @FunLobbyDE
    @FunLobbyDE 8 років тому

    xD puu.sh/mySOK/bdae76cf95.jpg

  • @mrtroble1937
    @mrtroble1937 9 років тому

    Enums FTW
    Integers sind langweilig

    • @Dzatoah
      @Dzatoah 9 років тому

      peh.
      Ich mag Integer aber D:

    • @mrtroble1937
      @mrtroble1937 9 років тому

      ich eigentlich auch aber in diesem Fall zu unübersichtlich :/

    • @Dzatoah
      @Dzatoah 9 років тому

      mimimi