타지않는 놀이터

[고도4] Part.1 - 14 메인메뉴와 엔딩과 실행파일 만들기 본문

강좌/Godot 4 - Part.1

[고도4] Part.1 - 14 메인메뉴와 엔딩과 실행파일 만들기

김메가 2024. 2. 17. 14:02

이번 시간에는 게임을 켰을 때 나타나는 메인 메뉴와 끝까지 클리어 했을 때 나타나는 엔딩 화면을 만들고, 고도엔진을 설치하지 않은 일반 플레이어들이 게임을 플레이할 수 있도록 실행 파일을 만드는 과정을 따라해볼 것이다.

 

우선 메인 메뉴부터 시작하자. 메인 메뉴를 만들기 위하여 프로젝트 폴더에 새 씬을 하나 생성해주자.

 

Root TypeUser Interface, 씬의 이름은 main_menu로 설정해주면 된다.

 

이렇게 씬을 생성하고 열렸으면

 

Label노드를 생성하고

 

Anchor preset으로 중앙에 위치시킨 후

 

인스펙터에서 게임의 제목을 입력하고

 

글자 크기를 64로 키워준 다음

 

위치를 중앙에서 살짝 위로 옮겨준다.

 

이제 게임 시작 버튼을 만들자. Button노드를 생성해준다.

 

버튼 노드의 크기를 적당히 조절해준 다음

 

Anchor preset으로 중앙에 위치시킨다.

 

인스펙터에서 버튼에 표시될 시작텍스트를 입력해주고

 

폰트 크기를 보기 편할 만큼 키워준다.

 

메인 화면의 노드 배치는 완료되었다. 이제 버튼이 실제 작동하도록 스크립트를 작성하자.

 

새로운 스크립트 파일을 생성해도 되지만, 작성해야 할 내용이 restart_button.gd와 거의 비슷하니 해당 스크립트 파일을 복제해서 약간만 수정해보자.

 

restart_button.gd를 우클릭하고 [Duplicate…]메뉴를 선택한다. (또는 restart_button.gd를 선택하고 Ctrl+D)

 

restart_button.gd를 복제한 새 스크립트 파일의 이름을 start_button.gd으로 정한 다음

 

생성된 start_button.gd을 열고 내용을 스크린샷과 같이 수정한다.

 

수정된 스크립트를 저장하고, Button노드로 드래그하여 시작 버튼에 스크립트를 붙여주면 메인 화면 완성이다.

 

이제 게임 실행 시 main_menu씬이 가장 먼저 나타나야 하므로 해당 씬을 메인 씬으로 설정해주자. 이미 한번 해봐서 알겠지만 씬 파일의 이름이 파란색으로 표시되면 메인 씬으로 지정되어 있다는 의미이다.

 

게임을 실행시키면 메인 메뉴가 뜨고, 시작 버튼을 누르면 stage_1으로 진입하는 모습을 볼 수 있다.

 

이제 엔딩 화면을 만들자. 엔딩이라고 별 건 아니고, 그냥 게임을 클리어했다는 텍스트와 함께 메인 화면으로 되돌아가는 버튼을 보여줄 뿐이다. 텍스트 하나와 버튼 하나라는 구조가 메인 메뉴 씬과 완전히 일치하니 이를 복제해서 엔딩 씬도 만들자.

 

main_menu.tscn을 복제하자.

 

파일 이름은 ending_scene.tscn으로 명명하자.

 

생성된 ending_scene을 열고

 

Label text속성을 게임을 클리어 했습니다로 바꿔주자. 그런데 글자 수가 달라지니 텍스트가 살짝 왼쪽으로 치우쳐졌다.

 

글자 수에 상관없이 텍스트의 위치가 중앙을 유지하도록 스크린샷과 같이 수평 정렬 속성을 Center로 설정해주자.

 

이번에는 버튼을 수정할 차례다. Button노드의 text속성에 처음으로를 입력하자.

 

그리고 스크립트를 수정해야 하니 원래 붙어있던 스크립트는 제거하자.

 

start_button.gd파일을 복제하여 새 스크립트 파일을 만들자. 스크립트의 파일명은 main_scene_button.gd로 하면 된다.

 

main_scene_button.gd파일을 열고 스크린샷과 같이 코드를 수정해준다.

 

그리고 main_scene_button.gd를 드래그하여 Button에 달아준다.

 

