this post was submitted on 13 Jun 2023
14 points (100.0% liked)

Godot

5915 readers
23 users here now

Welcome to the programming.dev Godot community!

This is a place where you can discuss about anything relating to the Godot game engine. Feel free to ask questions, post tutorials, show off your godot game, etc.

Make sure to follow the Godot CoC while chatting

We have a matrix room that can be used for chatting with other members of the community here

Links

Other Communities

Rules

We have a four strike system in this community where you get warned the first time you break a rule, then given a week ban, then given a year ban, then a permanent ban. Certain actions may bypass this and go straight to permanent ban if severe enough and done with malicious intent

Wormhole

!roguelikedev@programming.dev

Credits

founded 1 year ago
MODERATORS
 

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

you are viewing a single comment's thread
view the rest of the comments
[–] russmatney@programming.dev 8 points 1 year ago

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 via godot --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.