I recommend decoupling the physics and the rendering. That way your game plays the same way on any framerate. The disadvantage to this is that your physics step size becomes the limit of what framerates are possible, but if you set it at something like 120 steps per second, I think you should be fine.
Not necessarily - you can have framerates larger than physics update rates if you use interpolation. Minecraft does this, for example. Everything in the game runs on a 20 ticks per second system, but movement is smooth even at high framerates because it interpolates all mvoements based on the current and last position.
@@josephsmith5110 Yeah, rendering, mouse controls, and GUI is basically completely decoupled from the tick rate, and they all run on every render frame. You can freely look anywhere in between game ticks, it's just that the game does not register any actions (or even any actual movement inputs) in this time. There are mods that slow down the game's tick rate (but don't affect frame rate; they can be useful for several reasons, especially when making very technical builds) - since Minecraft uses linear interpolation for movement smoothing you can see and feel the line segments starting and ending on each tick.
So my collisions are array based, it takes the characters position and transposes it onto the array to check for solid tiles and such. However this means when the character moves too fast from one frame to another which occurs mostly due to bad fps they can end up skipping over some tiles. So basically you store the old position and check the tiles between the old position and the new position.
Yeah ik but from my personal experience rust already is slow enough and idk if im just using it wrong but when i enable breakpoints it just takes forever to compile.
@@bipedpotato Huh, weird. Breakpoints should not affect compilation, since they are usually done entirely at runtime. Maybe it's different on windows for some reason? You might need one extra full compilation including dependencies because of recompiling everything in debug mode, but that should be faster than release (unless your disk is very slow, I guess, the files are larger with debug builds).
I've recently tried Bevy but there were noticable FPS drops right out of the box when I launched simple boilerplate examples on my MacBook Pro. That was the main reason why I passed by Bevy engine.
seems like you did something wrong with it or it's mac issue Debug builds in Rust can be 100 times slower than release builds (because, you know, they are optimized for fast compilation and bloated with a ton of debug info, not for fast execution and small binary like release builds), so you need to be sure you estimate fps on the right build. And follow project configuration instructions on bevy's website, specifically opt-levels setup it's somewhat common mistake, you hear someone bashing Rust for poor performance, and then you see “Finished dev [unoptimized + debuginfo]” in their logs ;) with the right setup, bevy maintains 40fps WHILE generating a map with 6.5 millions tiles, where every single tile is an Entity with Components, on 5 years old i5. I think it is pretty impressive for 0.11 version Also I saw the guy that is making Rimworld clone, but with thousands of NPCs, on bevy. He said that the same implementation gave him 100fps with Godot and 900 fps with Bevy (and that's the reason behind going with it)
@@MikeNugget it is literally the first chapter of “Getting started” on the website, called Setup. Big white header, “Compile with performance optimizations”. And the next “Enable fast compiles (optional)”. Also, every freaking rust tutorial, including the rust book, are telling you about this debug/release difference Did you actually try to read instead of blaming the tool? :) Like the literal quote right there, “While it may not be an issue for simple projects, debug builds in Rust can be very slow - especially when you start using Bevy to make real games. It's not uncommon for debug builds using the default configuration to take multiple minutes to load large 3D models, or for the framerate for simple scenes to drop to near-unplayable levels. Fortunately, there is a simple fix, and we don't have to give up our fast iterative compiles! Add the following to your Cargo.toml”. and in the official rust book, you are told about it in the third subchapter of the first “getting started” chapter
FINISH THIS THE GAME GAME! So, I'm debating about developing my own Roguelike in Rust/Bevy. I'm coming from a Python - Pygame dev world... and I'm going with a more minimalist approach with game graphics and movements - move more like boardgame on a grid... and all my game character graphics will be created in code VS pngs... points and vertices. This might be stupid approach in hard coding sprites... lucky, I'm not advice enough to understand from - the right and wrong way... plus my characters are going to be pretty simple - hue - color. Your progress of developing your game, will keep ME - my motivation grinding through learning Rust and Bevy dev world... and moving forward - revamping my entire Python game... I've heard great things about Rust. jonathon Blow posted a rant regarding Rust... so, the language MUST be awesome stuff! Jonathon, if you see this comment - your our hero! !! Don't forget that!!! So keep the update vids brewing dude!!! LLove your old art (Joking!!!!) Your updated work looks great so far! 🖖👽
Many things to say. First, good job, really. The parts you do know, you seem to do well. What I would like to say is: Do you know what makes your game special ? You talk about a grace period after a jump as if you came up with it yourself (and maybe you did), but it also shows maybe you're not well versed in platformers as this mecanic has been in games for ages, albeit secretly. You talk about a double job, and seem to fail to realize it's basically what absolutely every platformers gives it players at some point. No harm, just, if you ask for consructive criticism, I would advise you to stop and reflect first of what story you want to tell, and why. If you let it be generic, if you let it be just like the rest, without putting you as a person inside of it, then, what's the point ?
I didn’t say that i thought about the grace period myself, i said that celeste and other platformers used it before. You are right that at the moment it seems a bit generic, however you must keep in mind how early in development the game really is. I haven’t even begun working on the 5th room in the game yet so i would say its a bit unfair to start judging yet. I guess i should have talked about this in the video but i appreciate your concern nonetheless.
@@bipedpotato I realize I haven't been nice enough in the way I phrased everything and I'm sorry if I hurt your feelings, this wasn't the goal at all I swear. I'm sure you're right and I misheard, I'm not an native english speaker and I was just waking up, my bad. Forget what I said about anything but the last part, the " you" part. My real constructive criticism is this: You talk to me about a fifth level not built yet, when I ask you what was the story behind the first four ones ? And by story, I don't mean dialogues and such just for the sake of it, I meant, what does this game says about you, what does it mean to you and how do you want to reflect it inside your game ? What part of you, of your personal journey do you bring to life by extracting it from inside you and putting it inside your game ? If it's just a platformer you just create for fun, don't worry about it and just go crazy on the level design and all, follow the dopamine and forget about me, there is value in doing that of course. If you truly mean to finish this project and wish it the best though, I would like to point that maybe you're doing some of the creation backward, and that could explain why you have so many abandonned projects. If you first close your eyes, and think about what story you want to tell, then only build your game, your mecanics around it, then you have a game, a project worth working on for years to come, as long as the initial thought stays with you and is close to your heart. If you first start building stuff and you don't really know why, without any soul searching, then what will stop you from stopping the project alltogether when you're bored of just putting levels together without anything really clicking inside your mind ?
@@Nerh4kThe first 4 rooms are sort of a tutorial which is customary in any sort of game to teach people about the controls of the game which i could have sworn i also talked about in the video. I don’t think i ever gave an indication about my feelings being hurt? I was just discussing your reply. Furthermore most of my abandoned games were from lack of technical knowledge and foresight, coincidentally i do actually have an idea of what i will build this game into. I don’t think building some test levels as a starting point to expand into a bigger game has anything wrong, don’t take this as an insult but i have a feeling you thought a little too deeply into what is just me building some stepping stones to create a bigger and more thought out game.
Give video feedback below, also really sorry for the family bird which was loud at the end of the video.
"not to mention I used light mode back then"
yes bro, everybody made fun of me for it.
Sad to see the monogame gone but I hear good things about rust and bevy. Good luck with the game!
Thanks man!
Your projects definitely get further than mine ... Curious to see how you've done. This video is a year old.
I recommend decoupling the physics and the rendering. That way your game plays the same way on any framerate. The disadvantage to this is that your physics step size becomes the limit of what framerates are possible, but if you set it at something like 120 steps per second, I think you should be fine.
Not necessarily - you can have framerates larger than physics update rates if you use interpolation. Minecraft does this, for example. Everything in the game runs on a 20 ticks per second system, but movement is smooth even at high framerates because it interpolates all mvoements based on the current and last position.
@@animowany111 Surely, at least the camera controls must tick at a higher rate. A three frame delay in your inputs is very noticeable.
@@josephsmith5110 Yeah, rendering, mouse controls, and GUI is basically completely decoupled from the tick rate, and they all run on every render frame. You can freely look anywhere in between game ticks, it's just that the game does not register any actions (or even any actual movement inputs) in this time. There are mods that slow down the game's tick rate (but don't affect frame rate; they can be useful for several reasons, especially when making very technical builds) - since Minecraft uses linear interpolation for movement smoothing you can see and feel the line segments starting and ending on each tick.
Really like the sewer theming, haven't seen it in many other games
good luck! may the rust hivemind bless you
indeed
Looks cool, although the spider boss seems to blend into the background a lot
Yeah ill find a way to contrast it
Nice work looks good, can you give a general overview of how you solved the low fps collision issue?
So my collisions are array based, it takes the characters position and transposes it onto the array to check for solid tiles and such. However this means when the character moves too fast from one frame to another which occurs mostly due to bad fps they can end up skipping over some tiles. So basically you store the old position and check the tiles between the old position and the new position.
You were just Done with it for a while. No worries.
There’s a visual studio extension for rust if you want to use breakpoints
Yeah ik but from my personal experience rust already is slow enough and idk if im just using it wrong but when i enable breakpoints it just takes forever to compile.
@@bipedpotato Huh, weird. Breakpoints should not affect compilation, since they are usually done entirely at runtime. Maybe it's different on windows for some reason?
You might need one extra full compilation including dependencies because of recompiling everything in debug mode, but that should be faster than release (unless your disk is very slow, I guess, the files are larger with debug builds).
What made you want to keep changing languages/frameworks?
Why you did not finish it in monogame??😊
Nice video bro!!!!
why switch from MG though? what was wrong with it?
I set breakpoints and debug rust code just fine in vscode.
My bad man i thought u couldn’t debug but ill definitely look into it.
I've recently tried Bevy but there were noticable FPS drops right out of the box when I launched simple boilerplate examples on my MacBook Pro. That was the main reason why I passed by Bevy engine.
seems like you did something wrong with it or it's mac issue
Debug builds in Rust can be 100 times slower than release builds (because, you know, they are optimized for fast compilation and bloated with a ton of debug info, not for fast execution and small binary like release builds), so you need to be sure you estimate fps on the right build. And follow project configuration instructions on bevy's website, specifically opt-levels setup
it's somewhat common mistake, you hear someone bashing Rust for poor performance, and then you see “Finished dev [unoptimized + debuginfo]” in their logs ;)
with the right setup, bevy maintains 40fps WHILE generating a map with 6.5 millions tiles, where every single tile is an Entity with Components, on 5 years old i5. I think it is pretty impressive for 0.11 version
Also I saw the guy that is making Rimworld clone, but with thousands of NPCs, on bevy. He said that the same implementation gave him 100fps with Godot and 900 fps with Bevy (and that's the reason behind going with it)
@@alexandrbromles8658 Ok, so may be it was the second reason because of poor docs which didn't tell how to configure it the right way.
@@MikeNugget it is literally the first chapter of “Getting started” on the website, called Setup. Big white header, “Compile with performance optimizations”. And the next “Enable fast compiles (optional)”.
Also, every freaking rust tutorial, including the rust book, are telling you about this debug/release difference
Did you actually try to read instead of blaming the tool? :)
Like the literal quote right there,
“While it may not be an issue for simple projects, debug builds in Rust can be very slow - especially when you start using Bevy to make real games.
It's not uncommon for debug builds using the default configuration to take multiple minutes to load large 3D models, or for the framerate for simple scenes to drop to near-unplayable levels.
Fortunately, there is a simple fix, and we don't have to give up our fast iterative compiles! Add the following to your Cargo.toml”.
and in the official rust book, you are told about it in the third subchapter of the first “getting started” chapter
What engine do you use now?
@@jethdaflip7741 at least I also tried Godot and Unity, they didn't have such problem at all.
rust doesn't need debugging because of the compiler hints
what is the pixel editor?
Aseprite
using vulkan this time?
nah
FINISH THIS THE GAME GAME! So, I'm debating about developing my own Roguelike in Rust/Bevy. I'm coming from a Python - Pygame dev world... and I'm going with a more minimalist approach with game graphics and movements - move more like boardgame on a grid... and all my game character graphics will be created in code VS pngs... points and vertices. This might be stupid approach in hard coding sprites... lucky, I'm not advice enough to understand from - the right and wrong way... plus my characters are going to be pretty simple - hue - color. Your progress of developing your game, will keep ME - my motivation grinding through learning Rust and Bevy dev world... and moving forward - revamping my entire Python game... I've heard great things about Rust. jonathon Blow posted a rant regarding Rust... so, the language MUST be awesome stuff! Jonathon, if you see this comment - your our hero! !! Don't forget that!!! So keep the update vids brewing dude!!! LLove your old art (Joking!!!!) Your updated work looks great so far! 🖖👽
Many things to say.
First, good job, really.
The parts you do know, you seem to do well.
What I would like to say is: Do you know what makes your game special ?
You talk about a grace period after a jump as if you came up with it yourself (and maybe you did), but it also shows maybe you're not well versed in platformers as this mecanic has been in games for ages, albeit secretly.
You talk about a double job, and seem to fail to realize it's basically what absolutely every platformers gives it players at some point.
No harm, just, if you ask for consructive criticism, I would advise you to stop and reflect first of what story you want to tell, and why.
If you let it be generic, if you let it be just like the rest, without putting you as a person inside of it, then, what's the point ?
I didn’t say that i thought about the grace period myself, i said that celeste and other platformers used it before. You are right that at the moment it seems a bit generic, however you must keep in mind how early in development the game really is. I haven’t even begun working on the 5th room in the game yet so i would say its a bit unfair to start judging yet. I guess i should have talked about this in the video but i appreciate your concern nonetheless.
@@bipedpotato I realize I haven't been nice enough in the way I phrased everything and I'm sorry if I hurt your feelings, this wasn't the goal at all I swear. I'm sure you're right and I misheard, I'm not an native english speaker and I was just waking up, my bad.
Forget what I said about anything but the last part, the " you" part.
My real constructive criticism is this:
You talk to me about a fifth level not built yet, when I ask you what was the story behind the first four ones ?
And by story, I don't mean dialogues and such just for the sake of it, I meant, what does this game says about you, what does it mean to you and how do you want to reflect it inside your game ? What part of you, of your personal journey do you bring to life by extracting it from inside you and putting it inside your game ?
If it's just a platformer you just create for fun, don't worry about it and just go crazy on the level design and all, follow the dopamine and forget about me, there is value in doing that of course.
If you truly mean to finish this project and wish it the best though, I would like to point that maybe you're doing some of the creation backward, and that could explain why you have so many abandonned projects.
If you first close your eyes, and think about what story you want to tell, then only build your game, your mecanics around it, then you have a game, a project worth working on for years to come, as long as the initial thought stays with you and is close to your heart.
If you first start building stuff and you don't really know why, without any soul searching, then what will stop you from stopping the project alltogether when you're bored of just putting levels together without anything really clicking inside your mind ?
@@Nerh4kThe first 4 rooms are sort of a tutorial which is customary in any sort of game to teach people about the controls of the game which i could have sworn i also talked about in the video. I don’t think i ever gave an indication about my feelings being hurt? I was just discussing your reply. Furthermore most of my abandoned games were from lack of technical knowledge and foresight, coincidentally i do actually have an idea of what i will build this game into. I don’t think building some test levels as a starting point to expand into a bigger game has anything wrong, don’t take this as an insult but i have a feeling you thought a little too deeply into what is just me building some stepping stones to create a bigger and more thought out game.