자주 묻는 질문들(FAQ)

Godot로 무엇을 할 수 있나요? 가격은 얼마인가요? 라이선스 조항은 어떻게 되나요?

Godot는 OSI가 인정한 MIT 라이선스로 사용할 수 있는 무료이자 오픈 소스 소프트웨어 입니다. 이것은 "무료 맥주" 만큼 뿐만 아니라 "자유 연설" 만큼의 자유를 의미합니다.

간단히 말해서:

  • 개인적으로, 비영리로, 사업으로, 그 외 어떤 이유든지 자유롭게 Godot를 다운로드하고 사용할 수 있습니다.
  • Godot를 마음대로 자유롭게 수정하고, 배포하고, 재배포하고 개조하실 수 있습니다, 그 이유가 비상업적이든지 상업적이든지 말이죠.

이 문서의 모든 내용은 크리에이티브 커먼스 저작자 표시 3.0 (CC-BY 3.0) 라이선스 하에, "Juan Linietsky, Ariel Manzur, Godot Engine 커뮤니티" 에 속합니다.

로고와 아이콘들은 일반적으로 동일한 크리에이티브 커먼스 라이선스로 사용할 수 있습니다. Godot의 소스 코드에 포함된 일부 타사 라이브러리는 라이선스가 다를 수 있으니 유의하세요.

전체 세부사항은 Godot 저장소에 있는 COPYRIGHT.txtLICENSE.txt, LOGO_LICENSE.txt 파일을 참고하세요.

Godot 웹사이트의 라이선스 페이지도 참고하세요.

Godot는 어떤 플랫폼을 지원하나요?

편집기의 경우:

  • Windows
  • macOS
  • X11 (Linux, *BSD)

내보내는 게임들의 경우:

  • Windows (그리고 UWP)
  • macOS
  • X11 (Linux, *BSD)
  • Android
  • iOS

64비트가 기본이지만 32비트와 64비트 모두 지원합니다.

또한 Raspberry Pi같은, Linux의 ARM 기반 시스템에서도 Godot를 성공적으로 사용했다는 일부 사용자들의 보고가 있습니다.

추가적으로, 콘솔 용으로 만들기 위한 비공식적인 외부 작업이 있습니다. 하지만, 아직 기본 빌드 스크립트나 내보내기 템플릿으로 포함된 것은 없습니다.

더 자세한 정보는 내보내기Godot를 직접 컴파일하기를 다루는 섹션을 참고하세요.

Godot는 어떤 프로그래밍 언어를 지원하나요?

Godot가 공식으로 지원하는 언어는 GDScript, Visual Scripting, C#, 그리고 C++입니다. 스크립팅 섹션에서 각 언어 별 하위 카테고리를 참고하세요.

대개 Godot 개발이나 게임 개발을 목적으로 엔진을 키게 된다면, GDScript가 Godot에 기본적으로 있기 때문에 추천하는 언어입니다. 스크립트 언어는 길게 본다면 다른 로우 레벨 언어보다 퍼포먼스가 떨어지지만, 프로토 타입이나 소규모 제품을 제작하거나, 개발 시간에 중점을 둔다면, GDScript는 게임을 개발하는데 빠르고, 친절하고, 유능한 방법을 제공해 줄 것입니다.

C# 지원은 아직 비교적 최근에 시작했기 때문에, 오류를 발견하실 수도 있습니다. 우리의 친절하고 부지런한 개발 커뮤니티에서 언제나 새 문제를 해결할 준비가 되어있지만, 이것은 오픈 소스 프로젝트이므로, 스스로 해결해 보시는 것을 추천합니다. 문제를 해결하기 위해 open issues에서 토론을 찾아보시는 것도 좋은 출발점입니다.

새로운 언어에 관해서, GDNative / NativeScript / PluginScript 기능으로 다른 언어를 지원할 수 있습니다. (아래에 플러그인에 관한 질문을 참고하세요.) 예를 들어 Godot에 PythonNim의 비공식 바인딩 개발이 진행 중입니다.

GDScript는 무엇이고 왜 이것을 써야하나요?

