본문 바로가기

레퍼런스/고도엔진

(28)
고도엔진 튜토리얼 #18 행렬과 변환(Matrices and transforms) 도입 이 튜토리얼를 읽기 전에 벡터 수학과 연속적인 내용이기 때문에 벡터 수학에 대한 설명을 읽어보는 것이 좋습니다. 이 튜토리얼에서는 변환에 대해서 다룰 것이며 행렬에 대해 조금 다룰 것입니다(그렇게 깊은 탐구는 하지 않습니다). 변환은 대부분의 시간을 이동, 회전, 크기 조정을 조정하는 데에 대부분의 시간을 사용하므로 이들이 가장 높은 우선순위로 고려될 것입니다. 객체 좌표 시스템 (OCS) 우주선이 공간 어디엔가 있다고 생각해보세요. 고도에서 이 우주선을 움직이고 회전하는 건 쉬운 일입니다 : 좋습니다, 2D에서 위치와 각을 회전에 사용하는 것은 간단해보입니다. 하지만 우리는 여기까지 오면서 각을 사용하지 않았다는 것을 기억하세요 (추가적으로, 각은 3D에서조차 그렇게 유용하게 사용되지 않습니다)...
고도엔진 튜토리얼 #17 벡터 수학(Vector math) 도입 이 자그마한 튜토리얼은 3D와 2D에 유용한 벡터 수학의 짧고 실용적인 소개를 하는 것이 목표입니다. 다시, 벡터 수학은 3D 뿐만 아니라 2D 게임에도 유용합니다. 여러분이 한 번만 잡아두면 복잡한 행동도 더욱 쉽게 프로그래밍 하게 해주는 놀라운 도구가 됩니다. 종종 젊은 프로그래머들이 2D 게임의 벡터 수학 대신 삼각 함수를 사용하는 것과 같이, 광범위한 문제를 해결하기 위해 잘못된 수학에 너무 많이 의존하게 되는 경우가 있습니다. 이 튜토리얼은 즉시 게임의 예술에 적용 가능한 실용적인 부분에 초점을 맞추었습니다. 좌표 시스템 (2D) 전통적으로, 좌표는 x는 수평값을 그리고 y는 수직값을 지니는 (x, y)의 한 쌍으로 정의합니다. 주어진 스크린이 2차원의 사각형인 경우에만 이것이 성립합니다...
고도엔진 튜토리얼 #16 커맨드라인 튜토리얼(Command line tutorial) 몇몇 개발자는 널리 커맨드라인을 이용하는 것을 좋아합니다. 고도는 이들에게 친화적으로 설계되었습니다. 그래서 완전히 커맨드라인을 이용해 작업하는방법을 단계적으로 보여드리죠. 엔진이 외부 라이브러리에 거의 의존하지 않는 경우 초기화 시간이 매우 빠르므로 이 워크플로우에 적합합니다. 경로 고도 바이너리는 결로 설정 환경 변수에 포함 시키는 것이 좋으며, 그러면 godot을 입력해 어디에서나 쉽게 실행할 수 있습니다. 리눅스에서는 /usr/usr/local/bin에 고도 이진파일을 넣고 godot이라고 불리는 것을 확인해 그렇게 할 수 있습니다. 프로젝트 만들기 커맨드라인으로 프로젝트를 만드는 것은 간단합니다. 쉘을 다니다가 원하는 곳에 만약 비어있다면 engine.cfg 파일을 만드세요. user@host:..
고도엔진 튜토리얼 #15 유니티에서 고도엔진까지(From Unity3D to Godot Engine) 이번 번역은 긴 문장이 많아서 문맥 상 이상한 점이 있을 수 있습니다. 영어를 하실 줄 아시면 직접 페이지를 보는 걸 추천드려요.-------------------------------------------------------------------------------------------------------------------------------------------- 이 가이드는 유니티 사용자의 관점에서 고도엔진을 살펴볼 수 있도록 합니다. 그리고 여러분의 유니티 사용 경험을 고도의 세상에서 사용할 수 있도록 도와주는 것이 목표입니다. 차이점 유니티 고도 라이센스 수익 한도 및 사용 제한이 있는 독점적, 폐쇄적, 무료 라이센스 MIT 라이센스, 무료이며 아무 제한없는 오픈 소스 운영체제(편집기..
고도엔진 튜토리얼 #14 2D와 3D 키바인딩(2D and3D keybindings) 2D 뷰포트 Q, W, E로 마우스, 시점 이동, 시점 회전 선택 선택 :F : 선택한 것 보기Delete : 선택한 것 삭제Ctrl-D : 선택한 것 복사하기 작동 :오른쪽 마우스 : 취소S : 스냅을 가능하게 하다V : 피봇 변환(스프라이트) 뷰포트 : 가운데 마우스 / 스페이스와 움직이는 키 : 패닝휠 업 : 줌 인휠 다운 : 줌 아웃 선택 모드에서 :Ctrl + 왼쪽 마우스 : 선택된 것 돌리기Shift + 왼쪽 마우스 : 선택된 것 움직이기 3D 뷰포트 Q, W, E, R 각각 마우스 모드, 시점 이동, 시점 회전, 줌 인과 줌 아웃 모드 선택 :F : 선택된 것 보기Delete : 선택된 것 삭제Ctrl-D : 선택된 것 복사 작동 : 가운데 마우스 : 축 고정오른쪽 마우스 : 샂게S : 스냅..
고도엔진 튜토리얼 #13 하나씩 일어나는 일(오토로드) (Singletons (AutoLoad)) 도입 씬 싱글톤(하나씩 일어나는 일 - 싱글톤)은 씬 사이에 지속적인 정보를 저장해야 하는 일반적인 사용 사례에 맞게 구성하는데 굉장히 유용합니다. 매우 강력하기는 하지만, 씬 시스템 자체에 몇 가지 단점이 있습니다 : 하나 이상의 씬에서 필요한 정보(플레이어의 아이템 등)를 저장할 공동의 공간이 없습니다.다른 씬을 로드하고 언로드하기 위한 장면의 경우에는 자식들이 그런 자식 씬에 공통된 정보를 저장하는 것이 가능하지만, 이러한 장면들이 스스로 실행되고 제대로 작동하기를 기대할 수는 없다.정보가 디스크의 'user://'에 저장될 수 있고 이 정보가 필요한 씬에서 로드될 수 있습니다. 계속해서 씬이 바뀔 때 이 데이터를 저장하고 로드하면 번거롭고 느릴 것입니다. 하지만 고도에서는 여전히 씬의 부분을 만드..
고도엔진 튜토리얼 #12 씬트리(SceneTree) 도입 여기가 추상적으로 변해가기 시작하는 지점입니다. 하지만 이것보다 더 어려운 것은 없으니 겁내지 마세요. 앞선 튜토리얼에서 노드의 개념과 노드로 이루어진 씬들이 돌아다니고 있습니다. 이것들은 씬 트리에 들어가면 활성화됩니다. 이 개념은 좀 더 자세히 볼 필요가 있습니다. 사실 씬 시스템은 고도의 핵심 구성요소도 아닙니다. 서버에 직접 연결되는 스크립트(또는 C++ 코드_를 작성하고 건너뛸 수 있기 때문입니다. 하지만 그런 식으로 게임을 만드는 것은 많은 일을 해야 할 것입니다. 메인 루프 고도가 내부적으로 작동하는 방법은 다음과 같습니다. 여기에 처음에 실행되는 유일한 인스턴스인 운영체제 클래스가 있습니다. 그런 다음, 모든 드라이버, 서버, 스크립팅 언어, 장면 시스템 등이 로드됩니다. 초기화가 완..
고도엔진 튜토리얼 #11 파일 시스템(File system) 도입 파일시스템은 아직 엔진 개발에서 뜨거운 주제입니다. 파일 시스템은 어떻게 에셋이 저장되고 접근되는 지 관리합니다. 잘 설계된 파일시스템은 다수의 개발자에게 협업할 때 같은 소스 파일과 에셋을 편집할 수 있게 해줍니다. 고도엔진의 초기 버전은 (그리고 고도라고 이름 붙이기도 전의 것들도) 데이터베이스를 사용햇습니다. 에셋은 데이터베이스 안에 저장되고 ID를 할당받았습니다. 로컬 데이터베이스, 메타 데이터 파일 등 다른 방식도 시도했습니다. 결국 간단한 접근이 채택되어 지금의 고도는 모든 에셋을 파일로 파일 시스템에 저장합니다. 이행 파일시스템은 자원을 디스크에 저장합니다. 스크립트, 씬 또는 PNG 이미지 등 어떤 것도 엔진의 자원입니다. 만약 자원이 디스크에 있는 다른 자원을 참조하는 속성을 포함하..