Zero To Pong With Bevy
29:41
14 күн бұрын
Bevy Update 0.14 So much new stuff
40:42
I Did A Speedrun Of Bevy And I Sucked
10:08
Bevy OneShot Systems
11:20
3 ай бұрын
Bevy Basics: Bundles
13:10
8 ай бұрын
Physics in Bevy: What is Bevy Rapier
12:28
Bevy Basics States
15:08
Жыл бұрын
Bevy 0.10 to 0.11 Migration Guide
53:56
Bevy Basics SubApps
8:50
Жыл бұрын
Bevy Basics Control Flow
13:13
Жыл бұрын
Bevy Basics Timers
10:05
Жыл бұрын
How to make a view cube in #bevy
7:39
Herbal-Alchemy 1.4 Update
10:52
Жыл бұрын
Bevy Basics Time
8:45
Жыл бұрын
Bevy Jam Last Chance Got Vote
4:49
How Bevy FlyCam Works
12:08
Жыл бұрын
Пікірлер
@winebartender6653
@winebartender6653 5 күн бұрын
TBF a website/stock issue is what it is and happens everywhere. They contacted you and gave you your options, that's basically all you can expect from any company.
@jamesgphillips91
@jamesgphillips91 6 күн бұрын
I really love your content. I'm going to out myself for being a scrub... but can you please leave the code up just a little longer. There are a few transitions in this video where if you're coding along you have a split second to pause the video and see the code. Keep up the good work! I appreciate the thorough hands on break downs.
@PhaestusFox
@PhaestusFox 5 күн бұрын
Yeah I'll try leave completed code up longer, some of the fast cuts come from how I made the video, im cutting away before I start rambling on about something
@yourcringestepdad
@yourcringestepdad 7 күн бұрын
These are great, I'm really enjoying this project. You probably have realized this already, but the ball is spinning because the platform is moving at the instant of the collision. Because the engine gives both rigid bodies friction, the motion of the platform imparts a torque on the ball, causing it to spin. (By accident) I managed to hit the spinning ball so that on the next wall collision it stopped spinning and the motion became purely vertical, so the game would have to be manually reset. Adding Friction { coefficient: 0.0, combine_rule: CoefficientCombineRule::Min } to the ball fixed that.
@PhaestusFox
@PhaestusFox 7 күн бұрын
I did know about that, you can also apply a component that locks the rotation, it is probably a better since it allows the player to change direction to impart a vertical force to ball, I believe if you disable friction the ball will bounce off the same regardless if you are moving up or down, haven't tested this tho
@yourcringestepdad
@yourcringestepdad 7 күн бұрын
@@PhaestusFoxI tried locking the rotation first before I tried turning off friction but the behavior at wall collisions was strange.
@joelchelliah9529
@joelchelliah9529 9 күн бұрын
This is great! I started following the channel after your reddit post about the first Pong episode. Very educational! But I find the collision detection part here a little confusing 😅 I understand how the Player enum is used to decide which one of the borders the ball is colliding with, but if you wanted to detect collision between the ball and ANY border, how would you do that? How would you type you `goles` Query param? Or would you in that case not need to have `goles` as a param at all? I tested this with having no other if-checks inside `for hit in ball.iter()`, but then it seems to also detect the ball colliding with itself? 🤔
@PhaestusFox
@PhaestusFox 9 күн бұрын
I'm not sure what you are asking, my best guess is you would need to create a marker structure for the goals and check for a collision with an entity with that component, I know there is a better way but It would require setting up collider set so the ball only triggers events when Colliding with wall and not with paddle that sort of thing but I'm not 100% sure how you do that
@precumming
@precumming 9 күн бұрын
16:55 that's a little weird. So a coëfficient of restitution is not actually something that an object in the real world has, it's actually the relationship between 2 objects but obviously some objects are bouncier than others but the coëfficient is just the relationship between it and another object - the coëfficient might be 0.9 against a hard surface and 0.3 against something soft (or even it could be *functionally* 1.5 if mechanically pushed like in a pinball machine, it's not actually 1.5 nothing is 1.5 but if you were to have it in a game you'd use 1.5). However the way I've previously combined coëfficients is the geometric mean [sqrt(coefficient_1 * coefficient_2)], which is close to average when the numbers are closer 0.9 and 0.8 would be 0.849 compared to the average 0.85, but biased towards the low end when more different 0.9 and 0.1 would be 0.3 rather than 0.5 (additionally if a 0.9 ball bounces of a perfectly inelastic wall of 0 then the result is 0 because the wall is perfectly inelastic); so it's strange that they don't provide that as an option as it's not unusual (I'm not the first to do it this way). I tried to clone the project to add GeometricMean as an option but I can't get the dependencies to work as they're doing some kind of fuckery with them, I want GeometricMean as I know how that reacts and this is why I always end up just making my own stuff rather than relying on others. I can't find what `crate::math::Real` actually refers to for sure to know if I can just `.sqrt()` (I'm pretty sure it's just an f32 and so can) it and I can't just guess and give it to others. I don't know how people can contribute to OSS, I want to, but it always feels so punishing; once again resorting to just filing an issue - I have filed an issue so hopefully they'll add it, it's a very simple addition. However the game I have in mind I'm probably going to roll my own physics as it can be reduced down to just what I need.
@PhaestusFox
@PhaestusFox 9 күн бұрын
It can be hard to understand other peoples code, especially with open source where lots of different people contribute their ideas and styles. As for what crate::math::Real is, I believe f32 by default but can be switched to f64 with a feature, but it has been a while since I looked into it
@precumming
@precumming 9 күн бұрын
@@PhaestusFox I’ve created an issue and I’ll see if someone else will add it for me 🤭
@precumming
@precumming 10 күн бұрын
People have mentioned it being fast paced, in the future maybe include an unlisted video with nothing sped up. It shouldn’t require as much work although if you’re speeding up segments progressively while editing then it would require changing how you do it. Also people should generally watch a tutorial through once and then follow along, you want to know what the end result is, and so if you make the default longer then it's harder to watch it through first. This video has come at a perfect time for me as I last touched Bevy in 0.11 and I’m aware that a lot of things have changed. Thank you for this, the video is fine for me but I think only because I have a lot of Rust knowledge and prior Bevy knowledge
@dimvoly
@dimvoly 11 күн бұрын
Great tutorial!
@rodrigogil2452
@rodrigogil2452 12 күн бұрын
That was my PR, yayy! Nice. Love the content.
@Perspectologist
@Perspectologist 12 күн бұрын
Thanks for making this simple tutorial. It was a bit fast paced, so I used pause and rewind a fair bit as I typed the code. Fortunately I now have Rust and a little Bevy experience so it all made sense to me. This is a great starting point. I am interested in simplifying the hit test code, perhaps with the Bevy collision function.
@23lkjdfjsdlfj
@23lkjdfjsdlfj 12 күн бұрын
Love this!
@titotopdeck1332
@titotopdeck1332 12 күн бұрын
I like this format) would like to see more in this style
@dadlord689
@dadlord689 13 күн бұрын
Nothing like an event. Just a resource. Even a singleton to be clear. And you have to relay on the screen update rate + organize the systems execution so that it would read the event data in time. This is an anti-event at best ) I thought that I could connect systems to the event so it will run them once it will be broadcasted.
@PhaestusFox
@PhaestusFox 13 күн бұрын
I believe this was added in the 0.14 update that just released
@dadlord689
@dadlord689 13 күн бұрын
@@PhaestusFox I have found a way! Yes, Bevy looking awesome!
@mpwoz
@mpwoz 15 күн бұрын
Very helpful overview, thanks for making this video!
@tuskiomisham
@tuskiomisham 15 күн бұрын
I'm rather confused- why use bevy to track state? It's trivial to have an entity that tracks state.
@PhaestusFox
@PhaestusFox 15 күн бұрын
Because bevy has features that allow systems to run and not run based on what state it is in, and has done optimisation such as running these checks on the main thread to minimise overhead
@tuskiomisham
@tuskiomisham 14 күн бұрын
@@PhaestusFox hmm... maybe I need to learn a bit more- It seems like `if` statements may work just as well?
@PhaestusFox
@PhaestusFox 14 күн бұрын
If statements only work on a per system bases and can only be checked after a system is seceduled and started, run conditions can be applied to whole sets of systems and are evaluated before the overhead of generating tasks and scheduling, they can just be if statements but require some restrictions that bevy puts in place
@mrmaniac9905
@mrmaniac9905 15 күн бұрын
Please keep this tutorial going. Would love to see some card system with a nice hand visualization
@maxxxxiors
@maxxxxiors 18 күн бұрын
Bro please slower... I've never touched Bevy or Rust in my life, and you're rushing as hell ;-; to much speeding up
@PhaestusFox
@PhaestusFox 17 күн бұрын
I tried to only speed up when I was typing, the hope being if you are following along you don't get lost from a cut to everything being typed out but if your not following along you don't have to wait a long time for me to type things out
@nicolaastanghe475
@nicolaastanghe475 16 күн бұрын
there is a play speed you can make it go slower.
@dakunskye
@dakunskye 15 күн бұрын
Additional you don't want to dive in with Bevy before understanding some Rust first. It's a different beast and Bevy heavily uses Rust specific concepts to do its jobs.
@maxxxxiors
@maxxxxiors 15 күн бұрын
@@dakunskye good to know! thanks!
@4115steve
@4115steve 19 күн бұрын
Thanks for making this game for beginners, there's not many videos like this for beginners on youtube. Very helpful, thanks again
@HNazmulHassan
@HNazmulHassan 19 күн бұрын
Which Operating System is Best for Rust ? linux or Windows ?
@0xD21F
@0xD21F 19 күн бұрын
Whichever you prefer.
@PhaestusFox
@PhaestusFox 19 күн бұрын
Personally I think windows is easier to find help for but it really is personal preference with rust, I know of few if any differences between the two when it comes to rust.
@hackyeff8164
@hackyeff8164 19 күн бұрын
Cannot talk for Windows, but under Linux Rust is pretty frictionless; it just works. Never had any issues.
@PhaestusFox
@PhaestusFox 19 күн бұрын
@hackyeff8164 yeah got to say 90% of the friction I find is me trying to do something I shouldn't be and 10% is a bug in my code the compiler is telling me about but I'm too annoyed to read the error messages properly 😅 I do find it funny how much of my issues with rust come down to me doing the wrong thing in the end
@hackyeff8164
@hackyeff8164 19 күн бұрын
@@PhaestusFox oh my, and there is no other programming language with such nice and readable error messages. but yeah, I am also very good at ignoring error messages. :)
@RobertoMaurizzi
@RobertoMaurizzi 19 күн бұрын
LOL, I always thought you had to install Visual Studio to have libraries and a linker for Rust on Windows (I already had it installed when I first installed Rust)
@PhaestusFox
@PhaestusFox 19 күн бұрын
You do but the rust installer detects you don't have it and installs it all for you, got to love how polished rusts tools are
@RobertoMaurizzi
@RobertoMaurizzi 12 күн бұрын
I found myself installing Rust on a new Windows laptop and yeah... Either you install Visual Studio tools or you have to pick x86_64-pc-windows-gnu then install something that gives you dlltool.exe (in my case I installed mingw C/C++ compiler) 😅
@sirhc8927
@sirhc8927 20 күн бұрын
Can you do a separate video for 2d and features that are agnostic?
@PhaestusFox
@PhaestusFox 20 күн бұрын
I can have a look but I think I would rather do full videos about specific parts rather then larger videos covering groups like that
@ChristianSasso
@ChristianSasso 20 күн бұрын
Great video! Plus, a gentle reminder to do chapters :-)
@PhaestusFox
@PhaestusFox 20 күн бұрын
Chapters all done 🤪
@lazi21
@lazi21 21 күн бұрын
now you have to do this again for version 0.14 :D
@PhaestusFox
@PhaestusFox 20 күн бұрын
Yeah 😂 don't know if there will be a big improvement 0.14 seemed to be a lot of expanding features rather then optimisation
@thiagogoncalves4322
@thiagogoncalves4322 24 күн бұрын
old
@weltraumaffex
@weltraumaffex Ай бұрын
Did you compare the release versions? I think comparing debug versions can lead to incorrect results. Just because one debug version is faster than the other does not necessarily mean the same is true for the release version.
@PhaestusFox
@PhaestusFox Ай бұрын
I did compare the release versions and it gets about the same results, the main reason for not going with them is huge numbers getting bigger don't feel as impactful but also because I was using something thing that grew exponentially meant that between versions would double entity counts but going from 10 to 20 is more impressive then going from 110 to 120 even though they both represent a double in entity's required (just example numbers to make it easier to understand)
@miniminerx
@miniminerx Ай бұрын
Bevy has been amazing. It works great with robotics too
@anonymousacid9160
@anonymousacid9160 Ай бұрын
bevy 0.13 in debug: ~22k entities at 27fps with 86 rings. bevy 0.13 release: ~263k entities at ~25 fps with 296 rings.. Specs: CPU: Intel(R) Core(TM) i5-8400 @ 2.8GHz, 6 cores GPU: Intel(R) UHD Graphics 630 (integrated) 12 GB ram (idk if this matters that much) this is crazy.
@PhaestusFox
@PhaestusFox Ай бұрын
Nice, good to know it's good on integrated GPUs too
@tannaurus
@tannaurus Ай бұрын
This made me want to give bevy another shot :) nice work 👍
@RogerValor
@RogerValor Ай бұрын
Cool showcase, however, I felt a bit lost as I asked myself all the video what a Ring supposed to be, as you showed a hexagonal procedurally generated map :D
@PhaestusFox
@PhaestusFox Ай бұрын
Oh yeah sorry should have explained that better, the map is made of concentric "rings" of hexagons, so the number of hexagons in the map is 1 + 3 * ring * (rings + 1).
@jeffg4686
@jeffg4686 3 күн бұрын
@@PhaestusFox - would be interesting to see this same test run for 0.14. Great to see the amazing progress. They're really kicking ass.
@alternativepotato
@alternativepotato Ай бұрын
Cool right
@PhaestusFox
@PhaestusFox Ай бұрын
Yeah I love that bevy just keeps getting faster, means it's worth going back and trying things that were too slow when I first tried them
@publicalias8172
@publicalias8172 2 ай бұрын
What's the red inline stuff you have going? 7:50 I know it's not copilot (grey) and my rust-analyzer is only in the console..
@PhaestusFox
@PhaestusFox 2 ай бұрын
I think it's called error lens
@thygrrr
@thygrrr 2 ай бұрын
Thanks for mentioning sparse sets, I maintain a C# ECS called fennecs, and i am always on the lookout for better data structures for certain archetypes. I do think that I already use a sparse set-like structure as the "Meta"-Table for my entities, but I had not yet considered using it as the backing datatype for the storages that comprise each archetype. I'm not sure it's suitable. :)
@georginanixon5310
@georginanixon5310 2 ай бұрын
Hi
@PhaestusFox
@PhaestusFox 2 ай бұрын
Hello 👋
@RAD_DAD_2077
@RAD_DAD_2077 2 ай бұрын
ILOVEyou
@studiohoppevideos4562
@studiohoppevideos4562 2 ай бұрын
How to do that you can interact with an asset.
@PhaestusFox
@PhaestusFox 2 ай бұрын
You need to access the assets resource inorder to edit an asset
@jester9947
@jester9947 2 ай бұрын
Nice work my man!
@HW_Printing
@HW_Printing 2 ай бұрын
oh my fucking god thats a bigggggg octopus
@PhaestusFox
@PhaestusFox 2 ай бұрын
Indeed it is, can't wait to start making the legs
@justanothercomment416
@justanothercomment416 2 ай бұрын
As a rule you don't need a heated box to print PETG. ABS, yes. But not PETG.
@PhaestusFox
@PhaestusFox 2 ай бұрын
Right, I haven't had much experience with Petg but the few times I have used it, it wasn't much fun even with a heated boc
@justanothercomment416
@justanothercomment416 2 ай бұрын
@@PhaestusFox Once you get the hang of it it prints reasonably close to PLA. You can't have an A/C vent on it or anything. But so long as you have good bed adhesion and your bed temp/profile is right it should print pretty well. Definitely is harder to get dialed in. Ooze frequently becomes the largest complaint. Most slicers have good PETG profiles these days. Hairspray is still frequently used with PETG. Especially if your bed is glass. PETG can damage glass if printed without a barrier. PETG is a great material for structural, UV, outdoor, and chemical exposed prints. Good luck.
@PhaestusFox
@PhaestusFox 2 ай бұрын
Fair, I have heard it is much stronger then PLA but it just had such issues with it I would rather avoid it unless I need the strength, but maybe when I have the parts to fix my k1 I'll try dile it in
@minutesock9649
@minutesock9649 2 ай бұрын
I'm watching this video 9 months after upload and belly still does not have a crate. I'm perplexed why such a feature rich library isn't available as a crate from cargo? Is it complicated to create a crate? Surely it's much easier than what jkb0o as accomplished with belly! I hope that one day belly will be adopted as the official method to create ui in bevy and become a part of the engine.
@PhaestusFox
@PhaestusFox 2 ай бұрын
Sadly the creator has decided to stop developing belly, I think the reason it never made it to crates was because some people like to have it finished before publishing it
@CorneliusCornbread
@CorneliusCornbread 2 ай бұрын
Insanely helpful, especially the linked videos. It's one thing to do all the math for vectors and matricies in school, it's another thing entirely to apply it to something real.
@arcanephysics7384
@arcanephysics7384 2 ай бұрын
I've been getting into game dev with Bevy recently, and I think this would be great for making a Minecraft-like registry system for items and whatever else. I think its be neat for registered content to provide their own callback systems, which run under different circumstances (like items getting used).
@PhaestusFox
@PhaestusFox 2 ай бұрын
Oh yeah neat, wouldn't have thought to use if for something like that but makes sense