Learn Bevy 0.11 By Making a Game! (part 1)

  Рет қаралды 42,746

Logic Projects

Logic Projects

Күн бұрын

Welcome to my new introductory series for the Bevy game engine! In this series we will create an entire real game from scratch using Bevy 0.11.
Discord Invite: / discord
Patreon: / logicprojects
Github: github.com/mwbryant/logic_far...
Chapters:
0:00 Intro
2:06 Project Setup
3:43 First Window
4:40 First System
7:12 First Sprite
7:40 Loading an Image
9:21 Pixel Filtering
10:08 Character Movement
12:24 Recap/Outro

Пікірлер: 89
@Otakutaru
@Otakutaru Жыл бұрын
Immense thanks for keeping it up with bevy's nurture phase. I'm glad you treat your video series independently, starting from the ground up and improving the fomula every step of the way. It could be easier for you to defer us to a video you made a year ago, but instead you explain it better than ever, again, and again. That is commitment and I'm sure you're extremely proud of it
@logicprojects
@logicprojects Жыл бұрын
Thank you! One of the appealing parts of bevy has been that I can grow with it and keep improving on my videos each version
@vividoo
@vividoo 5 ай бұрын
Any confused about why you're getting an error for the 'Input' resource. In Bevy 0.13, the Input resource was renamed to `ButtonInput`. Additionally, instead of the KeyCode being `KeyCode::W` it is now `KeyCode::KeyW`
@thebluebriefs
@thebluebriefs 4 ай бұрын
came here to write this, thanks!
@indierusty
@indierusty Жыл бұрын
Just wanted something like this to learn Bevy. Keep it as beginner friendly as this one. Thanks a lot.❤
@jackerywebster5864
@jackerywebster5864 Жыл бұрын
I always get so excited when I see a new logic projects post
@phyyl
@phyyl Жыл бұрын
perfect speed! keep it up, looking forward to the next parts.
@tenthlegionstudios1343
@tenthlegionstudios1343 Жыл бұрын
Very excited for this series. Thanks!
@liamhamilton2719
@liamhamilton2719 Жыл бұрын
I just started my own farming game in Bevy and suddenly this pops up! Can't get enough of your videos 👍
@RSchenal
@RSchenal Жыл бұрын
Just in time! I started making a new game and your tutorials will help a lot!
@Perspectologist
@Perspectologist Жыл бұрын
I finally got started with Bevy! Thanks for making this tutorial. I’m looking forward to the next video.
@funnyusername966
@funnyusername966 Жыл бұрын
i cant even express how hyped i am for this. i just finished coding for tonight in bevy , your series thought me so much. keep going and make more! p.s i would really enjoy a series about making a first person shooter in bevy
@jacques-dev
@jacques-dev Жыл бұрын
Awesome! I am very excited for this series, I can't wait to see the next video :) All the best!
@logicprojects
@logicprojects Жыл бұрын
Thank you so much!
@reandov
@reandov Жыл бұрын
I've started learning game development with Bevy these days. It's quite a dream for me and with Rust and this engine things seems to be to good! I will watch every single video from this series! Thanks!
@htm4914
@htm4914 Жыл бұрын
I'm a go programmer but you made me wanna learn rust as second language would be great and Thank for the awesome video 💗
@quadratwurzel4124
@quadratwurzel4124 Жыл бұрын
Thank you, I just started learning Bevy and is nice to see you are doing the 0.11 xD
@TeamDman
@TeamDman Жыл бұрын
Amazing! Can't wait for more!
@johanngambolputty5351
@johanngambolputty5351 Жыл бұрын
Ooh, I've always been bevy-curious, I will be following keenly
@Alexander-xo5ho
@Alexander-xo5ho Жыл бұрын
amazing video please keep the series up❤️
@alundra828
@alundra828 Жыл бұрын
You're doing the lords work. Are there any plans to show case 3d game development? Most big game engines have tutorials on creating simple RPG's for them, it would be super sweet if bevy had the same. I can't think of a dev more suited to lead the charge!
@SEOTADEO
@SEOTADEO Жыл бұрын
Thanks a lot, your videos are such a great learning resource. I hope you publish some game made with Bevy at some point.
@norestraint
@norestraint Жыл бұрын
I had never heard about Bevy before or cared much about game development, but this tutorial is so simple and nice that I decided to follow it. I like Rust a lot and this is a nice way to learn more about it while having fun. Thanks a lot, you are great!
@nolann6324
@nolann6324 Жыл бұрын
It's a really useful tutorial, thank you ! I was just diving into Bevy when I saw this, I think it will help me a lot, I like your way of explaining ECS concepts, it looks a lot easier than what I thought !
@logicprojects
@logicprojects Жыл бұрын
Thank you! Bevy makes ECS super easy and the best way to learn is to just try making a game.
@EngineerNick
@EngineerNick Жыл бұрын
Thankyou looking forward to the next one :)
@leonwang3072
@leonwang3072 Жыл бұрын
Wonderfully clear!
@bassguitarbill
@bassguitarbill Жыл бұрын
I've bounced off of Bevy a couple times, but I like the style of the video and I'll be keeping a watch on this series
@RogersNucleus
@RogersNucleus Жыл бұрын
Can’t wait for the next one!
@HrishikeshMuruk
@HrishikeshMuruk Жыл бұрын
I started, stopped, re-started, stopped and finally re-started learning Rust!! This seems like an interesting series to get some coding experience in Rust. Looking forward to more.
@techbytefrontier
@techbytefrontier Жыл бұрын
Amazing man thanks a lot
@EloyLima1971
@EloyLima1971 Жыл бұрын
Very nice, thank you!!!
@Gabriel_Bento
@Gabriel_Bento 10 ай бұрын
Awesome video! I was really struggling to learn Bevy and I was getting upset because ECS is something really new to me. I was almost giving, but then I saw this video and now I can continue learning.
@skpz7335
@skpz7335 Жыл бұрын
gosh this is so good, thanks!
@ggtgreg3947
@ggtgreg3947 9 ай бұрын
Thank you for your work
@fertherelax
@fertherelax Жыл бұрын
Looking forward for what we can accomplish with rust and bevy :)
@TheBoxingBinge
@TheBoxingBinge Жыл бұрын
Finally! Thanks!
@jacobenders1213
@jacobenders1213 Жыл бұрын
Fast! I'm gonna follow this! :D
@blamechickenman7434
@blamechickenman7434 11 ай бұрын
this is really good, thanks
@VitorLuizC
@VitorLuizC Жыл бұрын
I'm following again your tutorials, and it's really cool how you're constantly improving your mentoring/teaching skills
@logicprojects
@logicprojects 11 ай бұрын
Thank you so much! I've been trying to improve at all aspects as time goes on
@Tigregalis
@Tigregalis Жыл бұрын
Really great introduction to Bevy! I think this series is gonna be awesome. May I suggest putting some clips or screenshots of the bevy window (or terminal) after each code snippet? It would change the pace of the video but I think it would be helpful to see what impact each code snippet has on the program.
@logicprojects
@logicprojects Жыл бұрын
I plan on doing that as we go on. For this part the changes were black screen to grey screen so I didn't feel like it added too much but when there's actually a game to show I will!
@MonLes-xt7gc
@MonLes-xt7gc 11 ай бұрын
Thank you! You are amazing
@Champs3443
@Champs3443 Ай бұрын
very nice, thanks :D
@AlessioVecchioDraelAV
@AlessioVecchioDraelAV Жыл бұрын
Yes!
@RenderingUser
@RenderingUser 3 ай бұрын
11:25 quick update: bevy 0.13+ uses ButtonInput instead of Input also KeyCode::W -> KeyCode::KeyW
@morgomi
@morgomi Жыл бұрын
cool =)
@CodyDBentley
@CodyDBentley Жыл бұрын
wooooooo!
@jessechounard
@jessechounard Жыл бұрын
This is a great start! Definitely going to be following along. BTW, looks like you typoed the word "rogue" as "rouge" in there.
@logicprojects
@logicprojects Жыл бұрын
Damn. I always make this mistake. It should be fixed in the repo name now too... Good catch :)
@TheNinjaDwarfBiker
@TheNinjaDwarfBiker 11 ай бұрын
@@logicprojects Its a very common mistake that triggers me because I speak french and it means "red" which is means "red-like" so it always gets me when I see this typo lol
@darknetworld
@darknetworld Жыл бұрын
Well there another crate is useful is cargo watch which useful when auto build and run to see change of the code lines.
@Darqonik
@Darqonik Жыл бұрын
Hello, great tutorial as always, but could you make screenshots fill whole screen or make frame with less contrast color (e.g black to match the code editor) in future videos, please? It’s a bit harsh for the eyes, especially when watching in the dark.
@trolleymouse
@trolleymouse Жыл бұрын
Appreciate the tutorial. Bevy's been one of those things I've wanted to learn for a while. I know the controller isn't the focus of the tutorial at this stage, or anything, but my immediate thought on seeing it was some boolean maths to turn 4 if statements into 0, but my understanding of Rust is still developing. so it's looking like: transform.translation.x += 100.0 * (input.pressed(KeyCode::D) as i32 - input.pressed(KeyCode::A) as i32) as f32 * time.delta_seconds(); transform.translation.y += 100.0 * (input.pressed(KeyCode::W) as i32 - input.pressed(KeyCode::S) as i32) as f32 * time.delta_seconds(); Which is a little less elegant than I saw it in my head.
@logicprojects
@logicprojects Жыл бұрын
I would look at the leafwing input manager plugin. It's made by core bevy developers and wraps over Bevy's default input with more high level things. It makes supporting keyboard and controllers easier
@Tigregalis
@Tigregalis Жыл бұрын
I do something like this (and I prefer it) but I can't say it's objectively an improvement: if !input.any_pressed([KeyCode::W, KeyCode::S, KeyCode::A, KeyCode::D]) { return; } let up = input.pressed(KeyCode::W).then_some(1.0).unwrap_or_default(); let down = input .pressed(KeyCode::S) .then_some(-1.0) .unwrap_or_default(); let left = input .pressed(KeyCode::A) .then_some(-1.0) .unwrap_or_default(); let right = input.pressed(KeyCode::D).then_some(1.0).unwrap_or_default(); let translation = Vec2::new(left + right, up + down); for mut transform in query.iter_mut() { transform.translation += translation.extend(0.0) * time.delta_seconds() * 50.0; }
@xiahualiu
@xiahualiu 5 ай бұрын
quick question as a noob: why 9:16 asser_server in the fn setup() does not require mut? Is it because Res uses internal mutability?
@abacaabaca8131
@abacaabaca8131 11 ай бұрын
for anybody being confused with the `_` keyword in the iteration of tuple in the Query system, it is a wildcard pattern that can match any value and is often the returned value will be ignored in the range-based for loop. In this context the second item of the tuple will be ignored, i.e the Sprite object will not be processed in the for loop.
@logicprojects
@logicprojects 11 ай бұрын
Correct! In the future we'll use With constraints to avoid getting the useless parameters but I didn't want to clutter this video
@jeremycomino7610
@jeremycomino7610 Жыл бұрын
Great video. I have a question though. In the character movement, in the for loop why did you put &Mut characters when characters is already Mut? Sorry about the question but I'm a completely beginner in rust
@logicprojects
@logicprojects Жыл бұрын
That is syntactic sugar over calling characters.iter_mut(). We still need to tell rust it's a mutating iteration and rust is repetitive with it's muts. You could also do &characters for nonmutating. If you miss a mut the compiler will tell you though!
@alexcampbell-black8543
@alexcampbell-black8543 9 ай бұрын
In your query in the character_movement system you are getting immutable access to the Sprite component, does it not make more sense to use With instead as we are not using the Sprite? edit: I can see that in part two you are switching it to the Player component and then accessing the speed value, so it makes sense.
@Gabriel_Bento
@Gabriel_Bento 10 ай бұрын
Does someone know where I can see more illustrations like this 4:44?
@logicprojects
@logicprojects 10 ай бұрын
I tried to include the authors info. They are from unity docs about their ECS but I think they retired them because the animations really didnt have anything to do with ecs
@principleshipcoleoid8095
@principleshipcoleoid8095 Жыл бұрын
Kind of a stupid cargo question, but the bevy dynamic linking feature is enabled together with the default features?
@logicprojects
@logicprojects Жыл бұрын
Yes! There is a option to disable all default features in the toml as well and many community plugins do this for compatibility
@kalpolproductions8558
@kalpolproductions8558 7 ай бұрын
I love how he knows we haved used unity and moved onto bevy.
@sunsongtao5372
@sunsongtao5372 Жыл бұрын
where is the part 2, can't wait
@logicprojects
@logicprojects Жыл бұрын
Sorry for the delay! I just moved and won't have internet until mid next week but I have the video ready to go
@mohamedimranechehabi5735
@mohamedimranechehabi5735 Жыл бұрын
Hello, thanks for the tutorial, but is there any advanced clear documentation about bevy?
@logicprojects
@logicprojects Жыл бұрын
Depends what you mean by "advanced". The bevy docs are the primary documentation for bevy. You also can look into the source of the engine itself at a certain point because it uses the same concepts as normal bevy apps. My recent rendering video is also a relatively advanced video that deep dives into rendering internals. For really advanced things you probably want to ask the developers directly. Also reading plugins written by engine contributors is a great way to learn how they solve problems.
@mohamedimranechehabi5735
@mohamedimranechehabi5735 Жыл бұрын
@@logicprojects thank you very much
@DejaimeNeto
@DejaimeNeto Жыл бұрын
yes
@logicprojects
@logicprojects Жыл бұрын
Yes
@UnderArea51
@UnderArea51 Жыл бұрын
Question: Do I need to place to Bevy folder - into the same - "cargo new myGame" folder" ? Where does the Bevy folder need to be placed to "talk" to the myGame Rust files? LOL! I hope this makes sense!
@UnderArea51
@UnderArea51 Жыл бұрын
Sorry - typo above : Do I need to place my Bevy folder - into the same
@UnderArea51
@UnderArea51 Жыл бұрын
OR Rust is smart... I will install Bevy... and Rust Cargo will know where to find it on my PC to "add" Bevy's magic? Behind the scenes?
@logicprojects
@logicprojects Жыл бұрын
So rust is smart. Once you install cargo and use it to create a project it will make a cargo.toml file in a folder. That file being there is all rust needs to know it's a rust project and to use bevy. The rust book should get you set up and running a project and then it will make a lot of sense
@UnderArea51
@UnderArea51 Жыл бұрын
@@logicprojects - I'm new to your channel. Do you have a link post to the Rust book? I developing on a Raspberry Pi 3 B+ with VIM as my code editor. I got use to VIM during my intro to prgrammng... It's strange... I tried to learn C# ,(and the built in languages,) with Unity, GameMaker, ClickTeam Fusion ,(on my Windows 11 PC,) but for some reason game engines messes my thinking up. I found engines harder to learn - wasted time digging around - trying to find everything. I know everyone has their own work flow LOL!!! So, it's me... Rust/ Bevy seems really awesome and look forward developing a game in it! I also like the Cargo compiler.. it seems to catch everything - on the front end.
@logicprojects
@logicprojects Жыл бұрын
Here is the Rust book: doc.rust-lang.org/book/ it should get you set up and started with Rust. Cargo is magical and it's a great experience to work with! I also used to use Vim and I use the Vim plugin for everything
@TheNinjaDwarfBiker
@TheNinjaDwarfBiker 11 ай бұрын
2:39 you might want to consider fixing the rouge vs rogue typo, it's not rouge
@logicprojects
@logicprojects 11 ай бұрын
Already fixed!
@jeffcarey3045
@jeffcarey3045 Ай бұрын
Rogue is rogue. Rouge is makeup.
@dastan331
@dastan331 10 ай бұрын
I can't try this engine! I don't like looking at this code 😂.
@graehmebracegirdle7393
@graehmebracegirdle7393 11 ай бұрын
😀 P R O M O S M
@samsterlicious864
@samsterlicious864 3 ай бұрын
So many ads
@nomadshiba
@nomadshiba 10 ай бұрын
i really wanted to use bevy before but there is one thing that keeps me away EDIT: alright let's go, learn bevy, fck unity just gonna fork it and name the branch "master"
@clonkex
@clonkex Жыл бұрын
struct* it's a little confusing that you say "strut"
Learn Bevy! Custom Components/Resources and Gameplay (part 2)
9:16
Logic Projects
Рет қаралды 12 М.
Switching Game Engines... Twice? - Devlog #7
10:55
TIMBER
Рет қаралды 81 М.
ВОДА В СОЛО
00:20
⚡️КАН АНДРЕЙ⚡️
Рет қаралды 26 МЛН
Red❤️+Green💚=
00:38
ISSEI / いっせい
Рет қаралды 79 МЛН
Spot The Fake Animal For $10,000
00:40
MrBeast
Рет қаралды 149 МЛН
The Most Legendary Programmers Of All Time
11:49
Aaron Jack
Рет қаралды 539 М.
From Editor to Runtime - The Hazel Engine Workflow
23:45
The Cherno
Рет қаралды 29 М.
Blazingly Fast Greedy Mesher - Voxel Engine Optimizations
23:35
Let’s BUILD a COMPUTER in CONWAY's GAME of LIFE ⠠⠵
23:33
Alan Zucconi
Рет қаралды 977 М.
Making an FPS game with Bevy and Rust!
9:32
Biped Potato
Рет қаралды 31 М.
Introduction to shaders: Learn the basics!
34:50
Barney Codes
Рет қаралды 305 М.
Asteroids in Rust with the Bevy Game Engine - Let's Code!
27:43
chris biscardi
Рет қаралды 5 М.
EA Won't Let Me Play This Game - So I Hacked It
8:49
Nathan Baggs
Рет қаралды 301 М.
Как правильно выключать звук на телефоне?
0:17
Люди.Идеи, общественная организация
Рет қаралды 1,9 МЛН
Какой ноутбук взять для учёбы? #msi #rtx4090 #laptop #юмор #игровой #apple #shorts
0:18
Здесь упор в процессор
18:02
Рома, Просто Рома
Рет қаралды 404 М.
Kumanda İle Bilgisayarı Yönetmek #shorts
0:29
Osman Kabadayı
Рет қаралды 1,4 МЛН
Telefonu Parçaladım!😱
0:16
Safak Novruz
Рет қаралды 23 МЛН