Zymartu Games
Zymartu Games
  • 5
  • 102 524
Bevy 0.12 Beginner Tutorial Series - Ep 5 - State, Events, and Run Conditions
Welcome to the latest episode in our 'Bevy Basics: Game Development Essentials in Bevy' series.
This episode focuses on the coordination, execution, and communication of systems in Bevy and covers Bevy's intermediate APIs for managing game logic. We will cover state, events, and run conditions!
Series Playlist:
ua-cam.com/play/PL2wAo2qwCxGDp9fzBOTy_kpUTSwM1iWWd.html
You can find the GitHub source code for this episode and future episodes here:
💻 github.com/marcelchampagne/bevy-basics.
In this episode, we cover the following topics:
00:00 Introduction
00:19 Agenda / Episode Summary
00:39 Recap
01:00 Overview - State, Events, and Run Conditions
01:50 State Overview
02:37 State Transitions
03:26 Adding State to Your Bevy App
04:14 Accessing and Changing States
05:08 Events Overview
05:43 Adding Events to Your Bevy App
06:00 Reading and Writing Events
07:27 Run Conditions Overview
07:57 How To Use Run Conditions
09:31 Benefits of Run Conditions
10:05 Code Example - Setup
10:45 Code Example - Adding GameState for Pause Functionality
13:06 Code Example - Halting System Execution With Run Conditions
14:43 Code Example - Defining Collision Event & Health/Damage Components
16:28 Code Example - Updating Collision Systems To Use Events
18:21 Code Example - Ordering Collision Systems & Registering Events
19:43 Code Example - Adding Health/Damage Components to Entities
21:34 Code Example - Despawning Dead Entities
22:05 Code Example - Reviewing Collision Detection Code Diff
23:22 Code Example - Reviewing GameState Code Diff
23:40 Code Example - Implementing GameOver With State Transitions
26:28 Code Example - Final Results
26:50 Future Topics
26:57 Play Test Our Game!
27:11 Thanks for Watching!
This course aims to provide you with a swift and comprehensive overview of the fundamentals of Bevy, laying a solid foundation for your game development journey. While this series is designed to be accessible to programmers at all levels, those who have worked through the first half of 'The Rust Programming Language' will find it especially beneficial. No prior experience in game development is required.
While the frequency of future videos may not be as high going forward, we are committed to maintaining the quality you've come to expect, and we hope to continue delivering high-quality content as time allows.
I sincerely hope you find this series enjoyable and informative. Don’t forget to subscribe to the channel to stay updated on future videos!
📚📚📚
For additional learning resources, please check out:
🦀 The Rust Book: doc.rust-lang.org/book/
🎮 The Official Bevy Website: bevyengine.org/
📖 Bevy Cheat Book: bevy-cheatbook.github.io/
Socials:
linktr.ee/ZymartuGames
ZymartuGames
Переглядів: 7 868

Відео

Bevy 0.12 Beginner Tutorial Series - Ep 4 - Schedules, System Ordering, SystemSets, and Flush Points
Переглядів 9 тис.Рік тому
Welcome to the latest episode in our 'Bevy Basics: Game Development Essentials in Bevy' series. In this episode, we delve deep into crucial topics of schedules, system ordering, SystemSets, and flush points. This episode is packed with comprehensive and current insights, ensuring that you can gain the most up-to-date knowledge on effectively managing schedules and system ordering within Bevy. S...
Bevy 0.12 Beginner Tutorial Series - Ep 3 - User Input, Collisions, ECS APIs & Asset Handling
Переглядів 19 тис.Рік тому
Welcome to 'Bevy Basics: Game Development Essentials in Bevy.' This episode expands the code example and covers various common ECS patterns in Bevy, asset handling, user input, collisions, and more! If you haven't seen the first two episodes yet, you can find the first episode here: ua-cam.com/video/B6ZFuYYZCSY/v-deo.html. Series Playlist: ua-cam.com/play/PL2wAo2qwCxGDp9fzBOTy_kpUTSwM1iWWd.html...
Bevy 0.12 Beginner Tutorial Series - Ep 2 - 3D Basics, Resources, and Organizing Code!
Переглядів 25 тис.Рік тому
Welcome to 'Bevy Basics: Game Development Essentials in Bevy.' This episode covers 3D basics, resources, and organizing code! If you haven't seen the first episode yet, you can find it here: ua-cam.com/video/B6ZFuYYZCSY/v-deo.html. Series Playlist: ua-cam.com/play/PL2wAo2qwCxGDp9fzBOTy_kpUTSwM1iWWd.html You can find the GitHub source code for this episode and future episodes here: 💻 github.com/...
Bevy 0.12 Beginner Tutorial Series - Ep 1 - ECS & Core Concepts
Переглядів 41 тис.Рік тому
Welcome to 'Bevy Basics: Game Development Essentials in Bevy.' My name is Marcel, and I’m a former Googler and senior software engineer. This course aims to provide you with a swift and comprehensive overview of the fundamentals of Bevy, laying a solid foundation for your game development journey. While this series is designed to be accessible to programmers at all levels, those who have worked...

