The Problem With Procedural Generation

  Рет қаралды 196,482

Acerola

Acerola

Күн бұрын

Пікірлер: 1 000
@Acerola_t
@Acerola_t 10 күн бұрын
The first 500 people to use my link will get a 1 month free trial of Skillshare: skl.sh/acerola11241 ! #ad Simpler video today, it's also my birthday sooooo you better have watched the video all the way through
@kaidaluck648
@kaidaluck648 10 күн бұрын
Happy birthday
@subbu_creates
@subbu_creates 10 күн бұрын
I watched it all the way through and happy birthday
@alphared7330
@alphared7330 10 күн бұрын
Just as i was making a project using procedural generation! Happy Birthday aswell
@cogwheel42
@cogwheel42 10 күн бұрын
Happy birthday. Thanks for the gift! wait...
@AikaterineG
@AikaterineG 10 күн бұрын
Happy birthday
@davidequattrocchi5083
@davidequattrocchi5083 10 күн бұрын
but Acerola, I wanted to complain in the comments that the title, thumbnail and premise was just an excuse to trick all of us into learning fundamental parallel programming techniques... and you did that yourself
@ultimaxkom8728
@ultimaxkom8728 9 күн бұрын
Common Acerola rabbit hole trap W
@JesusPlsSaveMe
@JesusPlsSaveMe 5 күн бұрын
​@@ultimaxkom8728 Where are you going after you die? What happens next? Have you ever thought about that? Repent today and give your life to Jesus Christ to obtain eternal salvation. Tomorrow may be too late my brethen😢. Hebrews 9:27 says "And as it is appointed unto man once to die, but after that the judgement
@ReggieVdz
@ReggieVdz 5 күн бұрын
ngl for about 10 minutes I thought to myself "but acerola what does this have to do with minecraft"
@antekpaztek
@antekpaztek 4 күн бұрын
this video is NOT about minecraft
@paulregener7016
@paulregener7016 2 күн бұрын
Boy am I glad I clicked on this video in Calc-II doing sequences and series. Made all the homework I did make a ton of sense.
@diskpoppy
@diskpoppy 10 күн бұрын
But Acerola, just so you know this "theoretical" completely random version of Minecraft you just described near the beginning of this video does officially exist! It's how the worlds are generated in Minecraft 4k, a Java Applet version of Minecraft that fits in merely 4 kilobytes! You could use a screenshot of that version for purposes of illustrating this concept, not just reusing the same 2d 2-color white-noise image! That, and acknowledging this obscure version of Minecraft would make the relevant portion of this video at least 20% cooler.
@SZvenM
@SZvenM 10 күн бұрын
Probably my favourite bit of minecraft trivia ever
@sullumeent
@sullumeent 10 күн бұрын
nobody mentions the mlp reference
@gilly_the_fish
@gilly_the_fish 9 күн бұрын
@@sullumeent Good
@nullpoint3346
@nullpoint3346 6 күн бұрын
@@sullumeent That would be in Minecraft 40k, so that it can filter out the cringe.
@JesusPlsSaveMe
@JesusPlsSaveMe 5 күн бұрын
​@@SZvenM Where are you going after you die? What happens next? Have you ever thought about that? Repent today and give your life to Jesus Christ to obtain eternal salvation. Tomorrow may be too late my brethen😢. Hebrews 9:27 says "And as it is appointed unto man once to die, but after that the judgement
@GameDevBox
@GameDevBox 10 күн бұрын
BUT Acerola
@penewoldahh
@penewoldahh 10 күн бұрын
BUT Acerola,
@errorstudioz
@errorstudioz 10 күн бұрын
But GameDevBox
@7EEVEE
@7EEVEE 10 күн бұрын
"but aceROLLaaa..." remember chinese is a tonal language.
@GameDevBox
@GameDevBox 10 күн бұрын
@@errorstudioz 😅😂😂
@GameDevBox
@GameDevBox 10 күн бұрын
@@7EEVEE yeah exactly 😂
@merlumina
@merlumina 10 күн бұрын
as a programmer and textile artist who loves the connection between the two, learning that a group of threads is called a warp made me very happy
@isodoubIet
@isodoubIet 10 күн бұрын
Ohh so that's where the name comes from
@iansanford6544
@iansanford6544 9 күн бұрын
Modern computer programming has its roots coming from the Jacquard Loom in 1804, a weaving machine that used punch cards to control the fabric patterns. We've come a long way from punch cards on a loom, to ENIAC to PCs to smartphones, but the weaving DNA is still there in little places.
@RedFoxtail26
@RedFoxtail26 9 күн бұрын
Makes me wonder if something relevant is known as a "weft" 👀 (if not, it could be a cool name for a program that uses multiple warps, as it "weaves" between them)
@Roxor128
@Roxor128 7 күн бұрын
Only in Nvidia land. AMD calls it a "wavefront". Dunno about Intel, though.
@marcomoreno6748
@marcomoreno6748 7 күн бұрын
​@@Roxor128 Intel calls it
@RobLang
@RobLang 10 күн бұрын
Every time you mock a web dev, there's an embedded algo dev laughing at your 0.6ms, hardware abstraction layer, operating system, high level language and bounded problem space.
@Acerola_t
@Acerola_t 10 күн бұрын
good thing my first real job was embedded systems
@RobLang
@RobLang 10 күн бұрын
@@Acerola_t algo dev against silicon?
@overloader7900
@overloader7900 9 күн бұрын
@@RobLang Against radio enthusiasts doing their signal processing with just copper wire and some iron rods
@hyperon_ion9423
@hyperon_ion9423 9 күн бұрын
@@overloader7900Why make a computer to measure the change in voltage when I can just make the metal magically do it for me? (Please don't make me do circuit analysis)
@orestes_io
@orestes_io 9 күн бұрын
@@Acerola_t mic drop
@LordOfDegeneracy
@LordOfDegeneracy 10 күн бұрын
But Acerola, I would have clicked on the video even if it just said "Fundamental Parallel Programing Techniques"
@cat47
@cat47 8 күн бұрын
with the dearrow browser extension, the title is "Parallel Algorithm for Finding an Axis Aligned Bounding Cube of a Set of Points"
@LordOfDegeneracy
@LordOfDegeneracy 8 күн бұрын
@@cat47 the dewhat
@Levi1440p
@Levi1440p 10 күн бұрын
but acerola,
@melon_powa
@melon_powa 5 күн бұрын
minc eraft
@SystemSearcher
@SystemSearcher 10 күн бұрын
I swear most of the time inbetween these two videos was spent not on figuring out the algorithm itself, but on figuring out how to tie this neat solution to a problem you have to a gaming topic. Not even a bad thing, it's just funny to me.
@Acerola_t
@Acerola_t 10 күн бұрын
most of the time was spent trying to come up with an analytical solution to the bounds problem such that i wouldnt have to waste 0.6ms on a bounding box calculation
@b_dawg_17
@b_dawg_17 10 күн бұрын
⁠but @@Acerola_t , it would be worth it for a snickerdoodle 😂
@Anklejbiter
@Anklejbiter 10 күн бұрын
​@@Acerola_twhy spend 30 seconds running some code when you could spend 8 hours failing to make it run in 29? Programming 101
@apelsin9094
@apelsin9094 10 күн бұрын
​@@AnklejbiterYou fool, it's called optimization
@collin4555
@collin4555 10 күн бұрын
@@Acerola_t Now if that doesn't capture the vibe of half of (my more interesting) workdays
@func_e
@func_e 10 күн бұрын
i love learning college level maths from a white guy who says "dogshit" at least twice in each video. Mr. Rola is my favorite teacher
@adissentingopinion848
@adissentingopinion848 10 күн бұрын
TBH engineering has a lot of multidisciplinary problems that have the distinction of "this is ass, so here is an ass-reducing function and related ass-heuristics". It often boils down to something along the lines of "O(n^k) |k>1 is dogshit for a sufficiently large n" inb4 xkcd
@bartolomeus441
@bartolomeus441 9 күн бұрын
This is so based, I wish college professors were inspired by edutainment youtube. It doesn't stop being science when you don't use confusing scientific lingo and boring ass Powerpoint slides.
@alloounou6900
@alloounou6900 5 күн бұрын
I am he recipient of two cheeks of ass ass I have read and heard the phrase simultaneously. A full moon. A 360 degree angle. The pie has been pi'd and deemed delicious.
@S41L0R
@S41L0R 10 күн бұрын
if u think about it our entire universe is procedurally generated
@yaoitiddieexpert1486
@yaoitiddieexpert1486 10 күн бұрын
or its entirely predictable. who can say
@sirel33
@sirel33 10 күн бұрын
can we try again with a better seed
@S41L0R
@S41L0R 10 күн бұрын
@@yaoitiddieexpert1486 true and real
@wozniakowski1217
@wozniakowski1217 10 күн бұрын
so the point about it sucking stands
@JaxiPaxified
@JaxiPaxified 10 күн бұрын
@@yaoitiddieexpert1486 or is both
@SX_7
@SX_7 10 күн бұрын
Interestingly, original Elite used procedural generation with a set seed to generate massive (especially at the time), yet always the same universe, using only the modest hardware they had available
@duncansnowden6857
@duncansnowden6857 10 күн бұрын
Came here to say the same thing. Originally, proc. gen. was used to mitigate memory and storage constraints, not to create variety or “randomness”. Mike Singleton's “Midnight” series is another impressive example from the '80s.
@HumanityAsCode
@HumanityAsCode 9 күн бұрын
I think games still use proc gen to save memory and disk space like with the foliage example or when placing trash in a city setting.
@RAFMnBgaming
@RAFMnBgaming 8 күн бұрын
specifically it was several set seeds, The possibility space for Elite's procgen was a lot bigger than what it shipped with, the Devs just picked out the seeds for 8 generated "sectors" that worked better than average and made that the play space of the game
@HildeTheOkayish
@HildeTheOkayish 7 күн бұрын
Another advantage of using a set seed is that it is easier to create good results. You can adjust your generation to work really well on just a select few seeds, and if it looks bad on other seeds then that is fine because no one is using those anyway
@codahighland
@codahighland 4 күн бұрын
River Raid did the same thing.
@DKarkarov
@DKarkarov 10 күн бұрын
But Acerola you forgot The Elder Scrolls 2: Daggerfall! Your advert this time has convinced me you need to do your own skillshare course, on how to give a cat a belly rub. Thanks for another banger video Mr. Rola!
@gumballegal
@gumballegal 10 күн бұрын
Shortening Acerola to Mr. Rola is such a unfortunate thing in Portuguese
@ibrahimkuyumcu2649
@ibrahimkuyumcu2649 9 күн бұрын
He's a foo.
@dan202v9
@dan202v9 8 күн бұрын
@@gumballegal hehehehe pinto
@jktech2117
@jktech2117 7 күн бұрын
TES df is semi-procedural. the world above is procedural and they selected the structures that would be in the world from lots of trial and error generations (specially towns). the only thing truly procedural in the game are the non-quest dungeons. TES arena on the other hand is almost fully procedural, so much so there are even a sort of farlands there where tiles turns into complete random ones when you reach there. im making a procedural game that is inspired on TES arena.
@DKarkarov
@DKarkarov 7 күн бұрын
​@jktech2117 so it is important to note I was mostly just playing off Acerolas own joke. That said, the vast majority of daggerfall is procedurally generated. Every town that is not required for the story is procedural. They just generated a series of towns they "liked" and only allowed the final version to pick from a limited set of "approved" maps that were procedurally created. The reason a side dungeon in that game can have insane layouts, rooms you can't even enter, and have quest objectives spawned into said un reachable rooms is because it is all procedural. Even the world map was just the procedurally generated seed they liked the most. If it isn't directly tied to the main plot, it was procedural. And 98+% of that games content has nothing to do with the main story.
@ByteNekos
@ByteNekos 10 күн бұрын
5:36 NOOO HE SAID THE LINE
@fizzipop
@fizzipop 10 күн бұрын
the brainrot is setting in 😔
@xXMangoXx_
@xXMangoXx_ 10 күн бұрын
I audibly laughed out loud thank you
@sirsamiboi
@sirsamiboi 9 күн бұрын
I audibly went "NOOOOO" 😭🙏🗣️‼️🔥
@ByteNekos
@ByteNekos 9 күн бұрын
@@sirsamiboi sameeeee 😭😭😭😭😭😭
@H_Is_A_Letter_That_Is_Cool
@H_Is_A_Letter_That_Is_Cool 3 күн бұрын
add that to the list of phrases that have been just destroyed
@angryybot6367
@angryybot6367 10 күн бұрын
That Terraria analogy is fun because there is a "secret" seed that makes you spawn in the underworld
@SolunaStarlight
@SolunaStarlight 10 күн бұрын
oh there's more than one lol
@ToyokaX
@ToyokaX 9 күн бұрын
There's a seed that combines multiple other ridiculous seeds too.
@killer13iii
@killer13iii 10 күн бұрын
As a programmer who wanted to make games but ended up working on document management software, I realy enjoy you content and the free knowledge.
@gagaxueguzheng
@gagaxueguzheng 10 күн бұрын
As far as I've heard, game dev can be pretty horrible because of the workload and stress. The good thing is that if you don't make your hobby to your job is that you can keep your hobby.
@thezipcreator
@thezipcreator 10 күн бұрын
@@gagaxueguzheng I think that really depends on the studio; smaller indie studios tend to have that problem less than big AAA ones.
@killer13iii
@killer13iii 10 күн бұрын
I understood the AAA studios problem when I applied for a one long time ago, that's why I ended up where I am. Programming games is way cooler though.
@theRPGmaster
@theRPGmaster 8 күн бұрын
Very similar situation here. I'm still pursuing my goal of making games, but industrial software pays the bills.
@HuneeBruh
@HuneeBruh 3 күн бұрын
@@thezipcreatorthat’s what happens when you make games for profit and not for fun
@andythedishwasher1117
@andythedishwasher1117 10 күн бұрын
Hey man, web developers are jealous of you for having time to play with these things. Not our fault web requests are polluted with a billion terrible frameworks. Actually wait, yeah it is. Well it wasn't my idea is what I'm saying.
@seapickels9087
@seapickels9087 10 күн бұрын
2:45 "tame the chaos of your ball hair with todays sponsor, manscaped"
@_cruentus
@_cruentus 9 күн бұрын
11:48 as a web developer: As long as its using tailwind 4, the newest version of react in astro islands deployed to vercel edge written exclusively by chatgpt o1-preview, yea 400 ms is probably ok
@UnknownUser-wf5kr
@UnknownUser-wf5kr 2 күн бұрын
fachchinesisch
@Squirrelsquid
@Squirrelsquid 7 күн бұрын
But, Acerola, I can't believe I watched the whole sponsored segment. The cat petting was enticing. No idea what was advertised, but I need to pet my cats now.
@I.____.....__...__
@I.____.....__...__ 10 күн бұрын
1:05 "Why use procedural-generation that isn't random?" - Ask farbrausch about _.kkrieger,_ a 96KB UE3-style FPS. 😒
@SianaGearz
@SianaGearz 8 күн бұрын
Actually even the presented example Minecraft is deterministic by design except the very first step, seed generation. A given seed and a given version of the generator is always supposed to generate the same world.
@gerphunkle5881
@gerphunkle5881 10 күн бұрын
“Chaos Control” This is gonna be a good one.
@strangebird5974
@strangebird5974 6 күн бұрын
Ok, so this was a bait and switch. I, like many others, probably clicked this video because I and we were interested in an argument about procedural generation. We didn't really get one that went beyond very surface level. I guess you acknowledge this at the end, so, ok. The programming talk was probably interesting, but I was a little checked out, waiting for the video to return to the topic at hand. A little in vain. (Though, sure, the programming stuff sounded interesting, so I'll bookmark that for later, I guess.) (I probably won't.) But the topic of the video and your brief foray into a criticism of procedural generation and the subsequent work trying to tackle procedural generation, as you construed it, made me think of a distinction that I think would be interesting - interesting in regards to what I was mislead to believe was the topic of this video, not so interesting perhaps in regard to this video's actual topic (I dunno, something about algorithms for particle boundaries, something something): That is, you show Dwarf Fortress along a lot of other video game titles. But Dwarf Fortress utilizes a key difference in its procedural generation that distinguishes it from the other titles, as far as I know; and distinguishes it from your particle example, I think. Namely, DF uses a stepwise or iterative procedural generation where the initial random output is then acted upon by a set of rules that align with something we could find comprehensible, namely the history of the world plays out; this results in the randomness we encounter having an actual history and backstory in the game. This would be like if Minecraft, instead of procedurally generating the end result of a world randomly, procedurally generated millions of years of tectonic activity. You might say that this is just procedural generation with extra steps (literally!), but yes, that's what distinguishes it - because that's what makes procedural generation bad in the outset - that it lacks history and thus meaning (or rather comprehensibility) (and ok, authorial intent, I'll grant that). But in an iterative generational process like this, you are more likely (I think?) to end up with unique flukes in the world - whereas most procedurally generated content is all rather same-y. Think of the geology of Earth: you might think that everything sort of exists everywhere in terms of geology; but that's not the case. Earth's geology abounds in rare and unique biomes, where the history of things happening in a geological timeframe came together just in the right way to create something marvellous. So, I guess this long-winded comment is my qualified "yes" to procedurally generated content - if we take a cue from Dwarf Fortress and do it right. And also, that was a clever way to make us watch the ad. Not that I was watching the ad or listening to it much.
@bagodrago
@bagodrago 5 күн бұрын
Me once again realizing Acerola tricked me into listening to another programming fundamentals lecture unrelated to the premise of the video
@bagodrago
@bagodrago 5 күн бұрын
kzbin.info/www/bejne/Z3fLgKKtiNpll9E
@marcozanella9850
@marcozanella9850 10 күн бұрын
9:20 Perhaps I'm too optimistic, but I think you are looking for is collecting semantics. If you start from the initial axis aligned bounding box, apply the first transformation to it (rather than to the points), evaluate the result, apply the second transformation, apply a widening operator to its output and the first result to get a bounding box big enough to accomodate both (that's the collecting part) and repeat for all the transformation, you should get the minimum sound AABB. If you know the transformations in advance, but not the order in which they are applied, it's a bit more involved and you may need to play around with widening and narrowing operators, but still doable, especially because this procedure can be done "at compile time" instead of "at runtime".
@___echo___
@___echo___ 10 күн бұрын
but acerola
@Mikolaj.Michon
@Mikolaj.Michon 10 күн бұрын
its so hard to grasp how insanely fast GPUs actually are
@Mukna132
@Mukna132 10 күн бұрын
To be fair, each gpu thread is actually very slow in comparison to a cpu thread. It just has much more throughput than a cpu that gives it its 'speed'
@lukajk
@lukajk 10 күн бұрын
*at certain things
@pacifico4999
@pacifico4999 9 күн бұрын
To be fair he used an absolutely terrible algorithm on the CPU
@neopalm2050
@neopalm2050 9 күн бұрын
9:21 by chance, I've actually worked on this before. I can't give you the minimum, but I can give you a relatively okay enclosing region. The largest translation has sone length l, and each scale factor scales by a factor of r at most, with r < 1, so a geometric series can give that the absolute farthest that you can get from the origin is l/(1-r). It's possible that this sphere is too large, but it will definitely not be too small. I was working with 2D rep-2-tiles though, so I didn't need to worry about it being too big, and this was plenty.
@NotKnafo
@NotKnafo 5 күн бұрын
i was pissed at your criticism at first glance after watching the video im only pissed for being click baited
@HinojoGaming
@HinojoGaming 10 күн бұрын
I got clickbaited into learning and I loved it
@AlanStryman
@AlanStryman 10 күн бұрын
But Acerola,
@laeianimation
@laeianimation 10 күн бұрын
On another note, I just started to watch Kizumonogatari and I thought to myself: "where have I seen this editing style before?"... now it all comes together!
@NostraDavid2
@NostraDavid2 10 күн бұрын
Wave Function Collapse is (IMO) the king of procedural generation, but only for 2D. For 3D you need to dig into Grammers for procedural general. I know a guy called Paul has been working on that. He also did Model Synthesis, the predecessor of what is now Wave Function Collapse.
@gege0298
@gege0298 10 күн бұрын
i wouldnt call it "The King" but it's defo a really neat tool. there was a neat paper about "nested" wfc for content generation, you'd make a high level mask of the expected level structure and use wfc to build the specific areas. also some real interesting autoencoder approaches where the machine learns to "intuit" what vectors describe interesting/feasible levels
@jakubstaniszewski304
@jakubstaniszewski304 10 күн бұрын
Could you share a name of the paper with autoencoder? ​@@gege0298
@mtarek2005
@mtarek2005 9 күн бұрын
Minecraft does have both 3d and 2d generation, including the 2d surface biome map, the 2d heightmap, the 3d cave carving, ores and 3d cave and nether biomes, 2d and 3d feature placement depending on surface or cave/nether features
@bloodgoa139
@bloodgoa139 9 күн бұрын
It really depends on the problem you're trying to solve. WFC wouldn't work for minecraft while fractal noise wouldn't work for townscaper (which does use 3D WFC btw!). Also depending on the use-case, it can be quite hard to keep WFC from generating undesirable outputs.
@RAFMnBgaming
@RAFMnBgaming 8 күн бұрын
@@mtarek2005 I think how minecraft jigsaw structures work is WFC-adjacent
@bahamutbbob
@bahamutbbob 8 күн бұрын
8:20 My favorite part of this is when you can see a modern game drawing in the void when you turn the camera.
@butlazgazempropan-butan11k87
@butlazgazempropan-butan11k87 10 күн бұрын
0:20 There's no Rock and Stone, so you wont be coming home
@Ikedude8
@Ikedude8 9 күн бұрын
Having worked on something similar, a couple of thoughts: 1. You can use subgroup min/max to avoid having to use groupshared memory (and the associated barriers). I found this to be a big speedup specifically on an iGPU. With Vulkan you can use specialization constants to make the local size match the subgroup size (or just hardcode it to 32 for Nvidia hardware 🤷‍♂) 2. Each thread can load more than one number (say ~8) and do a sequential min before you do the subgroup min. The overhead of launching each group means it can be more efficient to do more work per group with less groups. 3. You can do it all in one dispatch by taking the subgroup min and then using atomic min/max. You'd need to play with the "values reduced per thread" to get the most benefit here since contention on a single global could be slower but it really depends on how atomics are supported on the particular hardware. 4. Why not combine the rough simplified point generation and extent calculation into one pass? If you're not using the points otherwise you can avoid a bunch of memory traffic by never writing them out and just having each thread generate some points while keeping track of the min/max, subgroup min/max, and then atomic min/max.
@WeedL0ver
@WeedL0ver 10 күн бұрын
5:35 is a copyright infringement
@Redman9910
@Redman9910 10 күн бұрын
Good, I don't like IP.
@GODofTimewaste2
@GODofTimewaste2 9 күн бұрын
I'm out of the loop; please elaborate.
@WeedL0ver
@WeedL0ver 4 күн бұрын
@@GODofTimewaste2 look up "Thick of it-KSI"
@UnknownUser-wf5kr
@UnknownUser-wf5kr 2 күн бұрын
Thick Of It is the hit song by KSI
@Redman9910
@Redman9910 2 күн бұрын
@@UnknownUser-wf5kr Ah... Now I get it. Still don't like IP tho.
@RoyalArthurio
@RoyalArthurio 7 күн бұрын
Thanks for the video and this is great but when procedurally generating infinite worlds on a grid you need to think outside-in, not inside-out. Which coincidentally is exactly what minecraft does. It generates the large picture first and then refines the details. So essentially if you have an entity that spans multiple grid nodes (chunks) you don't generate the entity first and then figure out the bounding box. You generate the "bounding box" first and then subdivide that to generate the details of the entity. So when you start your generation from any random grid node you end up with the same result for each node. Then you don't have to confine your entities to the bounds of a single grid node. You can generate the bounds and shapes of your entities and features on an abstract level and then it doesn't matter which direction you approach them from. For example minecraft will make the same mountain and the same underground dungeon regardless of whether you approach it (and generate it) from north or south. For this to work the algorithms need to be completely deterministic. There's no real randomness at all. It's all deterministic pseudo random based on input parameters including a seed. The seed determines the variant and the pseudo randomness branching off from that (and other input parameters) creates the chaotic complexity. Jitteriness implies either non psedo randomness or a time dimension / input parameter. This is incompatible with procedural generation. You either need to at least be able to generate an initial state deterministically. If you bring a time parameter into the generation logic then you need to regenerate or mutate everything that has already been generated accordingly in real time to stay in sync with any new chunks to be generated so they can match up. Not impossible but many things considered static and final without a time dimension become dynamic and require additional logic to reconcile when mutating especially if the generation logic can interact with player made changes.
@domdru2967
@domdru2967 10 күн бұрын
Since you don't need a precise solution, you could get away using probability. Take N random particles, calculate min/max bounds for them. This is similar to what you did, but you could get away with way less points using probability. Calculate average X,Y and Z distances between them and expand your box by that average up and down. If you really want to avoid clipping, scale that average by a %. I don't remember the name of this method, but I've read about it and usually use it to calculate min/max for height maps. I usually get away with about 10-100 points. Your data is probably a bit more complicated but i bet you could get away with about a 1000 random particles.
@gogauze
@gogauze 10 күн бұрын
This is one of the 3 places I was going to start for an analytical solution. Especially because, if one does exist, it might just fall out of looking at iterations of each equation at extreme ends of the solution spectrum.
@orfeasliossatos
@orfeasliossatos 10 күн бұрын
(edit, I misread the original poster) This is precisely an unbiased statistical estimator of the maximum of uniform random variables! Also, the solution to the German Tank Problem. (previous comment, true but irrelevant to OP's comment) I wanted to bounce off this answer with a quick theoretical justification about using the average here. Markov's inequality says that the probability of a positive random variable being K times larger than its expectation is less than 1 over K. So if you model the distance from the origin as a random variable whose distribution matches that of the current state of the fractal, and you want less than 1% of the particles to be outside the box, then make the box K=100 times larger than an (estimated) average distance from the origin. But actually Markov's inequality is relatively conservative so you're probably be fine with much smaller values of K. An alternative way of doing this could to directly use a statistical estimator of the maximum. Numberphile has a video titled "The clever way to count tanks" that gives a fun introduction ot the topic.
@domdru2967
@domdru2967 10 күн бұрын
@@orfeasliossatos German Tank Problem! That's where I learnt it. Been using it for years and completely forgot how I know about it. Now I remember counting tanks in school. To add one more thing. You are right saying this is for uniform random variables. That's why I would probably scale the bounding box by more than an average to be safe. Those shapes don't look exactly uniform.
@theultimateevil3430
@theultimateevil3430 10 күн бұрын
Procedural generation that affects the gameplay (e.g. Minecraft map) goes hand in hand with gameplay features that are specifically there to mitigate bad random outcomes. You can place & remove blocks in Minecraft, build and dig walls in Rimworld, fill lakes in Factorio, etc. which greatly improves the experience in sandbox-type games. That's what bothered me in Satisfactory -- its map is not procedural, and the game does not allow you to modify it, punishing you for picking a wrong place for your factory each time, constraining the space when you scale it, etc. -- as a result, the game felt like garbage. The only solution in Satisfactory was to build the factory up in the sky since there is no terrain here. Procedural generation has started as "algorithms generating the content", but there is much more to it from the game design standpoint.
@mnxs
@mnxs 10 күн бұрын
> "the game felt like garbage" Tbh, this just sounds like cope for your skill issues. (Yes, I said that. If you want to dish out harsh and unreasonable criticism, expect to get pushback.) Satisfactory is happy to give you either option of placement - either you can work with the terrain (which requires planning and having developed some skill in laying out factories), or just build atop/around it. There's no gameplay downside to choosing the latter, only possibly aesthetics and your sense of "realism". In other words, you're getting your panties in a bunch over something insubstantial. Chill out.
@b_dawg_17
@b_dawg_17 10 күн бұрын
@@mnxs I was gonna comment here… but I think you got this one covered lol
@theultimateevil3430
@theultimateevil3430 10 күн бұрын
@@mnxs This limitation serves no purpose and doesn't enhance gameplay in any way, and could've been avoided if they went with procedural, saw how the said limitation affects the gameplay in general cases and not in some niche situations, and added some workarounds that could have improved the game even in places where there are no such problems. Minor inconveniences build up after you sink in a few hundreds of hours, but they are generally ignored before that, both by players and the devs, because no dev can preemptively fix that without playing their own game for hundreds of hours as well, even then they won't fix them because they get so used to those minor inconveniences during the development. That is also why any devs need playtests, to get a fresh look on the game. And then the deadlines and the limited resources deprioritize those fixes, just so the game could be released at all, this is clearly not a silver bullet that everyone should be doing. You've completely missed my point. Any game requires the players to accept its quirks and jankyness to be able to enjoy it. I'm talking about how the methodology of Procedural can change the perspective, not about how Satisfactory sucks ass because they dared to not add the terraforming.
@rumfordc
@rumfordc 10 күн бұрын
@@mnxs nah its an inferior game and your inability to recognize why the mechanics are inferior is your own skill issue, and your reply here was your own coping mechanism. every satisfactory base ends up becoming spaghetti in the sky because its simply a poorly designed game.
@harpoonlobotomy
@harpoonlobotomy 10 күн бұрын
​@@theultimateevil3430 "its map is not procedural, and the game does not allow you to modify it, (...) -- as a result, the game felt like garbage" kinda sounds like you think Satisfactory sucks ass because they didn't make it procedural with terraforming. Maybe they just wanted a fully authored game? The challenges are different, but I disagree that it's inherently worse. Because there is no terraforming you learn the map, with each new iteration you use the landscape more effectively because the limitations force you to. Because you know where resources are going to be, you can plan outposts, buildings and routes from the first foundation.
@RAFMnBgaming
@RAFMnBgaming 8 күн бұрын
My university final year project was mostly Procgen. I think the thing I learned the most from it was "if you can, just program the computer to take the steps you'd do to design something, noise sucks"
@DivjotSingh
@DivjotSingh 6 күн бұрын
The problem with Starfield was that it couldn't find the bounding box of boredom.
@rainboroad4075
@rainboroad4075 13 сағат бұрын
Starbound too, maybe games just shouldn’t start with “star”
@deadlydiva
@deadlydiva 10 күн бұрын
HAPPY BIRTH VIDEO
@LD-dt1sk
@LD-dt1sk 10 күн бұрын
U think a cat will make me watch an ad?
@sparkydoggo8691
@sparkydoggo8691 10 күн бұрын
new video already? i havent finished my 60th watch of the particle one yet
@moutondemocrate6874
@moutondemocrate6874 10 күн бұрын
STARBOUND MENTIONNED 🔥🔥🔥 I LOVE GAMES WITH INSANE POTENTIAL THAT GET RUINED BY THE GREED OF COMPANIES 🗣🗣🗣 💯💯💯 🦅🦅🦅
@Squish_Squash
@Squish_Squash 10 күн бұрын
BUT Acerola! I actually love how broken the procedural generation can get in Minecraft; had a server with some friends a few years ago and we set up beside this absolutely massive mountain that had gotten sliced into and the rest of the mountain overwritten by a plains biome (kind of like the screenshot at 2:56). It was incredible. Regardless, tho, I love how you tied in a new topic like procedural generation and parallel programming techniques to your own work and real examples, it's always so fun to watch
@Lebartuu
@Lebartuu 9 күн бұрын
3:37 my brain went i already watched it and have still no idea what you just said
@EmissaryofWind
@EmissaryofWind 9 күн бұрын
It's called a warp because on a loom, the warp is the group of threads that will be going down the entire length of your fabric. Early computers were inspired by the jacquard loom and its punch card system, it's so cool to see that inspiration carried on through the names of things
@gaker19sc
@gaker19sc 10 күн бұрын
8:45 but Acerola, shouldn't x=b/a, not a/b?
@Acerola_t
@Acerola_t 10 күн бұрын
yeah probably
@ianmclean9382
@ianmclean9382 5 күн бұрын
I came here to trash on procedural generators and came away with a free lesson on threaded programming and managing massive data sets
@yuu-kun3461
@yuu-kun3461 10 күн бұрын
But Acerola, if we have a thread checking for min of 2 numbers then writing that back to the local arrat... can't we just have it write the other number (which is the max) to a 2nd memory array? Would this save performance as we would dispatch half groups overall, but have double the local memory?
@tk36_real
@tk36_real 10 күн бұрын
exactly what I thought + since the video uses the "upper half" of threads just to load memory it all fits within the same buffer already used
@MiniTotent
@MiniTotent 10 күн бұрын
Check the second reference. It goes into further optimizations of parallel reduction. It’s using a really old GPU but was able to outperform this example. Some other articles note that your idea is right since this is memory bandwidth bound. The really funny part is that the cpu version meets the specs he needs (>150 fps) because of caching, block, and prefetch magic. Not to mention a mid range CPU can fit the whole array in L3 cache. If you aren’t really good at algorithms use an abstraction library or just try trusting the hardware engineers. They might have optimized for your case. The real fancy parallel reduction going on here is intelligently reducing the number of elements.
@Sergeeeek
@Sergeeeek 9 күн бұрын
You could also use wave intrinsics on modern gpus, then you don't even need group shared memory which is still kinda slow relatively speaking.
@onogrirwin
@onogrirwin 10 күн бұрын
I really love the idea of non-random procedural generation, for the purpose of saving disk space. Not something that has a place in modern game dev, but as a programmer it's super interesting.
@spacenorman8624
@spacenorman8624 10 күн бұрын
en.wikipedia.org/wiki/.kkrieger
@PaintsAreOp
@PaintsAreOp 8 күн бұрын
It actually is used in modern game dev. UI (especially ui animations), textures, 2d and 3d animations, splash screens are common places for non-random procedural generation. It's just then you're sacrificing rendering speed for disk space, but it allows you to do really cool things.
@PaintsAreOp
@PaintsAreOp 8 күн бұрын
@@spacenorman8624 That game is a 20 years old tech demo where they sacrificed gameplay for nice graphics and small space. It is almost as far away from modern game dev as possible :D
@archiemcw
@archiemcw 10 күн бұрын
dinner video time omg
@Acerola_t
@Acerola_t 10 күн бұрын
hi archie
@archiemcw
@archiemcw 10 күн бұрын
@@Acerola_t hiiiiii banger video goat
@73bugs21
@73bugs21 8 күн бұрын
cat starts at 4:35
@megamaz108
@megamaz108 5 күн бұрын
"The problem with procedural generation" _goes on a tangent about how to keep a particle system within a bounding box for half the video_ (good video though)
@Acerola_t
@Acerola_t 5 күн бұрын
the particle system is procedurally generated oh my godddddd
@fascialrufaie
@fascialrufaie 3 күн бұрын
@@Acerola_t But Acerola, God doesn't exist
@maimaiuwu9963
@maimaiuwu9963 6 күн бұрын
So this whole video is a non-sequitur, got it. The lack of a true thesis is incredibly disappointing as well as the fact that no solutions or ideas were brought up to fix the concept that you think "sucks".
@すべてに興味を失う
@すべてに興味を失う 10 күн бұрын
0:22 You forgot to mention the greatest game of all time, *Summertime High School: A Young Man's Notes-How a New Exchange Student Like Myself Ran Into His Childhood Friend on the School Tour, Then, for Some Reason, Became Super-Popular with the Girls for His Daily Scoops on the School Photography Club Even Though He Only Takes Panty Shots, and What He Thinks as He Goes on Dates During His Summer of Island School Life.* How could you not mention *Summertime High School: A Young Man's Notes-How a New Exchange Student Like Myself Ran Into His Childhood Friend on the School Tour, Then, for Some Reason, Became Super-Popular with the Girls for His Daily Scoops on the School Photography Club Even Though He Only Takes Panty Shots, and What He Thinks as He Goes on Dates During His Summer of Island School Life!!!* (yes it's a real game)
@obsidianflight8065
@obsidianflight8065 10 күн бұрын
I know you said it's real but I want to check if it's real but I also don't want that monstrosity in my search history...
@すべてに興味を失う
@すべてに興味を失う 10 күн бұрын
@@obsidianflight8065 The game's name is quite the joke in itself! The game in question is *Natsuiro High School: Seishun Hakusho.* There are Let's Plays available on KZbin, but honestly... it might not be worth your time! Fun fact: urban legends suggest that Yandere Simulator’s creator may have drawn heavy inspiration (some might say borderline copying) from this game when designing its tropes and mechanics.
@すべてに興味を失う
@すべてに興味を失う 10 күн бұрын
@@obsidianflight8065 The game in question is *Natsuiro High School: Seishun Hakusho.* There are Let's Plays available on KZbin, but honestly... it might not be worth your time!
@pavolgocik8917
@pavolgocik8917 3 күн бұрын
I showed the video to my son and his first reaction was - why is Acerola still using a 1660?
@eliteengineer7340
@eliteengineer7340 10 күн бұрын
I watched your video TO AVOID linear algebra, not learn more of it , i hate you acerola...
@Acerola_t
@Acerola_t 10 күн бұрын
unfortunately if it's not linear algebra then it's vector calc which is kind of just also linear algebra
@eliteengineer7340
@eliteengineer7340 10 күн бұрын
@@Acerola_t i wish college was like one of your videos, jokes aside, you fo fantastic work
@thesenamesaretaken
@thesenamesaretaken 9 күн бұрын
astronaut meme with text "it's all linear algebra"
@-slasht
@-slasht 10 күн бұрын
Procedural generation is the opposite to lossless compression: When compressing (lossless) there is a minimum theoretical file size. It's obvious: if there was no minimum, you could compress to 0 (aka delete) and then get the info back perfectly. Compressing is to shorten a file while keeping the info in it intact. The file can never be shorter then the pure information in it. Procedural generation instead increases the size of a file without increasing the amount of information in it. Info humans come across in nature is never pure so we are used to it to a degree. I think that moderately diluted information can enhance a natural or even chaotic feel in a work while denser information will highlight artificiality or cleanliness. Highly diluted information might carefully be employed to highlight emptiness but at high risk of coming off as boring or generic. (Generated stuff turns out generic, more news at 5 duh)
@morais.online
@morais.online 10 күн бұрын
1:56 Missed opportunity to make a joke about Skygrid players basically doing this exact thing
@haph2087
@haph2087 10 күн бұрын
Yeah, I was thinking that too.
@whateverrandomnumber
@whateverrandomnumber 7 күн бұрын
6:30 i see several types of random buds.
@ich_esse_betten6364
@ich_esse_betten6364 12 сағат бұрын
This
@bits360wastaken
@bits360wastaken 10 күн бұрын
But Acerola you forgot Rogue!
@NostraDavid2
@NostraDavid2 10 күн бұрын
I've found that the programmers that play rogue are DEEP into procedural generation. Like, super duper deep. Wave Function Collapse is the tip of the iceberg deep.
@Kavukamari
@Kavukamari 10 күн бұрын
they should have called it Aligned Bounding Box (Axis), not only does this allow for other types of alignment like (Vector), but it also spells ABBA
@borisoid
@borisoid 7 күн бұрын
I love how you make videos "dark mode". Even if it means some pictures become white rectangles on black background, I much prefer this rather than being flashbanged in the middle of the night
@MissDarknSpooky
@MissDarknSpooky 4 күн бұрын
I didn't even notice until you mentioned it. Alas, I agree. I much prefer having eyesight. 😅
@sxs512
@sxs512 10 күн бұрын
but acerola this is just a disguised video about your fractals. This barely has anything to do with procedural generation...
@mootytootyfrooty
@mootytootyfrooty 10 күн бұрын
I don't procedure I just spaghetti
@insentia8424
@insentia8424 10 күн бұрын
8:25: Generally doesn't exist isn't quite correct. It's not even like it doesn't exist to the renderer, because it might still cast visible shadows. It's just invisible, nothing else. That being said, there are games where it doesn't exist to the renderer at all. And some, mostly old games, actually don't just stop the drawing, but also all logic update related stuff as well.
@NightmareCourtPictures
@NightmareCourtPictures 10 күн бұрын
I’m pretty sure camera culling doesn’t render anything outside of the camera and that one of the issues with that method is that objects that should cast shadow from just beyond the frustum don’t cast shadows and you need additional logic to solve that problem. Acerola I think even has a video that goes over this.
@insentia8424
@insentia8424 10 күн бұрын
@@NightmareCourtPictures Depends on the specific implementation. One way you can do it: You can use two cameras, the first one not being used by the player, that culls based on what shadows are visible in the player's view camera. The player's camera, culls anything is outside view. Since the graphics card does this, it can do both simultaneously. Afterwards you use one result to determine what to draw and the other result for which shadows to calculate. Though, depending on the complexity of your levels/scenes/whatever it might be quicker to merge the results and draw anything and calculate shadows for everything that wasn't culled by both operations.
@kenkoopa7903
@kenkoopa7903 10 күн бұрын
It's funny you mention Spelunky because it kinda doesn't do procedural generation? The levels are randomly generated, but they're assembled from artist-authored chunks with defined purposes and entrance/exit points.
@Acerola_t
@Acerola_t 10 күн бұрын
i mean, randomly generated assembled lego pieces is still proc gen
@Fokkusu
@Fokkusu 10 күн бұрын
@@Acerola_t you know this is funny, this means technically I'm using proc gen? unless I am mistaken, I have a level where there is a room with a door, when you press the button it has a random number generator in range, where each number is a set level with other doors that do the same, the idea is an infinite level that keeps expanding until your game crash (until I control this chaos lmao), so this is technically proc gen too? even though the rooms are authored levels done by hand
@b_dawg_17
@b_dawg_17 10 күн бұрын
I think those would just be the “constraints” of the model. [Minecraft worlds] are randomly generated, but they’re assembled from artist-authored [blocks] with defined purposes and [mechanics]
@mewtilation
@mewtilation 10 күн бұрын
i suddenly feel compelled to put the short-form particle content on this channel on loop on a separate monitor! thanks acerola
@petersmythe6462
@petersmythe6462 9 күн бұрын
The problem isn't just rare failures to generate. Like if 1% of seeds spawn me in the middle of the ocean I'm just rerolling those seeds. The problem is when it creates worlds that lack depth and structure. If I make a hundred Minecraft worlds and look for the nearest river. I will NOT get 99 that have sensible, hierarchically structured watershed basins that begin as small mountain streams and waterfalls and are always converging and never diverging, exiting into the ocean, and 1 freak of nature where the spawn looks like Lake Manicougan. Instead I'm gonna get 100 generations that only bear a superficial resemblance to a river in that they are linear bodies of water you can cross. Not even one of them will even pay lip service to the structure of a real river. At most you might get some funny procedural braided streams where multiple noise layers interact or something that looks generally tree-shaped by coincidence. Right, I'm not interested in fixing rare failures of world generation. What I'm interested in is fixing the fact that procedural worlds tend to look a lot like, well, different layers of perlin noise interacting.
@ilikeshiba
@ilikeshiba 8 күн бұрын
If you use layers of noise for terrain you can simulate the water to make it realistic. You probably need to simulate rain (water filling empty spaces) and erosion and many other factors over quite a few iterations but you will never get the structure you’re after by any other algorithm other than a simulation of what’s actually happening, even if the model is greatly simplified.
@bennettpalmer1741
@bennettpalmer1741 3 күн бұрын
I'd recommend looking into Dwarf Fortress's procedural generation - it is incredibly detailed, and does indeed run rivers from mountains towards the ocean. It also generates biomes based on temperature, average rainfall, elevation, etc. If you want to generate realistic worlds, it's genuinely incredibly impressive.
@de_soot
@de_soot 8 күн бұрын
just a nitpick but i think in 8:45 a and b should be the other way around
@TheRumpletiltskin
@TheRumpletiltskin 10 күн бұрын
YOU TRICKED ME INTO LEARNING AGAIN ACEROLA!
@BobzBlue
@BobzBlue 10 күн бұрын
"But ACE-" *Turns into a game of pong
@shbeebo1176
@shbeebo1176 10 күн бұрын
I love Acerollup (:
@fuecOHKO
@fuecOHKO 18 сағат бұрын
0:11 I have played (and enjoyed) literally every game he just mentioned. How is he reading my steam library??
@Xboy1207
@Xboy1207 10 күн бұрын
I love getting brainwashed by skillshare while watching the kitty cat 😊
@mateusvmv
@mateusvmv 10 күн бұрын
Work VS Depth Work is the amount of operations a processor does, depth is the amount of steps the processor follows. Power usage, temperature, algorithmic complexity, memory usage (methinks), they are determined by work. The time taken to get the result is determined by depth (the only thing that matters really lol). The GPU might do more work overall, but the depth is lower because it does more at once.
@HidinginPublic
@HidinginPublic 10 күн бұрын
ALREADY INCORPORATING METAPHOR MUSIC I SEE
@VioletRM
@VioletRM 6 күн бұрын
you can't just sprinkle omori music into the middle of your videos like that out of nowhere like youre not gonna make someone cry ;-;
@alexrainbow1882
@alexrainbow1882 10 күн бұрын
Ayooo Im here early. Maybe you'll read this: Keep up the good work, you inspired me to get a lot more bold with what I try to program! I'm having a lot of fun learning coding because you showed me I don't have to make a huge finished project, I can just work on something I find interesting. Your explanations are great too.
@-Zar-
@-Zar- 8 күн бұрын
I may or may not have liked the video before it started
@MacAlmighty
@MacAlmighty 10 күн бұрын
Wake up babe, new Acerola video dropped
@ruzgar1372
@ruzgar1372 10 күн бұрын
1:20 What's the game in the bottom right?
@DOROnoDORO
@DOROnoDORO 9 күн бұрын
silent hill 2 remake i think
@greycube9121
@greycube9121 10 күн бұрын
i am genuinely so upset that i will never get to meet acerola's cat
@cavemann_
@cavemann_ 10 күн бұрын
Me too fam.... me too...
@ValeBridges
@ValeBridges 10 күн бұрын
3:12 "... then we have to take it as an absolute certainty"
@ethanhermsey
@ethanhermsey 8 күн бұрын
The clickbait was unneccesary..
@Matches1st
@Matches1st 19 сағат бұрын
What are you on about
@realfries09
@realfries09 10 күн бұрын
Hey Acerola! Really appreciate the videos and the time you put into them! They always talk about some interesting topic, and get me interested in them! You explain everything concisely and well, and I wish you the best!
@maxniftynine
@maxniftynine 10 күн бұрын
Wait like MINECRAFT?!!?!?!??!?!?!!?!?!? 😃 😃 😃 😃 💀😿😭😭👴🏻
@saltedmutton7269
@saltedmutton7269 10 күн бұрын
no sorry that's something different
@augustday9483
@augustday9483 10 күн бұрын
What I expected from the title: a thesis on why procedural generation can lead to boring, samey gameplay due to lacking handcrafted content that was designed specifically to be maximally entertaining. What I got: a lecture on computer science and GPU programming. I'm not complaining, but this did not go where I expected it to go. 😄
@briananeuraysem3321
@briananeuraysem3321 10 күн бұрын
Under 30 second gang
@J05HY06
@J05HY06 10 күн бұрын
3 min gang defeating the "I'm first" kids
@rielco8442
@rielco8442 Күн бұрын
There is a analyticalmethod to guarantee a bounding box. Given a diagonalizable matrix A, a vector v and calling |•| the norm operator we have: |Av|
@taggerung_
@taggerung_ 10 күн бұрын
SPELUNKY AND TALES OF MAJ'EYAL MENTIONED!!!!!!!!! edit: also, unfortunately spelunky does not really use procedural generation (in my opinion) beyond hand made rooms that then get picked based on the generated layout of the level.
@Pringles1
@Pringles1 10 күн бұрын
Okay i was watching a bunch of videos what
@kerravon4159
@kerravon4159 4 күн бұрын
I dont think Procedural Generation is _inherently_ problematic. It all depends on what and how many constraints are applied to make the randomness enhance rather than detract from the game experience the Dev wants to deliver. This is where many procedurally generated games go wrong.
@gaafts
@gaafts 10 күн бұрын
A reduction can be used without fear on any operator which is associative. (a + b) + c = a + (b + c). They’re so versatile since most operators are associative, even stuff like matrix multiply. Thank you basedrola for the PSA.
@gdclemo
@gdclemo 10 күн бұрын
Floating point addition isn't associative though.
@andrewliu6592
@andrewliu6592 10 күн бұрын
@@gdclemo apparently if you recursively group floating point addition in such a way its error increases slower than if you just add it from front to back
@nemozinioux
@nemozinioux 9 күн бұрын
14:00 Me, a game designer with surface-level of programming knowledge: "I like your funny words, magic man!"
@deleted_handle
@deleted_handle 10 күн бұрын
0:15 wheree is minecraft??????
@GirlBoss69
@GirlBoss69 10 күн бұрын
Is literally in the thumbnail of the video...
@Lege19
@Lege19 10 күн бұрын
I think you can calculate the maximum and minimum in a single pass. If (in the first iteration only) each thread writes back both it’s values, then the maximum and minimum are guaranteed to be in the right halves. Now you can do the rest normally, but you get to use twice as many threads, because the first iteration didn’t reduce how many numbers there were. So you get to do the same amount of work using many more threads
How Are Games Rendering Fur?
28:51
Acerola
Рет қаралды 489 М.
I Made an Electronic Chessboard Without Turns
14:32
From Scratch
Рет қаралды 828 М.
Players push long pins through a cardboard box attempting to pop the balloon!
00:31
Правильный подход к детям
00:18
Beatrise
Рет қаралды 9 МЛН
Deadpool family by Tsuriki Show
00:12
Tsuriki Show
Рет қаралды 7 МЛН
The Most Valuable File Format You've Never Heard Of
15:33
Acerola
Рет қаралды 538 М.
Worst Time to Drink This
8:17
Daily Dose Of Internet
Рет қаралды 3,1 МЛН
Breaking the No.1 Rule in Solo Game Development | Devlog 0
13:26
It's Hard To Make Games
18:01
Acerola
Рет қаралды 282 М.
Syria, Israel, Ukraine - A New Decade of War
12:38
Kurzgesagt – In a Nutshell
Рет қаралды 1,7 МЛН
I Made a Wave Function Collapse Castle Generator in Godot
25:30
RachelfTech
Рет қаралды 66 М.
The Jellyfish Tier List
15:35
TierZoo
Рет қаралды 1 МЛН
Blender is Changing Animation Forever
11:11
Smeaf
Рет қаралды 171 М.
Players push long pins through a cardboard box attempting to pop the balloon!
00:31