Making a Raycaster using Godot 4 Compute Shaders!

Sdílet
Vložit
  • čas přidán 7. 09. 2024
  • #devlog #godot #godot4
    Source Code: github.com/bin...
    Today we reanimate the "raycasting" rendering technique popularized way back in 1992! We'll take advantage of Godot 4's new compute shaders, as well as implement a ton of cool rendering techniques! Enjoy!
    Credits:
    [1] (Wolfenstien footage) • Wolfenstein 3D Gameplay
    [2] (Quake footage) • Original Quake (1996) ...
    [3] (Raycast tutorial) github.com/vin...
    [4] (Godot 4 compute shader) • How to use Compute Sha...
    [5] (Godot 4 compute shader) • Learn GODOT 4 Compute ...
    [6] (Spiderman parallax) • how this game made mil...
    [7] (Parallax mapping tutorial + textures) learnopengl.co...
    Music (in order of appearance):
    - Shadowing ~ Corbyn Kites
    - Smoke Jacket Blues ~ TrackTribe
    - Hopeless ~ Jimena Contreras

Komentáře • 60

  • @binary_soup
    @binary_soup  Před rokem +7

    Find the key hidden somewhere in the video then answer the cypher question: cipher.binarysoup.dev/?v=7-nOK0UrAzk

    • @binary_soup
      @binary_soup  Před rokem

      Adventure on the Atari 2600.

    • @emre5614
      @emre5614 Před rokem +1

      Duck Hunt on some NES knock off. Also, when you're encrypting in the Vigènere cipher, you're not supposed to skip the spaces in the input text. So for example, HELLO THERE encrypted with the key "AB" would be "HFLMO UHFRF" and not "HFLMO TIESE".

    • @binary_soup
      @binary_soup  Před rokem

      @@emre5614 Thanks for the tip! I'll have to update my cypher script!

  • @willful759
    @willful759 Před rokem +24

    Fun fact: older consoles called the processor that did graphics a Picture Processing Unit, so indeed, a PPU

    • @RadikAlice
      @RadikAlice Před rokem +3

      A famous example would be the NES

    • @efeloteishe4675
      @efeloteishe4675 Před rokem

      @@RadikAlice SNES not the NES

    • @RadikAlice
      @RadikAlice Před rokem

      @@efeloteishe4675 The NES did too, don't be ridiculous

  • @emre5614
    @emre5614 Před rokem +25

    The Godot Engine uses OpenGL style normal maps, but there is another format of normal maps (usually called DirectX style) that has the Y axis reversed. This may be the cause of the problem you mentioned around 23:58.
    Also, I loved the video! The overall production and effort that went into this video really paid off! This is a production quality I would expect from a way bigger channel! I feel like I stumbled on a hidden gem! Not just that but the vibes it gives off is awesome!

    • @Calinou
      @Calinou Před rokem +3

      There's an option you can use in the Import dock to invert a normal map's direction (Normal Map Invert Y), so you don't need to edit the source normal map manually in an image editor.

  • @Myserval
    @Myserval Před rokem +13

    adding parallax mapping to a raycaster is such a good idea! I really really like the cutaway gags/skits too, good stuff, really glad youtube dropped this in my suggestion feed

  • @SilverstringsMusings
    @SilverstringsMusings Před rokem +10

    This channel has a lot of potential, here's a comment for the algorithm.

    • @D.S69
      @D.S69 Před 10 měsíci

      same here

  • @dortuff
    @dortuff Před rokem +7

    A video on compute shaders would be really helpfull. This video is also very cool I like the comedy mixed in with the main educational points.

  • @unicorn_tamer
    @unicorn_tamer Před rokem +3

    I am sorry, but how do you only have 500 subs?! This channel deserves a lot more!!

  • @mr_diamond_gold9842
    @mr_diamond_gold9842 Před rokem +5

    Your sophisticated raycasting algorithm is called DDA (Digital Differential Analysis) raycasting.

  • @tankerguy05
    @tankerguy05 Před 10 měsíci +1

    I just started using Godot, but I'm not new to gamedev. I've been wanting to make a raycasting game with python/pygame, but I'm finding it hard to understand the math. I thought I'd give Godot a try, not just for raycasting, but for gamedev in general. I thought I'd look up how easy it would be to implement raycasting in Godot, and to be honest it doesn't seem any easier. And since I'm new to Godot, and suck at any math past pre-algebra, I didn't understand a lot of this video, but it was still enjoyable to watch, and the end result looks really good.

  • @CheckovStuff
    @CheckovStuff Před rokem +1

    I've also been working on a raycaster in Godot. Very cool to see someone else using different methods to achieve similar results!

  • @bobfalfa-vg3jx
    @bobfalfa-vg3jx Před 5 měsíci

    Thank you for this video! I love raycasting engines but have struggled to find a high performance way to do it on modern systems. This is just what I needed to see. Thanks again and good luck on your future projects or part 2!

  • @RaposaCadela
    @RaposaCadela Před rokem +1

    Incredibly cool!! Look infinitely better than my attempt a while back

  • @Zurpanik
    @Zurpanik Před 11 měsíci

    This was a really cool video! Loved learning about this coolness especially after just recently migrating to Godot and loving it to pieces. Awesome stuff!

  • @bratworst
    @bratworst Před 2 měsíci

    This is how I found out about the tan distortion effect. Thank you

  • @smallconfusion8840
    @smallconfusion8840 Před rokem +3

    I would love to see a tutorial. I haven't been able to quite wrap my head around compute shaders.

  • @gnitsaf
    @gnitsaf Před rokem +1

    this is an awesome video. great job.

  • @tycho25
    @tycho25 Před 2 měsíci

    If I had a nickel for every youtuber I'm subscribed to that's a dude with long brown hair with a slapstick sense of humor who uses jazz as background music I would have 2 nickels

  • @breadman7733
    @breadman7733 Před rokem +1

    awesome video ! Thank you

  • @psyboyo
    @psyboyo Před rokem +1

    Great video, congrats!

  • @americanhuman1848
    @americanhuman1848 Před 2 měsíci

    made a raycaster and the first texture i tested was the classic source engine missing texture and it was in fact a trippy optical illusion

  • @iaso514
    @iaso514 Před rokem

    Great video! Loved the explanation and the jokes ❤

  • @MaplePolicy
    @MaplePolicy Před rokem

    Incredible video!!!

  • @mani_mincraft
    @mani_mincraft Před rokem

    Great video! I want more of these lol

  • @jamesrivettcarnac
    @jamesrivettcarnac Před 2 měsíci

    Compute shaders!

  • @CyTic5
    @CyTic5 Před rokem

    Really cool.

  • @tommycard4569
    @tommycard4569 Před rokem

    good vid, thx!

  • @sebbl580
    @sebbl580 Před rokem

    very cool video 👍

  • @nika_251
    @nika_251 Před rokem +1

    Ure the goat

  • @MyAmazingUsername
    @MyAmazingUsername Před rokem +2

    Gray cats are cool but why didn't you just make a real 3D world and a shader and unfiltered texture sampling to make it look like old raycasting? That would allow you to have actual 3D shadows and lighting in your world too, and you could use models or sprites for enrmies. Very fun to watch your progress though. Very good editing. Fun stuff. Subscribing!

    • @binary_soup
      @binary_soup  Před rokem +5

      I do have plans for a second part where I'll implement some cool stuff that would be very difficult in a traditional rendering engine, but fairly effortless in a raycaster.
      So yes there is a reason why I choose to use raycasting, but in retrospect I guess didn't really explain why in the video 😅.

    • @MyAmazingUsername
      @MyAmazingUsername Před rokem +1

      @@binary_soup Oh, I look forward to seeing that! :) Good luck with the continuation of the engine!

  • @cjdaylight3407
    @cjdaylight3407 Před rokem

    can you post about doom style rendering

  • @jimsantus8927
    @jimsantus8927 Před 4 měsíci

    is this more faster than the acutal 3d godot?

  • @crimester
    @crimester Před rokem

    you should try sdfs next

  • @MrSkeleton14
    @MrSkeleton14 Před 5 měsíci

    Too much math for my tiny brain

  • @slvrcross
    @slvrcross Před rokem

    I'm gonna come

  • @cjdaylight3407
    @cjdaylight3407 Před rokem

    If we can use cpu for ray casting why we should not use cpu

    • @binary_soup
      @binary_soup  Před rokem

      You can use the cpu, but it's just generally too slow to achieve good frame rates. The GPU by comparison is magnitudes faster since it runs graphics calculations in parallel.

    • @cjdaylight3407
      @cjdaylight3407 Před rokem

      @@binary_soup Thats seems right But we cane maybe give liltle bit calculation job to cpu and send results to gpu there is new tech Smart Acses Memory maybe it can do job

  • @bl8de3
    @bl8de3 Před rokem +1

    hello i love you

  • @ttmso
    @ttmso Před rokem

    i like how he uses ai, also what ai?

  • @GreenFox1505
    @GreenFox1505 Před rokem

    Godot isn't called GoDot.

  • @PeterMilko
    @PeterMilko Před rokem

    just use Unity :P

    • @mr_sauce_cooks
      @mr_sauce_cooks Před rokem +2

      Why?

    • @PeterMilko
      @PeterMilko Před rokem

      @@mr_sauce_cooks It would make it easier and better looking

    • @nigeladams8321
      @nigeladams8321 Před 10 měsíci

      Why would it be?

    • @PeterMilko
      @PeterMilko Před 10 měsíci

      because its a 3D game engine made for this stuff...@@nigeladams8321

    • @user-og6hl6lv7p
      @user-og6hl6lv7p Před 2 měsíci

      Just let corporation steal your content bro.