КОМЕНТАРІ

  • @khargos7602
    @khargos7602 9 днів тому

    we miss youuuu

  • @cynerboy
    @cynerboy 9 днів тому

    I want to thank you for your efforts. Your videos have been very helpful in understanding bevy engine over the past few days. I appreciate your kindness 💐❤

  • @khargos7602
    @khargos7602 10 днів тому

    Such a nice series here. I know how much work you put into these videos, and I hope you get some more time soon to come up with new stuff. You all deserve more subs and views! UA-cam is such a grind, but it pays dividends once you get over that hump!!!

  • @driwell
    @driwell Місяць тому

    thank you for creating these

  • @CodeThatVoid
    @CodeThatVoid Місяць тому

    Hm. At 0.14 and up there is no SceneBundle anymore :( it forces to use SceneRoot.

  • @MonSteh
    @MonSteh 2 місяці тому

    Man.... It would be a real shame if you abandoned this channel. The clarity, tempo and information (and hows its build upon) is outstanding (to me). Clearly im not alone in seeing value in this (ratio is pretty insane). Hope you create more content, if not the videos you did create are awesome, ty!

  • @Aleamanic
    @Aleamanic 2 місяці тому

    Best tutorials on Bevy! Topics, presentation style, and pacing, perfect!

  • @ArcticArmBoy
    @ArcticArmBoy 3 місяці тому

    Ok, the silence is weird.. . what's wrong with Bevy, man?

  • @marianoarg2514
    @marianoarg2514 3 місяці тому

    I added a line to spawn a second spaceshift and now I feel like i´m john carmack

  • @hearteyedgirl
    @hearteyedgirl 4 місяці тому

    in bevy 0.14.1 Color::rgb(red: u8, green: u8, blue: u8) -> Color is deprecated, use Color::srgb(red: f32, green: f32, blue: f32) -> Color instead

  • @gnomehost
    @gnomehost 4 місяці тому

    brilliant! very clever explanations, congrats

  • @gnomehost
    @gnomehost 4 місяці тому

    Thank you @Zymartu! Very very clean explanations. I've learned a LOT about ECS desig pattern!!

  • @Kilian-ce2wg
    @Kilian-ce2wg 4 місяці тому

    Hey keep em coming! Your videos are great

  • @Kilian-ce2wg
    @Kilian-ce2wg 4 місяці тому

    Awesome video. keep this series going!

  • @Eekhoornz
    @Eekhoornz 4 місяці тому

    Great vid!, fyi you have a small spelling error in the thumbnail: Pratice

  • @NH-ij8dz
    @NH-ij8dz 4 місяці тому

    Awesome stuff.

  • @zoltanfinta8999
    @zoltanfinta8999 4 місяці тому

    If you are using Bevy >= 0.13 then add_state is renamed to init_state.

  • @Reaper9225
    @Reaper9225 4 місяці тому

    Your vids are 🦆-ing awesome. Very easy to understand and helpful af.

  • @berboko3081
    @berboko3081 4 місяці тому

    Awesome tutorial, thanks a lot dude :D

  • @vrealzhou
    @vrealzhou 4 місяці тому

    app.add_state() has been renamed to app.init_state() since Bevy 0.13

  • @flwi
    @flwi 4 місяці тому

    Awesome series! I appreciate the effort you put in to create this gem. Hopefully you'll find time and energy to continue it. Good luck with your game-development!

  • @flwi
    @flwi 4 місяці тому

    Haha - love the graphic explaining the flush points @7:00 :D Great video - love this series! I learn so much since you have an excellent teaching style!

  • @flwi
    @flwi 4 місяці тому

    What a joy to code along. Feels very structured and I often already (kinda) know what to do next. Very well paced. Edit: Just finished this episode. I think the game will crash if the spaceship goes beyond DESPAWN_DISTANCE.

  • @flwi
    @flwi 4 місяці тому

    Holy smokes - you are a really talented tutor! Your series is _very_ easy to follow along and you already squashed some brain-bugs I had due to a lack of understanding (looking_at you, camera) ;-)

  • @flwi
    @flwi 4 місяці тому

    That's a _very_ nice introduction! Well done 🎉

  • @dadlord689
    @dadlord689 5 місяців тому

    This one showed how to use events like events and not like some resource. So you can make system to be run only if event was sent!

  • @Rust_go_java
    @Rust_go_java 5 місяців тому

    It is so nice and to the point, please create additional videos ?

  • @battleofmushrooms
    @battleofmushrooms 5 місяців тому

    Great tutorials! Hope to see new episodes soon😅

  • @CjqNslXUcM
    @CjqNslXUcM 6 місяців тому

    I hope you eventually find the time to continue this series. It's been a great help and really sets the standard for bevy tutorials.

  • @parkernilson
    @parkernilson 6 місяців тому

    This series has been a HUGE help. Thank you so much!

  • @parkernilson
    @parkernilson 6 місяців тому

    I love it!!

  • @JReuben111
    @JReuben111 6 місяців тому

    This is great - is there per chance a written version of this tutorial series ?

  • @tomjim4089
    @tomjim4089 6 місяців тому

    when will have a further tutorials especially the 0.13 have released,you are the only recent video so far,another are too old

  • @michaelschneider729
    @michaelschneider729 7 місяців тому

    Great tutorial so far. But I have one little problem: I can't find the Asteroid.glb file in the linked asset bundle. Does anyone know a fitting alternative?

    • @tomjim4089
      @tomjim4089 6 місяців тому

      download from the link below the video

  • @thygrrr
    @thygrrr 7 місяців тому

    I don't see how these loosey-goosey labels are in the Spirit of Rust. These appear like a very vague (if flexible!) and unreliable way to maintain your system order. But spotting conflicts or reasons why a system runs too late appears difficult.

  • @thygrrr
    @thygrrr 7 місяців тому

    Not a fan of Bevy, nor Rust, but this is still a good series. (I'm here to spy, I maintain an ECS for C# :-))

  • @lucd9642
    @lucd9642 7 місяців тому

    In Bevy 0.13, add_state is renamed to init_state

  • @Tom2savoi
    @Tom2savoi 7 місяців тому

    Super useful series of tutorials ! About 38:06 since the spaceship is currently also targeted by the despawn query, making the app panic when it gets too far away off the center of the screen, and that could be fixed by just targeting the asteroids using "With<Asteroid>" in that system or even better make a component to tag every despawnable entity and target that like "With<Despawnable>" right ?

  • @accumulator4825
    @accumulator4825 7 місяців тому

    This tutorial was awesome. Really appreciate it, thank you!

  • @Lei_P_C
    @Lei_P_C 7 місяців тому

    Thought we were checking different documents of bevy-render as they are different. And yes, you were checking bevy_render 0.11.3, not as the title suggested 0.12.

  • @HAL_NlNETH0USAND
    @HAL_NlNETH0USAND 7 місяців тому

    The Space keypress has a Velocity::new(-transform.forward() * ... if you get Direction3d and not a Vec3 you can deref the Direction3d to a vec3

  • @lilinnalinna
    @lilinnalinna 7 місяців тому

    How is your game development going?

  • @k0tigrun
    @k0tigrun 7 місяців тому

    Amazing. Hope you will find capacity to record more videos any time soon

  • @Tornado-3p9
    @Tornado-3p9 7 місяців тому

    The only improvement for this tutorial series that I can think of is to change the default fps to 30 max. That way I can watch the videos on any older hardware and even on my big TV in high resolution (while following the tutorial on my laptop). Anything over 30fps does not make sense on youtube if there are no fast movements. On UA-cam, high resolution is almost always more important than framerate (and sound is often more important than video quality but you are already doing well there).

  • @Tornado-3p9
    @Tornado-3p9 7 місяців тому

    I am really hyped to find a useful tutorial series about bevy engine. Thanks for the good work.

  • @ZeroCadence
    @ZeroCadence 7 місяців тому

    I’ve been writing notes and following along. Thank you for this series, though I’ve been learning rust, the abstractions in bevy is tough to wrap your head around. The documentation is something I haven’t quite figured out so thank you. For myself and others, bevy is a great way to learn rust. This is keeping me engaged in my rust journey

  • @itstheceo7
    @itstheceo7 7 місяців тому

    wonderful tutorial series, and i hope your game is coming along nicely too!

  • @sunofabeach9424
    @sunofabeach9424 7 місяців тому

    please finish the tutorial, you have covered almost all basics of the engine and you have done a great job

  • @sunofabeach9424
    @sunofabeach9424 7 місяців тому

    7:47 bug fuel right there

  • @jugibur2117
    @jugibur2117 7 місяців тому

    Thanks for your effort, a great way to start mit Rust and Bevy. I'm just wondering why you use "... in query.iter_mut()" here, because only the position is mutating in my eyes not the query itself.