기본 콘텐츠로 건너뛰기

Godot-Rust 개발환경 설정

Godot-Rust 개발환경 설정

우선은 개발환경을 설치해 보면서 하나씩 배워보면 좋을 것 이다. 공식 홈페이지에 GodotRust개발환경을 설정하는 방법이 자세히 나와있으니 각각 따라서 잘 설치하면 되지만, Godot과 Rust를 동시에 사용하기 위한 내용을 포함해 다시 정리해 본다.

앞선 게시물에서 Godot에서 C/C++ 바인딩을 위해 GDNative와 헤더를 제공한다고 적었는데, 이를 통해 Rust도 Godot과 바인딩해서 사용할 수 있다. 직접 GDNative와 바인딩 하는 것을 할 수도 있겠지만, 이미 godot-rust 오픈소스 프로젝트에서 안정적으로 바인딩된 상태이므로 이 프로젝트를 사용하면 다시 바인딩 할 필요없이 제공되는 gdnative crate를 사용함으로써 쉽게 Rust를 이용해 Godot 개발을 할 수 있다.

Godot Engine

  • Godot 공식 다운로드 페이지에서 자신의 OS에 해당하는 이미지를 받아서 적절한 폴더(예들들어, ~/Godot/)를 만들고 집어 넣는다.
  • 어느곳 에서도 실행 할 수 있도록, 환경변수에 path를 설정한다.
  • The godot-rust Book 페이지에는 3.2.3-stable을 지원하고 있다고 되어 있는데, 이는 cargo의 dependency에 gdnative crate 버젼을 0.9.3 으로 명시했을때고, 그렇지 않고 github의 주소를 적으면, 3.4.2 (이 글을 작성하는 최신버전) 까지도 문제없이 동작한다.

Rust

  • rustup 을 방문하면, rust 에서 공식적으로 제공하는 설치 이미지를 통해 Rust toolcahin을 설치 할 수 있다. (Ubuntu인 경우 curl 을 통해 받아서 설치됨)
  • 설치 후 다음과 같은 명령어를 통해 잘 설치 되었는지 확인할 수 있다.

LLVM

  • godot-rust 는 LLVM에 기반한 bindgen을 기반해 바인딩 되어 있기 때문에, LLVM 바이너리를 설치해야 한다.
  • 설치 후 다음 명령을 통해 설치가 잘 되어 있는지 확인 할 수 있다. 

템플릿 사용

godot-rust 프로젝트에서 godot 프로젝트와 rust 프로젝트 의 폴더 구조 및 보일러플레이트 코드가 설정된 템플릿을 제공하고 있다. 이 템플릿을 사용하려면 cargo 를 이용해 다음과 같이 설치 하면 된다. 사용해 본 바로는 아직 개발중 이라고 하지만 기본 틀을 잡아주니까 편리하게 이용할 수 있어서 좋았다.

VSCode 확장 설치

  • Rust를 위한 확장
    Rust를 위해서 Rust 혹은 rust-analyer 를 설치한다. 앞의 것은 공식 확장이고, 뒤의 것은 비 공식 확장인데 취향에 따라 설치해서 사용하면 된다. 

  • godot-rust 를 위한 확장
    godot-rust-vscode 가 있는데, 꼭 설치할 필요는 없지만, 설치하면 실행 및 디버깅등에 필요한 설정들을 쉽게 할 수 있다.

  • Debugging을 위한 확장
    CodeLLDB 를 설치한다. 디버깅을 할 때 사용된다.

댓글

이 블로그의 인기 게시물

Dodge The Creep - [1]

Dodge The Creep - [1] 환경 설정 Godot 공식 문서에 나와있는 2D 튜토리얼인 Dodge The Creep 게임을 Rust를 이용해서 따라 만들어 보자. 템플릿 복사 및 실행 우선 프로젝트 셋업을 해야 한다. 이 부분은 Rust를 이용한다고 해도 크게 바뀌는 부분은 없다. 하지만, GDScript를 이용한다면, Godot Editor를 이용해서 처음부터 하면 되겠지만, Rust를 이용하기 때문에 우선 cargo를 이용해 기본 프로젝트 template를 만들고 난 후, 생성된 godot 폴더에서 프로젝트 설정을 수정하도록 한다. $ cargo generate  - - git https: / / github.com / godot - rust / godot - rust - template  - - name dodge - the - creep - rust $ cd dodge-the-creep-rust $ cargo make run Colored by Color Scripter cs 위 명령들을 하나씩 살펴보면, cargo generate 를 이용해서 기본 템플릿을 이용한 프로젝트 폴더를 생성한다. 만들어진 프로젝트 폴더로 이동 cargo make run  명령을 이용해 빌드 및 실행 cargo generate   를 이용해 프로젝트를 생성했을 때, 기존 템플릿은 make를 이용했기 때문에, gdnative 문서 페이지를 보면  make run   으로 빌드 및 실행 명령어가 안내되어 있지만, 최근 cargo build를 이용하는 방식으로 변경 이 되어서 이제는 cargo make run  을 이용해서 실행해야 빌드 및 실행이 적절하게 동작 한다. 기존에는 비어있는 화면 이었는데, 최근 커밋 에는 기본으로 spinning cube 가 동작하도록 되어 있어서 최신 소스 기반으로 실행을 한다면 아래의 하면을...

[C#] 자동으로 특정 팝업창 닫기

[C#] 자동으로 특정 팝업창 닫기 Windows UI 테스트 혹은 자동화 작업을 할 때, 특정 윈도우창 혹은 팝업창이 뜨는 것을 인지 하고, 내용을 얻거나 버튼을 누르려면,  System.Windows.Automation 의 AddAutomationEventHandler 를 사용하면 된다. Hook 설정 4 번째 라인에서 WindowOpendEvent를 설정 함 으로써, 창이 열릴 때 hook이 걸린다. 7 번째 라인에서 event handler를 등록 한다. Event Handler 설정 8 번째 라인에서 element의 이름이 내가 찾는 이름인지 비교한다. 15번째 라인에서 팝업창의 내용을 출력 한다. 22번째 라인에서 팝업창의 자식 element중에 "N" 문자가 포함된 것 즉, 아니오 버튼을 찾는다. 24~25번째 라인에서 버튼을 누르는 동작을 수행 한다.