GDScript는 Godot의 통합된 스크립트 언어입니다. 이것은 초심자와 전문 개발자가 동등하게 Godot의 강점을 가능한 빨리 활용할 수 있도록 짧은 코드로도 Godot의 잠재력을 극대화할 수 있도록 바닥부터 지어졌습니다. 이전에 Python 비슷한 언어를 사용해 보신 적이 있다면 익숙하실 겁니다. GDScript가 제공하는 예제, 역사, 그리고 전체 개요는, GDScript 스크립팅 가이드를 참고하세요.

GDScript를 사용하는 여러 이유가 있습니다--특히 프로젝트의 알파/베타 맵의 프로토타입을 만들 때나, AAA급의 게임을 만들려는 것이 아니라면 말이죠-- 그러나 전체적으로 가장 두드러진 이유는 복잡성 감소입니다

Godot를 위한 커스텀 스크립트 언어를 만들게 된 원래 의도는 두 가지 입니다: 먼저, Godot를 키고 실행하는 많은 시간을 줄여서, 개발자는 생산성에 중점을 두고 엔진에 빠르게 접근할 수 있습니다; 두 번째로, 그것은 전반적인 유지 보수의 부담을 줄여주고 문제의 어려움을 줄이고 엔진 개발자가 엔진 핵심 버그를 없애고 기능을 발전하기에 집중할 수 있습니다--작지만 많은 기능을 뽑아내려고 많은 언어들에서 많은 시간을 사용하지 않게 됩니다.

Godot가 오픈 소스 프로젝트가 되면서부터, 더 통합적이고 추가 사용자 유치를 위한 완벽한 경험을 제공하기 위해 더 친근한 프로그래밍 언어를 지원하는 것이 최우선이었습니다--특히 더 친근한 언어가 더 나쁜 결과를 내보낼 때 그랬습니다. 우리는 Godot에서 다른 언어를 사용하는 것을 이해합니다 (하단에 지원하는 옵션들을 참고하세요). 즉, GDScript를 사용해보지 않으셨다면, 3 일 동안 한번 사용해보세요. Godot처럼, GDScript가 개발하는 것을 빠르게 할 만큼 강력하다는 것을 본다면, 우리는 GDScript가 당신을 키운다고 생각합니다.

GDScript 또는 동적 타입 언어에 익숙해지고 싶다면 GDScript: 동적 언어 소개 튜토리얼을 참고하세요.

GDScript를 제작하게 된 동기가 무엇입니까?

Godot를 위한 커스텀 스크립트 언어를 개발하게 된 주요 이유는 이러합니다:

  1. 대부분 스크립트 가상 머신에서는 좋은 스레드 지원이 없습니다, 하지만 Godot는 스레드를 지원합니다 (Lua, Python, Squirrel, JS, AS 등등.).
  2. 대부분 스크립트 가상 머신은 클래스 확장 지원이 좋지 않은 데다, Godot의 작동 방식에 맞춰 변형하자면 너무 비효율적입니다 (Lua, Python, JS).
  3. 많은 존재하는 언어들은 C++ 바인딩을 위한 끔찍한 인터페이스를 가지고 있습니다, 코드 양이 많아지고 버그, 병목, 그리고 종합적인 비효율을 낳습니다 (Lua, Python, Squirrel, JS 등.) 우리는 많은 통합이 아닌, 좋은 엔진에 중점을 두었습니다.
  4. 자체적인 벡터 타입이 없어 (vector3, matrix4, 등) 커스터 타입을 사용함으로써 퍼포먼스가 크게 줄어듭니다 (Lua, Python, Squirrel, JS, AS 등).
  5. 가비지 컬렉터가 처리 지연과 쓸데없이 큰 메모리 사용을 초래합니다 (Lua, Python, JS, AS 등).
  6. 코드 완성, 실시간 편집 등을 지원하기 위한 코드 편집기와의 결합이 (전부) 까다롭습니다. GDScript는 이 부분이 아주 잘 지원됩니다.

