Welcome to Tutorial Tuesday! This is a weekly thread where you can post any kind of tutorial for how to do things using Godot or request one from others
Text tutorials, video tutorials, image tutorials, linking to a post in the community, etc. are all allowed. If you feel it deserves its own post feel free to instead post it as a separate post and then link it here
I was curious about writing one-off scripts in Godot, so here’s a tiny example for doing that in Godot 4.
./hello-godot.gd (also in my dotfiles):
#!/usr/bin/env -S godot --headless --script extends SceneTree func _init(): print("hello godot!") print("args", OS.get_cmdline_args()) quit()
Note the first line, which invokes godot and includes the
--headless
and--script
arguments. You can read more about these args viagodot --help
.Once the script has executable permissions (typically via
chmod +x hello-godot.gd
), you can run it in a shell like:./hello-godot.gd "some arg" "some other arg" 123
That should output something like:
hello godot! args["-s", "/home/russ/.local/bin/hello-godot.gd", "some arg", "some other arg", "123"]
This kind of thing can be useful for running tests via something like GUT (which is where I started digging into this), or exporting games in scripts/CI.
Which makes me think I should look into how some of those godot CI docker images run - maybe there are other arguments/features/best-practices there to build on.
Very cool! Debating on remaking some heartbeast tutorials for Godot 4 (specifically the prodcederul tile generation with a walker and tilemap to 3d level + optimizations). Curious if people would be interested in that or not though, thoughts?
This would be great!
I’m new to Godot, but I’ve leaned on proc gen in game jams in the past to avoid static level design under time constraints ¯\_(ツ)_/¯