Man, this question, every time.
Ideally I’d like to learn Rust in the process but maybe learning how to make a game and also Rust+Bevy at the same time is a bad idea. Maybe Godot would be better. Free and uses Python. Loads of community. I can learn game dev without learning Rust at the same time. I’m gonna have a lot to learn already.
Kinda sad not to do Rust… I was pretty curious about it and it would be useful for some other ideas I have … but I gotta focus. My goal now is to ship a demo.
Godot it is.
Anti-goal: learning Rust.
First things first, tutorial.
Tutorial Notes #
Scenes can be objects in the game world, weapons, NPCs or even heroes. They can have children -> Scene Tree.
Nodes are building blocks (I guess these are the Components in Entity-Component-System.)
Signals -> Observer pattern.
Scene files saved as .tscn
files… stands for “text scene.”
Can change properties on a scene and affect all instances of that scene. Can also change property of an instance.
Process: draw a scene diagram (basically a scene tree) then create a scene for each element. Then you can create instances in the editor or programmatically as needed.
Projects can mix langs. E.g., you can use GDScript for faster development and C++ for performance.
Huh. Microsoft donated to Godot to add C# support.
In a script, if you skip the extends ClassName
line, it will automatically extend RefCounted class.
_unhandled_input()
to respond to key presses and Input
singleton to check if a key is down.
First 2D Game: Dodge the Creeps #
“Dead zone.” Project Settings > Input Map tab. For joysticks, a dead zone value of 0.5 means you must move the stick halfway in a direction to get the minimum activation. If you move it 50% of the way you get 0% activation. If you move it 75% of the way you get 50% activation. 100% 100%.