마지막으로 최상위 노드의 이름을 Ending으로 바꿔주자. 안 바꿔도 상관없기는 한데, 엔딩 화면의 최상위 노드 이름이 그대로 MainMenu라고 되어있으면 좀 찝찝하다.

 

엔딩 화면 제작 완료.

 

엔딩의 제작을 완료했으니 엔딩으로 진입하는 방법도 있어야 할 것이다. 현재 이 게임의 마지막 스테이지인 stage_2씬을 열고, 깃발 씬을 드래그하여 배치해준다.

 

ending_scene.tscn의 경로를 복사해서

 

stage_2에 배치된 깃발의 next_scene_path속성에 붙여넣기 해준다.

 

이제 게임을 실행해보자. 시작 버튼을 눌러서 stage_1에 진입하고, 깃발에 도달하여 stage_2에 진입, 또 깃발에 도달하여 엔딩 씬으로 진입하고, 엔딩 씬에서 [처음으로]버튼을 클릭하면 메인 화면으로 되돌아간다.

 

매우 작고, 간단하고, 재미없지만, 확실히 기능하는 하나의 게임이 완성되었다.

 

이제 이 게임을 일반 유저들에게 배포할 수 있도록 실행파일을 만들어보자. 에디터 좌상단의 Project메뉴에서 Export…를 선택한다.

 

이렇게 Export창이 나타나면

 

Add…버튼을 클릭하고 Windows Desktop을 선택한다. (혹시나 사용하고 있는 컴퓨터의 OS가 맥이라면 macOS를 선택해도 괜찮다)

 

그럼 윈도우 실행파일을 만들 수 있는 프리셋이 추가되는데… Export templates이 없어서 실행파일을 만들 수 없다는 빨간 메시지가 나타났다.

 

Export templates을 다운로드 받기 위하여 Export창을 잠시 끄고, 에디터 좌상단의 Editor메뉴에서 Manage Export Templates…를 선택하자.

 

그럼 스크린샷과 같이 Export Template Manager가 나타난다. 여기서 Download and Install버튼을 클릭하면 현재 이용 중인 고도엔진 버전에 맞는 Export templates을 다운로드하기 시작한다.

 

Export templates100% 다운로드 될 때까지 기다리면 된다. Export templates의 용량 자체는 1GB도 안 되지만, 해외 서버에서 다운로드 하는 거라서 다운로드 속도가 느릴 수 있다. 필자의 경우 다운로드 완료까지 3시간 걸렸으니 잠시 신경 끄고 딴 짓하고 있자.

 

다운로드가 완료되었으면 스크린샷과 같이 Export templates이 저장된 경로가 나타난다. 이제 실행파일을 만들 수 있다.

 

아까와 같이 Project메뉴의 Export..를 선택하자.

 

그리고 실행파일이 저장될 경로와 이름을 지정하자. 스크린샷에 강조된 폴더 모양 버튼을 클릭하면 된다.

 

실행파일이 저장될 폴더를 열고, 실행파일의 이름을 작성한 뒤 Save버튼을 클릭한다.

 

이제 실행파일을 생성할 준비가 끝났다. Export Project…버튼을 클릭하자.

 

실행파일이 저장될 경로를 선택하는 창이 나타날 것인데, 이미 지정해 놓았으니 그냥 Save 버튼만 누르면 된다.

 

그럼 해당 경로에 이렇게 3가지 파일이 생성될 것이다.

 

- 1. 게임의 실행 파일이다. 이를 실행하면 게임을 즐길 수 있다.

- 2. 콘솔창과 함께 게임을 실행시키는 파일이다. 별로 쓸 일은 없고 그냥 삭제해버려도 된다.

- 3. 게임이 포함하는 여러 리소스(이미지, 음성 등등)를 저장해둔 파일이다.

 

게임을 배포할 때에는 1번과 3번파일을 함께 배포하면 된다.

 

파일을 실행하여 엔진과 독립적으로 게임이 잘 돌아가는지 확인해보자.

 

잘 된다면, 이것으로 Part.1은 끝이다.

 

우리가 Part.1에서 만든 이 게임은, 매우 초보적이고 조잡하게 만들어졌으며 고도엔진의 기능을 제대로 활용하지 못하고 있다. 앞으로 진행될 Part.2부터 본격적으로 고도의 각 기능을 학습하고 적용하여 이 조잡한 게임을 개선하고 기능을 추가해 나가도록 하자.