- What is the goal ?
- What is Bevy ?
- Why I actually love Bevy ? (and why I hate it)
- What is inside this POC ?
- Very interesting resources
- Some tests I did
- Conclusion
Make something funny with Bevy and reusable. (like a Scene Manager (like the one in p5.js (yes this one specifically (i really like it))))
Bevy is a little data driven game engine made in Rust, for more information : https://bevyengine.org/
Bevy is a cool game engine, why ? cause it is made in rust, why is it cool ? because I want to learn rust. Why ? Idk let me have fun.
I have always heard about data driven structures without really understanding, now I understand a little, but not too much either.
I think the data driven mentality behind Bevy is pretty fun and interesting, unfortunately I don't use the ECS logic in this example (I don't really have the level to use it in a proper way for this POC, but I still can do pretty funny things with the basic feature of this Game Engine)
I also hate Bevy, because there have been a lot of changes in a short time, making some forum discussions obsolete (for example, the answer of this GH discussion is obsolete and made me cry), but that's also why I like Bevy, because it's not dead.
There is a good 2D Renderer in it, yes it's a normal point for a lot of game engine but when I dug deep into game engine, it was complicated to find a good game engine with a simple and understandable 2D graphics API.
And ofc, i hate a little bit rust for this : (i have a 256gb macbook lol..)
Knowing that Rust favors a composition system rather than inheritance, it was a little complicated to do OOP with Bevy, but I arrived at something that was somewhat correct and that I wanted, which is a little stupid but which can be reused and practical in the future. (Composition is also something i hate in this language.)
Borrow checking killed all the fun I had in me when I started this repo, why ? because I don't have enough neurons to understand what lifetime is.
(actually)
- Example of how to use
bevy_pixel_camera
easily - Example of how we can spawn a sprite
- A test of how to implement a "Scene Manager" in Bevy (even if it is a little bit messy)
- A test of how we can use the composition API to make a basic struct
- A little test of UI in Bevy
- This hero : PhaetusFox
- For rendering sprite sheet : example
- For embed assets : example
I didn't really like Zed, it was fast & and I love the UI but some of my preferred shortcut doesn't work at all (i'm not in vim mode) ??? like ctrl + ` for open the terminal doesn't wan't to work for some reason, and some other shortcuts don't work as expected (cmd + b doesn't focus folder on the left if it is open and you are editing text), so I need to take my mouse and it just brainfuck me every time, etc... But I really liked the simple UI, I would probably use it again in 6 months when it will be a little more usable.
There is also some problem with the auto-completion which at times simply decides to no longer work...
To be more precise, this is my life before and after Zed :
So i don't recommend it and i just don't understand the fck why everyone is talking about this actually saying it already killed vscode (and i can't use it on my arch)
I love VSCode but, I don't want to take 20 min to configure it too, so I didn't test it, but I think it can be a pretty good solution if we want to dev in Rust cause of its versatility and large ecosystems of plugins.
My preferred one, just install it, launch it, it works. Good autocompletion, shortcuts works (and ofc you can set differents keymaps with plugins), good. Slower than zed ofc but shortcuts works at least. Thanks JetBrain to make such cool things for poor students.
It's a big failure, there is no feature reusable in this repo, but only documentation about how to understand my pain.
Rust is a pretty catchy language that makes me want to keep using it, although lifetime management is a bit scary (and is sometimes more complicated than just managing memory if we are beginner), that doesn't make it any less of a good language.
- ...borrowchecker
- borrowchecking, again =)
- did I tell you about borrow checking?
- interest thing about mutable borrow (kill me)
- life time in rust
- borrow checker again but in 60 seconds
- oop in rust
- very good ressources for everything (including borrow checking)
and ofc there is a ton of stack overflow questions I checked but we don't care about that lol.
So in conclusion, I think I'll be able to flirt with girls a lot more easily now that I understand the principle of the borrow checker.
After digging more into the Bevy ecosystem, I saw an other manner to create a Game Rig,
By using plugin :'( I underestimate this feature, I think, I will use this instead in the future lol.
So if I want to see an other manner to make a simple video game, I can see this or something else, there are so many ways to dev a game with Bevy...