명령줄(Command line) 튜토리얼

일부 개발자들은 명령줄을 광범위하게 사용하는 것을 좋아합니다. Godot는 그들에게 친절하게 설계되었고, 명령줄에서 완전히 작업하는 순서가 있습니다. 엔진은 외부 라이브러리에 거의 의존하지 않아서, 초기화 시간이 매우 빠르고, 이 워크플로에 적합하게 만듭니다.

Command line reference

General options

Command 설명
-h, --help, /? Display the list of command line options.
--version Display the version string.
-v, --verbose Use verbose stdout mode.
--quiet Quiet mode, silences stdout messages. Errors are still displayed.

Run options

Command 설명
-e, --editor Start the editor instead of running the scene (tools must be enabled).
-p, --project-manager Start the project manager, even if a project is auto-detected (tools must be enabled).
-q, --quit Quit after the first iteration.
-l <locale>, --language <locale> Use a specific locale (<locale> being a two-letter code). See Locales for more details.
--path <directory> Path to a project (<directory> must contain a 'project.godot' file).
-u, --upwards Scan folders upwards for 'project.godot' file.
--main-pack <file> Path to a pack (.pck) file to load.
--render-thread <mode> Render thread mode ('unsafe', 'safe', 'separate'). See Thread Model for more details.
--remote-fs <address> Remote filesystem (<host/IP>[:<port>] address).
--audio-driver <driver> Audio driver. Use --help first to display the list of available drivers.
--video-driver <driver> Video driver. Use --help first to display the list of available drivers.

Display options

Command 설명
-f, --fullscreen Request fullscreen mode.
-m, --maximized Request a maximized window.
-w, --windowed Request windowed mode.
-t, --always-on-top Request an always-on-top window.
--resolution <W>x<H> Request window resolution.
--position <X>,<Y> Request window position.
--low-dpi Force low-DPI mode (macOS and Windows only).
--no-window Disable window creation (Windows only). Useful together with --script.

Debug options

주석

Debug options are only available in the editor and debug export templates (they require debug or release_debug build targets, see 대상 for more details).

Command 설명
-d, --debug Debug (local stdout debugger).
-b, --breakpoints Breakpoint list as source::line comma-separated pairs, no spaces (use %%20 instead).
--profiling Enable profiling in the script debugger.
--remote-debug <address> Remote debug (<host/IP>:<port> address).
--debug-collisions Show collision shapes when running the scene.
--debug-navigation Show navigation polygons when running the scene.
--frame-delay <ms> Simulate high CPU load (delay each frame by <ms> milliseconds).
--time-scale <scale> Force time scale (higher values are faster, 1.0 is normal speed).
--disable-render-loop Disable render loop so rendering only occurs when called explicitly from script.
--disable-crash-handler Disable crash handler when supported by the platform code.
--fixed-fps <fps> Force a fixed number of frames per second. This setting disables real-time synchronization.
--print-fps Print the frames per second to the stdout.

Standalone tools

