Landschaften zufällig mit Value Noise erzeugen | Let's GameDev

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

КОМЕНТАРІ • 123

  • @JellieBean123
    @JellieBean123 8 років тому +29

    Mehr davon! o-o
    Lasst uns eine Klonmaschine bauen und eine Sklaven-Tom Armee züchten die massig Let's GameDev's produziert!

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

    Mensch den Brotcrunscher kennt man doch, da hab ich Java gelernt

  • @Farbfilmstudio
    @Farbfilmstudio 8 років тому +4

    Ich hab zwar keinen Plan was du da immer sagst aber es ist mega intresant und unterhaltsam.

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

    Mega geil das ihr jetzt etwas zusammen macht - bitte unbedingt öfter machen!!!!!!

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

    Hallo Tom,
    Die Qualität deiner Videos wird immer besser!
    Mir ist es noch nie so leicht gefallen, ein so komplexes Thema zu verstehen.
    Freue mich schon auf die nächsten.
    Danke und weiter so!
    Gruß

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

      +MartinW. Schön, das es dir gefällt!

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

    Mehr davon!! Absolut geil gemacht Leute, meine zwei Lieblingsyoutuber vereint.

  • @user-sm5wo9cp3o
    @user-sm5wo9cp3o 8 років тому

    Du hast ein sehr schönes und Innovatives Intro.
    Nicht so ne Dupstep scheiße wie jeder hat.
    Schön, gefällt mir.

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

    Vielen Dank! Danach habe ich schon vor 2 Jahren gefragt ;) Bin froh, dass es endlich geklappt hat.
    Eine Nachfrage noch: Kannst du noch ein Ergänzungsvideo machen, wie das mit Seeds funktioniert, oder führt das zu weit? Ich habe nämlich festgestellt, dass manche Programmiersprachen schon einen Zufallsgenerator mit Seeds mit sich bringen, wie man den dann aber einsetzt, wenn man nicht die ganze Welt auf einmal generieren will (sondern Schritt für Schritt und in unterschiedlicher Reihenfolge), kann ich einfach nicht rausfinden. Ich hoffe, du kannst mit helfen ;)

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

      +Hans Müller Der Seed als solches ist ja meist nur eine Startnummer von dem aus die Zufallstabelle ausgeht. Denn der Zufall selbst ist ja kein Zufall, sondern ein Pseudozufall.

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

      jede programmiersprache benutzt dafür einen seed, meist ist dieser aus der aktuellen uhrzeit berechnet wenn du keinen angibst

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

    Oh endlich ein neues Video!

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

    Sollte wieder mehr solcher Videos geben :-)

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

    Danke :D
    Brauche sowas momentan zwar überhaup nicht, ist aber trotzdem interessant und wenn ich mal einen Landschaft Generator brauche, weiß ich wie ich es ungefähr machen muss ;D

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

      +Pizza Train PS Der Sound ist besser geworden!

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

    Sehr gut erklärt!

  • @TheGoldenSky
    @TheGoldenSky 8 років тому +13

    04:21 er zeigt uns den Mittelfinger :o

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

    Sehr sehr schönes Video

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

    Ich habe mir vorgenommen eine Welt zufällig generieren zu lassen, 2 Wochen später kommt dieses Video.
    Danke!!!

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

      +TUTEDUTSCH Da haben wir ja Glück gehabt^^

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

      Ich vor allem. War ganz kurz davor das Projekt zu löschen weil ich einfach gar nix gefunden habe:/

  • @morlin7808
    @morlin7808 5 років тому +1

    4:21
    Stichwort :Mittelfinger

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

    Oh Gott, was ist mit der Soundqualität passiert?

  • @p-196
    @p-196 6 років тому

    aus deinem Beispielbild fürs Hintergrundrauschen hab ich einfach mal mit Gimp eine Lavatextur gemacht :)

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

    Echt gut erklärt! Ist das auch mit Musik möglich, hab nämlich drüber nachgedacht Musik prozedural zu erstellen. Hoffe du kannst mir Tipps geben.

  • @Leo-on5yp
    @Leo-on5yp 2 роки тому

    Hey Tom,
    kannst du auch mal erzählen, wie man seed-basierte Zufallswerte erhält, da ich das gerne in Verbindung mit Value Noise benutzen möchte. Und danke für das Video, war echt interessant :)

    • @LetsGameDev
      @LetsGameDev  2 роки тому +1

      An sich kannst du in jeder sprache den Seed ja neu setzen, meistens anhand der aktuellen uhrzeit als millisekunden seit 1970

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

    Ab 3:52 habe ich nicht verstanden, wie du auf die Ecken gekommen bist. Hast du wieder Werte von -20 bis 20 zufällig an die Ecken gesetzt? Kannst du mir erklären, wie man das mit Excel super machen kann, oder gibt es eine .xlsx auf deiner Website? Ich konnte das bis 4:50 nämlich leider nicht genau nachvollziehen :)

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

    hast du zu dem Mittelwert einen Link der das nochmal weiter erklärt?

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

      +MCEndercrafttv Du meinst den gewichteten Mittelwert? Du wirst es nicht glauben, aber im Grunde ist bei 5:09 die gesamte Erklärung gegeben.

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

      danke für die antwort also immer *0.75 beim nachbar der zelle und *0.25 beim entfernten nachbarn? bei der zweiten octave hast du 0.5 bei beiden benutzt sehe ich das richtig?

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

      richtig es kommt hal timmer darauf an wo du näher dran bist. darum auch gewichtet. es is tnicht immer 0.75 und beim nderen 0.25. sondern immer im verhältnis. es kann also auch mal 0.33 und 0.67 sein. je näher du an dem einen bist desto weiter weg bist du von dem anderen

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

    Erstmal gutes Video und zweitens könntest du bitte mal ein Tutorial machen wie man Tilemaps in Phaser einbindet ?

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

      +CrayArts Hallo, ich mache keine Programmierspezifischen Videos.. Da wirst du dich selbst mit folgendem Link beschäftigen müssen: phaser.io/examples/v2/category/tilemaps

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

      Ok Danke

  • @bl4ckscor3
    @bl4ckscor3 8 років тому +2

    Funktioniert Simplex Noise ähnlich hierzu, oder ist das komplett anders?
    Und könntest du vielleicht mal ein Video zu seed-basiertem noise machen? :)

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

      +bl4ckscor3 Im Grunde kommts auf das "selbe" raus. Super deep bin ich da aber auch nicht drin^^

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

      +bl4ckscor3 Erstens: Du hier? (Ich bin hastumer), zweitens: Ich denke, bei seeds vielleicht dann bestimmte rechnungen, z.B. seed / 4, seed / 14, seed / -9 usw. machen, (festgelegt halt, damit es sich nicht ändert) und dann daraus das berechnen. Wenn du willst, kann ich dir das ja nochmal genauer erklären, was ich meine.

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

    Danke für die gute Erklärung!!
    Aber ich finde den "Random Map Generator" nicht wirklich unter den links oder übersehe ich diesen nur ?

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

      +Mathias Kraw (Xeracles) Ich doofi! Ist nun in der Videobeschriebung und hier: lets-gamedev.de/noisemap/

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

      +LetsGameDev Danke :)

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

    Mal ne Frage: Könnte man nicht einen Pseudo-Random Generator machen? z.B. ich hab ein Tilefeld von 10*10 Tiles. Ich fange oben links an und generiere eine komplett Random (Oder Pseudorandom, wir sind ja bei Computern, halt nicht beeinflusst durch den Mapgenerator) Zahl. Dann rechne ich tilevalue1 = randomzahl/(10^[anzahl der ziffern]). Dadurch habe ich eine Zahl von 0 bis 1. dann gehe ich eins weiter nach rechts. Ich benutze eine Random-Zahl und tilevalue1 und generiere daraus eine random zahl. allerdings hat diese Zahl eine relativ hohe Wahrscheinlichkeit, dass sie nah an tilevalue1 liegt. Das mache ich immer weiter, bis die Zeile fertig generiert ist. Dann geh ich in die zweite Zeile und mache das gleiche, allerdings nehme ich jetzt die random numbers in einem 3x3 block um die kachel (wie bei dir in dem Erosions/Dilatations Video) und nehme diese als seeds, WENN sie nicht leere Felder sind. Das mache ich für jede Reihe und am ende sollte ich doch auch eine recht gut generierte, zusammenhängende Welt haben, oder? (Natürlich, wenn man Pech hat, nicht, aber danach könnte man ja nochmal einen "Cleaner" über die Welt laufen lassen, sodass sie nicht wirklich komisch mehr ist.)

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

      Klar kannst du machen. Ob da was brauchbaren bei rauskommt, musst du testen. Mach das mal und berichte uns!

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

      LetsGameDev Bin gerade dabei! :3

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

    4:22 Warum zeigst du uns den Mittelfinger?

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

    Hey "LetsGameDev"!
    Welche Game Engine benutzt du eigentlich für Java?

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

      Als ich noch in Java gearbeitet habe, habe ich entweder gar keine genutzt oder libGDX

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

      LetsGameDev Danke. Warum arbeitest du nicht mehr in Java :)?

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

      Da ich beruflich auch mit html5 zu tun habe bin ich da dann einfach auch privat geblieben

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

      LetsGameDev Danke für die schnelle antworten.

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

    Wieso wird bei der 2-Dimensionalen Variante das letzte Array mit zufälligen Werten gefüllt ? Welchen Zweck erfüllt es ?

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

      Ich weiß nicht genau was du meinst, da wir die arrays doch immer mit zufälligen Zahlen befüllen die dann interpoliert werden.

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

      LetsGameDev Ab der 5:35 Minute befüllst du jede Zelle mit einem zufälligen Wert (-5 bis 5). Wieso aber?

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

      Das ist wie bei dem 1dimensionalen Verfahren. Da in jedem Durchgang da Intervall erhöht wird um am Ende kleine und große Varianten zu haben. Also grobe Berge auf die dann Mittelgrobe Berge hinzukommen und am Ende die feinen und das ist dann jede Zelle und es wird nicht mehr interpoliert

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

      Achso Danke

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

    einfach ein paar sinusse verwenden. welche mit niedriger Frequenz und hoher Amplitude, und welche mit hoher Frequenz und niedriger Amplitude.
    Sollte da nicht was ähnliches raus kommen?

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

      +hanspeter2210 Klar, kann man auch machen. Das ist das aber halt kein Value Noise Algorithmus mehr :) Es gibt tausende Wege etwas zufällig zu erschaffen, da kann man durchaus kreativ werden.

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

    multipliziert man die oktaven nich?

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

      +Deer Viehch Eigentlich nicht aber du kannst die Ergebnisse natürlich auch multiplizieren. Da danach ja eh normalisiert wird ist das dann einfach eine andere Methode.

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

      +LetsGameDev Hi, ich hätte mal ein paar Fragen. Ich will mit Freunden ein Fangame für Luigi's Mansion machen. Welche Programmiersprache sollte ich dafür benutzen? Wie kann ich die Texturen bekommen? Soll ich dafür einen Editor, wie RPG-Maker oder Unity benutzen? Es wäre sehr nett, wenn du diese Fragen beantworten könntest

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

      ***** Wie würdest du dein können einstufen?

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

      +Deer Viehch Ich kann schon gut Programmieren. Ich hab zum Beispiel schon Mods für Minecraft gemacht und ein kleines Spiel für Android programmiert.

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

      +Deer Viehch Ich kann übrigens Java, HTML, Javascript und ein bisschen C++

  • @potatutata3853
    @potatutata3853 8 років тому +2

    kannst du bitte mal einen c++ crashcourse machen wo du leicht die programmiersprache erklärst und bücher und kostenlose informationen empfielst

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

      gidf.de
      cse.google.de/cse?q=c%20%20%20craskurs&sa=Suche&cx=partner-pub-0030114367999801:7ve7oxp555y#gsc.tab=0&gsc.q=c%20craskurs&gsc.page=1

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

    Hey, könnte man vielleicht den Source Code deines Map-Generators kriegen? Wäre super :)

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

      Den hast du schon ;)
      Strg+u auf der Seite bringt dich hin.

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

      Danke :D

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

    cooles video

  • @zombiegmbh
    @zombiegmbh 7 років тому +1

    Warum cuttest du so viel

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

      So kommt Information schneller an und ich muss mir nicht 200 Sätze merken sondern nur 2.

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

    Hi Tom kannst du mal wenn du willst und zeit hast ein video machen über Shoebox machen mit dem man Sprites machen kann würde mich freuen aber nur machen wenn du willst und zeit hast wenn du nicht willst ist es nicht schlimm Danke :D

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

    Ich klicke und Klicke doch ich starte und pausiere nur das Video ! :P # Anmerkung hinzufügen ;)

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

      +detlef isweg Wo fehlt eine Anmerkung?

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

      LetsGameDev Am Anfang des Videos dachte ich aber vllt hat auch der Browser gesponnen :P . Oooder ihr wollt mich nur fertig machen und habt sie nachträglich eingefügt *grübel * xD

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

    3:22 das denkt er wirklich von uns

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

    I can't understand a single word.
    But thanks hahaha

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

    Der Gute Herr hat wohl auch das hier gesehen:
    ua-cam.com/video/_2Ea2GOECEs/v-deo.html
    Und hatte lust zu erklaeren

  • @wftr910
    @wftr910 3 роки тому

    Ich versteh nicht warum so kompliziert mach einfach nen Zufalls Generator mit unity random range

    • @LetsGameDev
      @LetsGameDev  3 роки тому

      Weil ich dir hier erklärt habe was da im Hintergrund passiert!

    • @wftr910
      @wftr910 3 роки тому

      @@LetsGameDev ganz schön kompliziert was da im hinter Grund passiert aber trotzdem einigermaßen verständlich erklärt

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

    Es wäre ja auch VIEL zu einfach gewesen mit Werten zwischen 0 und 1 anzufangen und dann auf 0.25 bis 0.75 zu verkleinern etc um sich den Dreisatz zu sparen... Warum einfach wenn es auch kompliziert geht.

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

      +Backnight Stimmt! Werte von -1.3231 bis 1.2343 sind viel eher 0 bis 1! Warum Richtig, wens auch fast richtig geht?

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

      LetsGameDev
      Hä? Du wandelst doch hinterher negative sowieso in positive Zahlen um^^ oder versteh ich das falsch?

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

      Ja eben, mit deiner Methode sparst du dir doch nichts. Für mich hat es sich so angehört als würdest du auf den Schritt der Normierung verzichten können mit deiner Methode.
      Ob du nun am Ende zufällige Werte von -142 bis 213 oder -1.2542 bis 1.2435 normierst ist total egal.
      Es kann gut sein, dass wir aneinander vorbeireden. Vielleicht möchtest du deinen Verbesserungsvorschlag näher ausführen?

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

      LetsGameDev
      Naja, wenn man einfach die Bereiche aus denen man die Zufallszahlen wählt so anpasst, dass die Werte zwischen 0 und 1 liegen, dann spart man sich die Normierung.

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

      Wenn du auf die normierung verzichtest und über den -theoretischen minimalen und maximalen Wertebereich bescheid weisst, kannst du das so machen.
      wenn der zum beispiel theoretisch von -75 bis 75 geht kannst du ja auch einfach sagen "okay alles ab 60 ist eben Berglandschaft"
      Es kann dann sein, dass dein tatsächlicher Wertebereich dann zwischen -40 und 2 liegt.
      Es würde dann einfach keine Berge geben. Wenn das für deinen Anwendungsfall so okay ist, dann ist das gut.
      Meist will man aber eine genauere Kontrolle über alles haben. Die Normierung dient vor allem auch der Generalisierung. So kannst du dann die gleiche Funktion für verschiedene Aufgaben nutzen und weißt einfach, dass da immer ein normierter Wertebereich zurückkommt.
      Am Ende ist nur wichtig was für dein Problem hilft. So wie ich den Algorythmus hier gezeigt habe, ist er schulmäßig. Ihn an seine Bedürfnisse anzupassen liegt dann in der Hand des Entwicklers.

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

    Noice

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

    Erster muhahahahahah
    Werde mich demnächst mal ransetzen und das ganze in einem kleinem Spiel in LÖVE nachbauen.
    Danke für das Video

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

    ich hab gerade irgendwie echt Bock ein 2D RPG zu entwickeln.. Schon Pläne für #gppcc9? xD

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

      Einen RPG wird Tom wahrscheinlich nicht wählen, weil wenn man ein RPG in Java oder C++ usw programmiert, hat man nach einigen Wochen erst ein paar Level, aber wenn einige zB den RPG Maker benutzen, sind sie mit dem Ganzem Spiel schon nach einer Woche fertig ^^PS das waren viele Kommas xD

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

      ***** Das Problem mit dem RPG Maker ist in der Hinsicht aber nur nützlich, wenn du ein Kampfsystem a la FF benutzen möchtest.
      Aber ja, ich verstehe worauf du hinaus willst und du hast einen Punkt

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

    4:22 Du bist aber nicht nett zu deinen Zuschauern. Solche handzeichen...

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

    3:22 das denkt er wirklich von uns

    • @maio5685
      @maio5685 8 років тому +4

      +FröhlicherKeks korrigiere: 4:22