I Made a Voxel Engine

Поделиться
HTML-код
  • Опубликовано: 21 окт 2024

Комментарии • 176

  • @ZygerGFX
    @ZygerGFX  Год назад +21

    Dont forget to checkout GameMaker 👉 opr.as/GM-Zyger

  • @Hewentsh
    @Hewentsh 11 месяцев назад +14

    It feels nice to see a person that is able to do these kind of things and it motivates me to try new things and don't give up. I personally subscribed to your channel, hope that you will continue to inspire me

  • @HexaflexagonFan
    @HexaflexagonFan Год назад +174

    I feel like you are slowly morphing into jdh

    • @ZygerGFX
      @ZygerGFX  Год назад +74

      maybe I am jdh 🤐

    • @HexaflexagonFan
      @HexaflexagonFan Год назад +18

      @@ZygerGFX new conspiracy theory unlocked lol

    • @stickguy9109
      @stickguy9109 Год назад

      ​@@ZygerGFX Impossible unless you use the good ol C👌 and write 186127625627252622lines of code in 2 months

    • @vakqdev
      @vakqdev Год назад +10

      “Whats up guys, today im going to be distracting myself from the meaninglesness and eternal void of life by taking on another graphics programming challenge”
      Describes both JDH and Zyger perfectly

    • @HalloGaming
      @HalloGaming Год назад +1

      Isn't everyone?

  • @modernmage
    @modernmage 11 месяцев назад +10

    Good job fixing your explanation of vertices and indices! I noticed you called them edges last time but have learned since then. Visible progress

  • @chriskleeblatt1867
    @chriskleeblatt1867 10 месяцев назад +6

    You really like this cat sound, don't you?

    • @PixelThorn
      @PixelThorn 8 месяцев назад +1

      I thought they were seagulls, but yeah, way too many

    • @eg1525
      @eg1525 2 месяца назад

      @@PixelThornbruh they werent seagulls ?

  • @MAKiTHappen
    @MAKiTHappen Год назад +18

    As a vulkan user I can relate a 100%
    ESPECIALLY to the part where after the build it took you one line to create a window
    It is extremely relatable, and I'd never spend hours prepping every single variable, allocating memory for them, cleaning them up, and checking how these values interract to make sure that none of them corrupted.
    As I mentioned I'd never do that because that'd be idiotic, so once again 100% can relate to creating a window right after the first build
    And also liked and subbed because great video

    • @godnyx117
      @godnyx117 Год назад

      Chad Vulkan!

    • @godnyx117
      @godnyx117 Год назад

      Doesn't the language you are using has templates?

    • @halfbakedproductions7887
      @halfbakedproductions7887 Год назад +1

      I've heard Vulkan is horrible. That's from people who are much smarter than me, so I'm happy to believe them.

    • @godnyx117
      @godnyx117 Год назад

      @@halfbakedproductions7887 If someone used the word "terrible" to describe Vulkan, then there are definitely NOT smarter than you.
      Vulkan is meant to be a lower level API hence, it needs more work (and from what I heard, much, much more) but it was made purely to be able to give that control and allow optimizations. So from a point of view, I guess that you can call Vulkan "terrible" in a sense that it's very more complicated and harder to learn and use than OpenGL. But this isn't the best description you could give about it, as for most people, the term "terrible" makes us think of something bad and not something hard or complicated.
      Did these "smart" people provided any reasons to call it terrible other than the ones mentioned? As I don't have personal experience with it, I may not know some things. But from what I see online, Vulkan is supposed to allow you to have more optimizations and have your 3D apps run faster, and lots of Software seem to move to it.

    • @MAKiTHappen
      @MAKiTHappen Год назад

      Vulkan is for people who are too scared to go full openCL, but too pretentious for the OpenGL @@halfbakedproductions7887

  • @progress_games
    @progress_games Год назад +3

    editing was top notch in this video! nice work!

  • @RobertOSheaGameDev
    @RobertOSheaGameDev Год назад +8

    Loved the video, just want to say "acksually", the dark parts of a perlin noise map are 0, not 1. Just cause the perlin noise at a point is actually just a single value and the image is generated by setting RGB components to be that single value and all 0s is black and all 1s is white.
    Looking forward to a part 2, I saw someone in the comments mention occlusion culling but I also wanted to mention frustrum culling, using both in conjunction really cuts down on what even gets considered being sent to the GPU

  • @KeldonA
    @KeldonA Месяц назад +1

    There's also the voxel approach used in Delta Force (IIRC they stopped after v2) and a bunch of PC games before GPUs entered the room.

  • @jamiecropley
    @jamiecropley Месяц назад

    This is the best video I have seen explaining voxel engines

  • @halfbakedproductions7887
    @halfbakedproductions7887 Год назад +4

    C&C Tiberian Sun used voxels and it looked pretty futuristic for 1999. It was a radically different look to other C&C games, definitely enhancing the dark and foreboding mood of the game that they were going for. I wish voxels were used more often because it does look cool.
    I was also thinking occlusion culling to save on rendering cycles for things not visible to the player, but you basically covered that off.

  • @FREAKBAlT
    @FREAKBAlT Год назад +5

    I’m making a game engine in OpenGL and I started at the start of the year and you were the first person I looked to (I was making it in DirectX when I started)
    also you should make an attempt to make a graphics engine in vulkan (I'm praying for your sanity)

    • @godnyx117
      @godnyx117 Год назад

      I think if someone wants to use 3D Graphics, Vulkan makes sense as OpenGL is abandoned (from what I heard).

    • @FREAKBAlT
      @FREAKBAlT Год назад

      @@godnyx117 I was kind of new to graphics programming when I started making the engine so I chose a simpler graphics library. I might switch to Vulkan in the second iteration of the game engine.

    • @godnyx117
      @godnyx117 Год назад

      @@FREAKBAlT Yeah, I understand. My comment was a bit more general as to 3D graphics. I understand that you personally wanted to use OpenGL as your first API. Good luck my friend!

    • @nikkiofthevalley
      @nikkiofthevalley 8 месяцев назад

      ​@@godnyx117OpenGL is not abandoned. It is supported by every platform except Apple's (because of course), and is still getting new updates.

  • @Icie145
    @Icie145 Год назад +1

    Eyyy new video! And its amazing, worth to wait n keep up the good work man! :3

  • @finnf2462
    @finnf2462 Год назад +2

    Great Video but Indices are no instructions. They each act as a index for the Vertex buffer and the order of the indicies define in which way each triangle is drawn

  • @m4rt_
    @m4rt_ Год назад +3

    You should implement greedy meshes and mipmap stuff

  • @darkfllame
    @darkfllame Год назад +2

    you made your all thing in c++ while i'm still struggling to make my own game engine that will use a batch renderer with texture atlas and shits. also i do it in zig ;> wich is kinda cool. anyways if you didn't know, because i didn't a week ago, but raycast are just a collision check between a line and a polygon. so good luck :)

    • @nikkiofthevalley
      @nikkiofthevalley 8 месяцев назад

      This voxel engine is way less complex than an actual game engine. It's designed to do one thing and one thing only.

  • @titaniumtomato7247
    @titaniumtomato7247 Год назад +3

    I am loving this series of low level projects

  • @zmeczonyprogramista
    @zmeczonyprogramista Год назад +3

    Great work! 😉
    What's up next? Perlin worms for cave generation or maybe marching cubes for sloped terrain?

    • @HexaflexagonFan
      @HexaflexagonFan Год назад

      the marching cubes one defeats the entire point of the project lol

    • @m4rt_
      @m4rt_ Год назад

      well with marching cubes it will no longer be voxels

    • @web0wraith
      @web0wraith Год назад

      @@m4rt_ That's not exactly true, it just won't look cubic any more. Technically, heightmaps are voxel terrains, just rendered differently. True voxels are simply points in 3D space, meaning technically even a point cloud is a voxel system. Plus, if you look at the early work of procworld.blogspot.com/ you will see that voxels don't even have to be uniform in shape

    • @HexaflexagonFan
      @HexaflexagonFan Год назад

      ​​@@zmeczonyprogramistait's meant to be a VOXEL engine, if you add marching cubes, there won't be any voxels anymore

  • @LostSendHelp_YT
    @LostSendHelp_YT Год назад +5

    Your lucky you don't have to trade your arm and internal organs to use the API

  • @alexmathewelt7923
    @alexmathewelt7923 Год назад +4

    If u don't mind, I have some advice for u: instead of allocating memory for each Chunk, u can use directly the emplace_back on the vector or placement new. If you know the render distance R, u need (2R+1)² chunks in total. Now u can use the chunk out of range for the new one getting in vision. With modulo arithmetic this is easy possible (chunk.x % (2R+1)) would be the x index of a chunk at chunk.x in the chunk grid. After the same operation for y (or z), u can linearize the index into the vector and get a unique position in ram, that does not change. Also it is possible to change render distance, but the chunks have to be regenerated.
    If u want to index a specific chunk position, this is also easily possible, since it's just the linearization. Continuous memory is extremely efficient when u have to traverse it regularly...

  • @xGOKOPx
    @xGOKOPx Год назад +1

    enum with string as its base type looks cursed

    • @ZygerGFX
      @ZygerGFX  Год назад +1

      I later ended up changing it to a char. But yes I agree 😂

  • @gruelingpine1857
    @gruelingpine1857 Год назад +2

    You've been doing quite a lot with OpenGL lately... If it isn't too much to ask for, would you give Vulkan a try and document your process? I know it's daunting and a decent amount of code (because I'm writing one myself), but pretty please?

  • @Skeffles
    @Skeffles 11 месяцев назад +1

    Brilliant! Can't wait for part 2

  • @wnt3r983
    @wnt3r983 Год назад +1

    I think you should develop this engine and create a game based on it. Nice vid!

  • @MonamiTech
    @MonamiTech 11 месяцев назад

    It's a good video. I wanted to make a game since I was young, but as I got older and started working, I didn't have time to do it, so I looked up a lot of videos like this and it's fun. I want to make my own game someday. Thank you for the good video.

  • @LenardB.-we1hu
    @LenardB.-we1hu Год назад +1

    May im mistaking but a seed as it exists in minecraft would be a way to prevent a overflow of the dictonary since the chunck is calculatable and has no longer to be stored.

  • @seriouslyWeird
    @seriouslyWeird 10 месяцев назад +2

    it's a common misconception that it's a bunch of cubes. it's really difficult to find a REAL voxel game :(
    (like old outcast, or blood 1 did for some assets, that had the actual voxel engine)

  • @washynator
    @washynator Год назад +3

    Great video, just wondering why you placed your self-written voxel engine in a folder called Unity/UnityProjects :D Too hard to change the Git-folder? I get it.. Also, all great people place their projects in the F-drive!! Oh yeah, you deserved a like, I'm already subbed, sorry :(

    • @ZygerGFX
      @ZygerGFX  Год назад +2

      Yeah I placed my git folder in the unity projects folder ages ago when working on a unity game. And I uavent been bothered to change it. Though this comment is a good reminder to do it 😂 also thanks

  • @octagear
    @octagear Год назад +3

    i counted 13 meows

  • @godnyx117
    @godnyx117 Год назад

    You have a great humor. Keep up and have fun!

  • @LuigiCotocea
    @LuigiCotocea 6 месяцев назад

    6:16 Actually use a seed to generate the noise map and when the world generates as you explore it just finds out based on the seed

  • @untodesu
    @untodesu Год назад

    Welcome to the voxel development hell :D

  • @ElZafro_
    @ElZafro_ Год назад +3

    I would say minecraft isn't really a voxel game since the faces of the blocks are rasterized like quads.
    Now after the "akshually" moment,
    it's really impressive you condensed all the info into a 10min video, nicely done!

    • @SerBallister
      @SerBallister Год назад

      How are voxels supposed to be drawn? You can't just feed a 3d volume texture into a GPU and tell it to draw it as cube like voxels.
      Voxels are a storage method, not a drawing method. You can draw them in several ways, polygons being one of them.
      In the 16bit and DOS era voxel landscapes were drawn using 2d rectangles, similar to billboards. There is no rule for rendering them.

  • @skioneczek
    @skioneczek 8 месяцев назад +1

    do a voxel api it's a funny task and if you di it coretly it going to be faster then triangles because instead have 8 tiangles per cube = 32bits. voxel can have a x,y,z and one bit of size its 16bits per voxel 2 times less!

  • @bioinvasion_
    @bioinvasion_ Год назад +11

    I love your videos! I hope you make a part 2 :)

  • @xenovy7865
    @xenovy7865 6 месяцев назад

    this bird sound is going to make me rip my eyeballs out

  • @FunFindsYT
    @FunFindsYT Год назад +1

    How much C++ do you need to learn to write a simple engine? I got some experience with C#. trying to learn c++ right now but I don't know how much to learn before I should start

  • @nepmods
    @nepmods Год назад +3

    open source your projects. so we can see and try to play around oy maybe improve too

  • @eosscripting2922
    @eosscripting2922 Год назад

    game dev vlogger publish sponsor a game engine:
    proceed to make her own game engine*

  • @erentr7167
    @erentr7167 Год назад +2

    you make it seem like its easy as hell but when i try it takes weeks lol

    • @halfbakedproductions7887
      @halfbakedproductions7887 Год назад +1

      Welcome to gamedev. I too write mountains of buggy garbage, only to find a tutorial where someone does it in like 10 lines of code and it works better.
      So annoying. Study and practice is the way forward, much like anything else.

  • @nuggetweeb573
    @nuggetweeb573 Год назад

    why one batch per chunk instead of one batch for all of the mesh? also are you going to add greedy meshing?

  • @mgames7856
    @mgames7856 Год назад +2

    Will you move your story fps into unreal

  • @MonsterCreations662
    @MonsterCreations662 Год назад

    Awesome as Always!

  • @GES1985
    @GES1985 Год назад +1

    Can you make it smooth / photo realistic?

  • @dvshkbm
    @dvshkbm Год назад

    i love yuor videos please dont stop x

  • @nickdevprod3667
    @nickdevprod3667 Год назад +2

    Remove annoying transition sound pls

  • @Dackernator
    @Dackernator Год назад

    Love it , hopefully you do well n this project

  • @ChadLorwick
    @ChadLorwick Год назад

    "Developers" in 2023 essentially Frankenstein things together js.

  • @larsmaas07
    @larsmaas07 Год назад +1

    really inspiring

  • @Punch_Card
    @Punch_Card Год назад

    underrated youtuber

  • @GameCookDev
    @GameCookDev Год назад +1

    Why is the background music missing

    • @ZygerGFX
      @ZygerGFX  Год назад +1

      It's not, it may he too quiet though. My bad in that case

  • @JackPS9
    @JackPS9 Год назад +5

    If you want to get caves working, you should look into Perlin Worms, not sure if you added them in the stuff not shown or not but figured I'd mention it.

  • @KozelPraiseGOELRO
    @KozelPraiseGOELRO Год назад

    I want to do something not-so-simillar to a minecraft clone but I can't get the window. I was using SDL because I want to make it Windows-Linux compatible. I already made all the stuff the guides and the StackOverflow answers that had the same problem and still nothing.

  • @knitnatsnokprogramming
    @knitnatsnokprogramming 11 месяцев назад +1

    Great video, BUT PLEASE DONT USE THE SAME SOUND EFFECT 1K TIMES IN THE VID!!!
    no offense 👌

  • @ZachI2289
    @ZachI2289 Месяц назад

    Please part 2!!! 🙏🙏🙏🙏

  • @DonCrafts1
    @DonCrafts1 Год назад

    Great video!

  • @deleted_handle
    @deleted_handle Год назад

    Yayyyy i love voxel engines.

  • @george_sepetadelis
    @george_sepetadelis Год назад +2

    Awesome 🎉

  • @sledgex9
    @sledgex9 5 месяцев назад

    7:03 is not valid C++. An enum can't have "std::string" as an underlying type. Only integral types can be used (eg int, char, long etc).

  • @HalloGaming
    @HalloGaming Год назад

    You should make a smooth voxel engine

  • @RadleyBO0
    @RadleyBO0 Год назад

    This was a good video, but I’m afraid I’m gonna need part 2 ASAP. Lol

  • @kalpolproductions8558
    @kalpolproductions8558 Год назад +1

    If i got a dollar for every time i saw a cat meme or heard "Meow". Id be pretty rich 😂.
    Jokes aside ive been wanting to make a render engine or a PS1-2 style graphics engine to make my games but never knew where to start.

  • @миииц
    @миииц 2 месяца назад

    Have you ever tried Raylib?

  • @HexaflexagonFan
    @HexaflexagonFan Год назад

    I am the 3 people on earth who use scratch and this is very impressive and inspiring!!

  • @Axorax
    @Axorax Год назад

    looks cool

  • @kennethchao1290
    @kennethchao1290 9 месяцев назад

    great work!

  • @sepanodarbandi
    @sepanodarbandi Год назад +2

    Which one did you enjoyed the most to work with ? OpenGL or Direct3D ?

    • @FREAKBAlT
      @FREAKBAlT Год назад

      I couldn’t even figure out how to initialise directx. I’m all for GL

  • @caiomegaverse5590
    @caiomegaverse5590 4 месяца назад

    How long of C++ study is needed to learn to make this?

  • @AugustoCesar-by6eb
    @AugustoCesar-by6eb 9 месяцев назад

    estou navegando por todo tipo de experiencia e tutorial sobre criar esse tipo de sistema procedural de voxels, recentemente vi um video muito bom, talvez vode poderia adicionar ambient occlusion no shading, da um aspecto bom. ótimo video

  • @llap
    @llap 10 месяцев назад +1

    yoyoyo, whats the deal?

  • @mariovelez578
    @mariovelez578 Год назад +2

    OpenGL is not an API, it's a library
    also 6:03 you got it backwards

    • @ZygerGFX
      @ZygerGFX  Год назад +2

      But it is an API. It is also a graphics library. And yes I now realised that it's backwards 😅

  • @boomcrafter.
    @boomcrafter. Год назад +4

    Minecraft isn’t actually a voxel game it’s still uses the other technique of rendering everything out of triangles and so simulates voxels because it’s better Performents wise

    • @ragdude7323
      @ragdude7323 Год назад +4

      That’s still voxel

    • @boomcrafter.
      @boomcrafter. Год назад

      no its simulating voxels voxels are a completly difrent rendering method@@ragdude7323

    • @SerBallister
      @SerBallister Год назад +1

      Voxels = storage method (3d pixels)
      Polygons = drawing method
      They are not the same things, both can be used.

    • @Stroopwafe1
      @Stroopwafe1 Год назад +2

      Everything will be rendered with triangles in the end, as that's just how the GPU works...

    • @boomcrafter.
      @boomcrafter. Год назад

      i know thats what i was talking about@@Stroopwafe1

  • @Cymock1
    @Cymock1 11 месяцев назад

    What's with the cat sound?

  • @dahim1172
    @dahim1172 Год назад

    i want a part 2!!!!!

  • @realwizardgod
    @realwizardgod Год назад

    that sound effect is driving me mad

  • @edw0rd21
    @edw0rd21 16 дней назад

    is the source code available o-n github? would love to take a look as im tryna make the same thing and am stuck ://

  • @mezohx
    @mezohx Год назад

    How about making it in the Lobtser language? 🤔

  • @David92031
    @David92031 Год назад

    I feel like you really need to be a genius to do all of this that easily

  • @schweeeeeeeeeeeeeeee
    @schweeeeeeeeeeeeeeee 8 месяцев назад

    Vulkan next?

  • @gerardniks3636
    @gerardniks3636 Год назад

    I have been working on a voxel engine in the browser for some time, mine isn't this fast tho

  • @debugdiver
    @debugdiver Год назад

    Never heard of you. Watched this video. I got a thing for voxels n shit. I like what I'm hearing. Watch some more. Dank memes, blender memes. Exactly what I'm looking for. 👍

  • @pallascomrade
    @pallascomrade Год назад +5

    But it's not voxel engine. Voxel is 3d equivalent for pixel. It's not cube, which made from polygons. Minecraft is just cubic art style game, but it dont use anything like voxel rendering

    • @Crimsickle
      @Crimsickle Месяц назад

      we got the fun police here

  • @Vilebreken
    @Vilebreken Год назад

    wow good video

  • @alignedgames
    @alignedgames Год назад

    Do people play many Voxel based games?

    • @ZygerGFX
      @ZygerGFX  Год назад +1

      the only ones I've really played is ofcourse Minecraft and the Teardown

    • @alignedgames
      @alignedgames Год назад

      @@ZygerGFX So the dev is just for fun?

  • @ZooHair
    @ZooHair Год назад

    Voxelitious

  • @koki10190
    @koki10190 Год назад

    make a graphics card driver.

  • @Photon852
    @Photon852 Год назад

    are u planing on releasing the source code?

  • @jasonwilliams8730
    @jasonwilliams8730 Год назад

    👍

  • @mostafashaker8279
    @mostafashaker8279 Год назад

    I am jealous.

  • @DRAGNIL68
    @DRAGNIL68 Год назад

    WRONG a voxel engine is suffering cubed

  • @BruhMoment-yg6jv
    @BruhMoment-yg6jv Год назад

    Let's hope she knows about std::async

  • @ham4063
    @ham4063 5 месяцев назад

    Out of interest, why do you use glad as a pose to glew?

  • @pedrogabrielnogueira1068
    @pedrogabrielnogueira1068 Год назад

    bruh. Your github please :v
    Edit: Nice video btw

  • @Zicrus
    @Zicrus 9 месяцев назад

    Very cool video, but wow that cat noise (or whatever it is) got repetitive and was kinda annoying

  • @gr-source
    @gr-source Год назад

    Amos seus videos ❤🇧🇷

  • @DalpakaNBA
    @DalpakaNBA 5 месяцев назад

    why is your project in the unity projects folder are you hiding smth from us

    • @ZygerGFX
      @ZygerGFX  5 месяцев назад

      bad file management that's all. I made a project there once by mistake and linked it with git and ever since i haven't bothered moving it :))

    • @DalpakaNBA
      @DalpakaNBA 5 месяцев назад

      @@ZygerGFX same bruh😭🙏

  • @hyprobablyausto
    @hyprobablyausto Год назад

    LIAARRRRR...U used directX in ur last video

    • @ZygerGFX
      @ZygerGFX  Год назад

      Wrong. I used opengl: ruclips.net/video/XfKFZ46mDXI/видео.html
      That's my last video 😅

  • @codyhubert6178
    @codyhubert6178 8 месяцев назад

    I think your editing is great, but I really an not stand the sound effects. I don't mean to be rude, but the cat sound effect every ~30 seconds, and the stone grinding constantly are overused.
    Besides that it's a great video

  • @shidoengie9503
    @shidoengie9503 Год назад

    Try rist please

  • @bl4ckk
    @bl4ckk Год назад

    you have made too many engines