GDScript는 위와 같은 문제들을 줄이고자 설계되었습니다.

Godot에서는 무슨 유형의 3D 모델을 지원하나요?

Godot는 OpenCollada 내보내기를 통해 Collada를 지원합니다 (Maya, 3DSMax).

Blender를 사용하신다면, 우리의 Better Collada Exporter를 보세요.

Godot 3.0부터는, glTF도 지원합니다.

FBX SDK는 제한적인 라이센스를 갖고 있기 때문에, Godot의 오픈 라이선스와 맞지 않습니다. 이는 즉, FBX 지원은 아직 타사의 플러그인을 통해서만 사용할 수 있습니다.(아래의 플러그인 질문을 참고하세요.)

Godot에서 [FMOD, GameWorks 등 폐쇄형 SDK]가 지원될까요?

Godot의 목표는 모듈 방식이고 확장 가능한 무료이자 오픈 소스 MIT 라이선스 엔진을 만드는 것입니다. 핵심 엔진 개발 커뮤니티가 폐쇄 소스/독점 SDK를 지원하도록 하는 계획은 없습니다, 이것들을 통합하는 것은 Godot의 정신에 반대되는 것입니다.

즉, Godot는 오픈 소스이고 모듈화 되어있으므로, 어느 누구라도 폐쇄형 라이브러리를 모듈로 추가해서 여러분의 게임에 사용해 출시해도 무방합니다--오픈 소스든지 폐쇄 소스든지 말이죠.

선택한 SDK를 지원하도록 하는지 알아보려면, 아래 플러그인 질문을 참고하세요.

혹시 Godot가 지원하진 않지만 무료이고 오픈 소스로 제공하는 다른 SDK를 아신다면 직접 통합 작업을 시작해보세요. Godot는 한 사람의 것이 아닙니다; 커뮤니티에 속해 있고, 당신과 같은 야심 찬 커뮤니티 공헌자들과 함께 자랍니다.

다양한 해상도와 화면비에 대응하려면 어떻게 애셋을 만들어야 할까요?

이 질문은 자주 나타났고 애플이 기기의 해상도를 원래 두배로 했기 때문에 나온 오해이므로 다행일지도 모릅니다. 이때문에 사람들이 같은 애셋을 다른 해상도로 만드는 것이 좋은 생각으로 여기고, 많은 사람들이 그렇게 했습니다. 그것은 원래 애플 기기에서만 효과가 나타났습니다, 하지만 다양한 해상도와 종횡비를 가진 몇몇 Android와 애플 기기가 만들어졌습니다, 매우 큰 화면과 해상도를 가지면서요.

가장 일반적이고 적합한 방법은, 게임을 위한 하나의 기본 해상도를 사용하고 가로 세로 비율 만을 다르게 하는 것입니다. 이것이 2D에 대부분 필요합니다만, 3D에서는 카메라 X시야나 Y시야의 단순한 문제입니다.

  1. 게임을 위한 기본 해상도를 고르세요. 해상도가 2K까지 올라가는 기기나 400p까지 내려가는 기기가 있더라도, 여러분들의 기기 안에 있는 정규 하드웨어 스케일링은 이 점을 퍼포먼스 비용으로 다루진 않을 겁니다. 대부분의 선택은 1080p (1920x1080)이나 720p (1280x720) 근처입니다. 해상도가 높을수록, 애셋은 더 커지고, 더 많은 메모리를 먹고 더 긴 로딩이 걸릴 것이니 명심하십시오.
  2. Godot에서 늘이기 옵션을 사용해보세요; 크기 비율을 유지하는 2D 늘이기가 좋습니다. 사용하는 방법은 Multiple resolutions 튜토리얼에서 확인해보세요.
  3. 최소 해상도를 선택한 다음, 게임의 화면을 다른 화면비에 맞게 수직이나 수평으로 펴낼 것인지, 아니면 화면비를 유지하는 대신 검은 여백이 나타나게 할 것인지를 정합니다. 이 또한 Multiple resolutions에서 설명합니다.
  4. 사용자 인터페이스에 대해서는, anchoring을 보고 컨트롤이 이동하거나 정지해야 할 위치를 결정하세요. UI가 더 복잡하다면 Container 사용을 고려해보세요.

