11
08

 

오늘은 공식 문서에 있는 2D 게임 튜토리얼을 따라해보자.

튜토리얼 링크 : https://docs.godotengine.org/en/stable/getting_started/first_2d_game/index.html#prerequisites

 

 

이 튜토리얼을 통해서 배울 수 있는 건 아래와 같다.

  • Godot editor를 통해 2D 게임을 완전히 만들어본다.
  • 간단한 게임의 구조 설계법
  • 플레이어 캐릭터를 움직이고 애니메이션을 주는 법
  • 랜덤으로 적을 스폰하는 법
  • 점수를 세는 법
  • 등등

 

1. 프로젝트 세팅하기

참고로 색 테마는 내가 따로 바꿔준 것

 

처음 godot을 시작하면 보이는 화면은 프로젝트 메니저 창이다.

여기서 godot으로 생성된 프로젝트 목록을 볼 수 있다.

지금은 Create 버튼을 눌러서 새 프로젝트를 생성해주자.

 

먼저 해줘야할 일은 프로젝트의 창 크기를 지정해주는 것이다.

좌측 위 Project > Project setting > Display > Window 로 들어간 뒤, 가로 세로 480*720으로 설정해준다.

또 그 밑 Stretch에서 Mode : canvas_items, Aspect : keep 으로 설정해준다.

 


 

 

1-2. 프로젝트의 구성

 

위에서 프로젝트를 만들어준 경로를 타고 들어가보면 위와 같은 폴더 구조가 생성되어 있음을 확인할 수 있다.

godot 엔진 안에서 만든 스크립트, Scene, 이미지 어셋 등은 모두 이 폴더에 개별 파일로 저장된다.

 

godot editor에서는 좌측 하단 file system 안 res:// 폴더 밑에 이 항목들이 나열되어 있다.

.gitignore 같은 파일들은 여기 표시되지 않는다.

 

우리는 이 프로젝트에서 Main 씬 안에 Player, Mob, HUD라는 3개의 독립적인 씬을 만들어줄 것이다.

 

더 큰 프로젝트에서라면 여러가지 씬과 스크립트를 위한 폴더들을 각각 만드는 것이 유용하겠지만, 우리가 지금 만들 게임은 상대적으로 작은 프로젝트다. 그러므로 당장은 모든 어셋을 res:// 안에 넣어도 상관없음.

 


 

2. 플레이어 생성

 

플레이어가 직접 컨트롤할 캐릭터를 생성해주자. 즉, godot 안에 Player scene을 만들어주자.

Player를 따로 생성해주는 건 중요한 일이다. 왜냐하면 게임 내 다른 시스템들이 완성되지 않았더라도, Player만 있으면 개발중인 기능을 바로바로 테스트할 수 있기 때문이다.

 


 

2-2. 노드 구조

 

시작하기 전에, 우리는 플레이어 오브젝트의 루트 노드(즉, 최상위 노드)를 골라줘야한다.

보통 씬의 루트 노드는 "해당 씬이 무엇인지"를 반영하는 게 좋다. 

 

일단 우리는 Other node를 클릭해 Area2D 노드를 추가해보자.

 

Area2D 노드는 플레이어와 겹치거나, 충돌하는 물체를 감지하는 역할을 한다. 해당 노드 이름을 Player로 변경해주자. 이제 이 밑에 노드를 주렁주렁 달아줌으로써 기능을 확장시켜 나가면 된다.

 

노드 이름은 Player, 타입은 Area2D

 

그런데 그 전에, Player 노드를 실수로 클릭해 이동하거나 크기가 조정되지 않도록 만들어줄 수도 있다. 하단 ui 캡처를 참고해 버튼을 눌러보자.

 

이건 그룹 기능이다. 선택한 노드를 그룹으로 만들어주는데, 그럼 그 밑에 있는 노드를 클릭하더라도 최상위 그룹의 노드가 선택되게 만들 수 있다.

 

 

이제 플레이어 노드(저장하고 싶은 노드)를 선택한 채로 ctrl + s 혹은 cmd + s를 눌러 씬을 저장해주자.

 


 

 

다음 글에선 스프라이트 애니메이션을 추가해주는 것부터 시작할 예정.

COMMENT