Command 설명
-s <script>, --script <script> Run a script.
--check-only Only parse for errors and quit (use with --script).
--export <target> Export the project using the given export target. Export only main pack if path ends with .pck or .zip (tools must be enabled).
--export-debug <target> Like --export, but use debug template (tools must be enabled).
--doctool <path> Dump the engine API reference to the given <path> in XML format, merging if existing files are found (tools must be enabled).
--no-docbase Disallow dumping the base types (used with --doctool, tools must be enabled).
--build-solutions Build the scripting solutions (e.g. for C# projects, tools must be enabled).
--gdnative-generate-json-api Generate JSON dump of the Godot API for GDNative bindings (tools must be enabled).
--test <test> Run a unit test. Use --help first to display the list of tests. (tools must be enabled).

경로

Godot 바이너리를 PATH 환경 변수에 넣어서, godot를 입력하면 어느 곳이든 쉽게 실행하도록 하는 것을 추천합니다. Linux에서 Godot 바이너리를 /usr/local/bin에 배치하여, godot라고 부르게 하세요.

프로젝트 경로 설정하기

Godot 바이너리의 위치와 현재 작업 디렉토리의 위치에 따라, 다음 명령 중 하나가 제대로 작동하려면 프로젝트의 경로를 설정해야 합니다.

프로젝트의``project.godot`` 파일에 대한 경로를 다음과 같이 첫 번째 인자로 주면 됩니다:

[email protected]:~$ godot path_to_your_project/project.godot [other] [commands] [and] [args]

혹은 --path 인자를 사용합니다:

[email protected]:~$ godot --path path_to_your_project [other] [commands] [and] [args]

예를 들어, (아래에서 설명할) 게임을 내보내는 전체 명령은 다음과 같을 것입니다:

[email protected]:~$ godot --path path_to_your_project --export my_export_preset_name game.exe

프로젝트 생성하기

명령줄에서 프로젝트를 생성하려면 셸을 원하는 위치로 이동하고 project.godot 파일을 작성하십시오.

[email protected]:~$ mkdir newgame
[email protected]:~$ cd newgame
[email protected]:~/newgame$ touch project.godot

프로젝트는 이제 Godot로 열릴 수 있습니다.

편집기 실행하기

편집기는 -e 플래그를 실행해서 실행됩니다. 작업은 프로젝트 디렉토리 또는 하위 디렉토리에서 수행해야 합니다, 그렇지 않으면 명령이 무시되고 프로젝트 관리자가 나타납니다.

[email protected]:~/newgame$ godot -e

씬을 만들고 저장한다면, 나중에 해당 씬을 인수로 사용하여 동일한 코드를 실행하여 편집할 수 있습니다.

[email protected]:~/newgame$ godot -e scene.tscn

씬 지우기

Godot는 당신의 파일 시스템과 친하고 추가적인 메타데이터 파일을 만들기 않을 것입니다. rm 을 사용해 씬 파일을 지웁니다. 참조하는 씬이 없다면 오류가 발생할 것입니다.

[email protected]:~/newgame$ rm scene.tscn

게임 실행하기

게임을 실행하려면, 간단히 프로젝트 디렉토리나 하위 디렉토리에서 Godot를 실행하면 됩니다.

[email protected]:~/newgame$ godot

특정 씬을 테스트 해야 하는 경우 씬을 명령줄로 전달하세요.

[email protected]:~/newgame$ godot scene.tscn

디버깅

명령줄에서 에러를 계산하는 것은 그냥 지나칠 수 있기 때문에 어려운 작업이 될 수 있습니다. 이를 위해 명령줄 디버거는 -d를 추가하여 제공합니다. 게임이나 간단한 씬을 실행하는 데 모두 사용됩니다.

[email protected]:~/newgame$ godot -d
[email protected]:~/newgame$ godot -d scene.tscn

내보내기(Exporting)

명령줄에서 프로젝트를 내보내는 것도 지원됩니다. 특히 연속적인 통합 설정에 유용합니다. Godot의 헤드리스 버전은 (서버 빌드, 비디오 없음) 이런 점에서 이상적입니다.

[email protected]:~/newgame$ godot --export "Linux/X11" /var/builds/project
[email protected]:~/newgame$ godot --export Android /var/builds/project.apk

--export 스위치가 인식하는 플랫폼 이름은 편집기의 내보내기 마법사에 표시된 것과 동일합니다. 명령줄에서 지원하는 플랫폼 목록을 얻기 위해, 인지하지 않는 플랫폼으로 내보내기를 시도하고 그러면 구성이 지원되는 전체 플랫폼 목록이 나타날 것입니다.

게임의 디버그 버전을 내보내기 위해, --export 대신 --export-debug 스위치를 사용하세요. 매개 변수와 사용법은 동일합니다.

스크립트 실행하기

명령줄에서 .gd 스크립트를 간단하게 실행할 수 있습니다.특히 일괄 변환 또는 커스텀 가져 오기/내보내기를 위한, 큰 프로젝트에서 유용합니다.

스크립트는 SceneTree나 MainLoop에서 상속해야 합니다.

어떻게 작동하는 지의 예제입니다:

#sayhello.gd
extends SceneTree

func _init():
    print("Hello!")
    quit()

그리고 어떻게 실행하는 지의 예제입니다:

[email protected]:~/newgame$ godot -s sayhello.gd
Hello!

project.godot이 경로에 존재하지 않으면, 현재 경로는 (-path 가 지정되지 않는 한) 현재 작업 디렉토리로 가정합니다.