다 됐습니다! 게임이 이제 다양한 해상도에서 작동합니다.

(가로 300화소도 안되는) 오래된 기기의 작은 화면에서도 게임이 작동하기를 정말 원하시다면, 내보내기를 통해 이미지를 수축시켜 앱스토어나 구글 플레이에 적합한 화면으로 만들 수 있습니다.

어떻게 Godot를 확장할 수 있나요?

Godot 편집기 플러그인 제작이나 추가적인 언어 지원을 하고 싶으시다면, 편집기 플러그인과 tool 스크립트를 참고하세요.

또한 이 항목에 대한 공식 블로그 게시물도 참고하세요:

또 GDScript의 구현, Godot 모듈들, Godot를 위한 비공식 Python 지원을 살펴볼 수도 있습니다. 이것이 Godot가 어떻게 다른 라이브러리와 통합하는 지를 보여주는 좋은 출발점이 될 것입니다.

저도 이 프로젝트에 기여하고 싶어요! 어떻게 시작해야 하나요?

멋집니다! 오픈 소스 프로젝트인 만큼, Godot는 당신 같은 혁신적이고 야심 찬 개발자들에 의해 번창합니다.

처음으로 시작해야 할 부분은 issues입니다. 당신이 공감할만한 이슈를 찾으신 다음, 변경사항과 함께 Pull Request (PR)를 포크 요청, 수정 및 제출하는 법을 배우기 위해 기여하는 방법 가이드를 진행하세요.

Godot에 대한 좋은 아이디어가 있습니다. 이걸 어떻게 드릴 수 있나요?

Godot로 아이디어를 가져오는 것이, 마치 거대한 핵심 변화를 가져오거나, 다른 종류의 게임 엔진을 흉내 내거나, 편집기에 내장하길 원하는 대체 워크플로가 생기는 것 같아서, 매력적일 것이라고 생각합니다. 이것들은 위대하고 그래서 우리는 그러한 사람들이 기여하길 원하는 것에 감사하고 있습니다, 하지만 Godot의 초점은 로드맵에 요약한 대로 핵심 기능과, 버그를 없애고 이슈를 다루는 것, 그리고 Godot 커뮤니티 회원과의 대화입니다.

Godot 커뮤니티의 대부분 개발자들은 이런 것들을 배우는 데 더 흥미를 가질 겁니다:

  • 소프트웨어를 사용한 경험과 문제 (우리는 이것을 향상시키기 위한 아이디어보다 더 중요하게 여깁니다).
  • 프로젝트에 필요해서 구현하고자 하는 기능들.
  • 소프트웨어를 배우면서 이해하기 어려운 개념들.
  • 워크플로를 최적화시키고 싶은 부분들.
  • 깔끔한 튜로리얼이 없거나 깔끔하지 않은 문서 부분들.

그러니, Godot가 여러분의 생각을 달갑게 여기지 않는다고 생각하진 마세요. 다만, 개발자들과 커뮤니티가 생각을 바탕으로 기술적 토대를 마련하기 위해, 먼저 문제점 순으로 재구성해주세요.

커뮤니티와 생각과 문제를 공유하는 좋은 방법은 이야기를 말하는 것입니다. 당신이 무엇을 하려 했고, 어떤 일을 예상했는데, 그 뒤 실제로는 어떤 일이 발생했는지를 설명하세요. 이 방법으로 문제와 생각을 세우는 것은 전체 커뮤니티가 개발자 경험을 향상시키는데 집중하도록 도울 것입니다.

스크린샷이나, 특정 값, 실험 사례, (가능하다면) 예제 프로젝트를 가져오면 추가 점수가 될 것입니다.

어떻게 Godot 개발을 돕거나 후원할 수 있나요?

Ways to contribute를 참고하세요.

Godot는 누가 만드나요? 제가 연락할 수 있을까요?

같은 Godot 웹사이트 페이지에서 참고하세요.