나만의 어드벤처 게임 만들기
Sierra가 King's Quest 및 Space Quest와 같은 초기 PC 모험을 만들지 않았다면 삶이 어떠했을까요? The Secret of Monkey Island, Day of the Tentacle 또는 Full Throttle과 같은 고전적인 Lucasarts 게임이 없다면 우리는 어디에 있을까요?
우리는 문화적으로 상실하고 슬플 것입니다. 그리고 최근 몇 년 동안 장르에 대한 유명 진입이 둔화되었지만 포인트 앤 클릭 어드벤처 게임은 결코 죽지 않았습니다. Monkey Island 베테랑인 Ron Gilbert와 Gary Winnick이 만든 Thimbleweed Park는 최근 큰 인기를 얻었으며 Tim Schaffer의 Double Fine은 현대 시대를 위해 개발자의 고전 게임을 리마스터링하기 위해 노력하고 있습니다.
자신만의 커뮤니티를 만드는 대규모 커뮤니티가 있다는 사실에 놀라지 않을 것입니다. 대부분은 이전의 고전 Sierra 및 Lucasarts 게임을 에뮬레이트하는 가장 쉬운 방법인 Adventure Game Studio를 사용합니다.
무료 AGS 게임이 많이 있지만 일부는 상업적 성공을 거두기도 합니다. Sylpher.com (새 탭에서 열림) 에 있는 instagame 팩의 몇 가지 무료 자산의 도움으로 시작하겠습니다 . 하지만 자신만의 어드벤처 게임을 개발할 때 자신만의 그래픽을 만들고 싶을 것입니다.
1. 다운로드 및 설치
Adventure Game Studio 웹사이트 (새 탭에서 열림) 로 이동하여 최신 버전의 소프트웨어를 다운로드합니다. 작성 당시에는 3.4.0 패치 4입니다.
또한 AGS(Adventure Game Studio)에 대한 다양한 백엔드 요구 사항을 처리하는 Visual C++ 2008 서비스 팩 1 재배포 가능 패키지 (새 탭에서 열림) 를 구해야 합니다 .
먼저 설치한 다음 AGS 설치 프로그램을 실행합니다. 옵션이 제공되면 모든 항목을 선택된 상태로 두고 나머지 설치 프로그램에서 '다음'을 클릭한 다음 메시지가 표시되면 '설치'를 클릭합니다. 소프트웨어를 처음 실행하려면 '마침'을 클릭하고 새 게임 만들기를 시작하려면 '계속'을 클릭합니다.
2. 프로젝트 설정
새로운 게임 마법사는 자유롭게 실험할 수 있는 다양한 옵션을 제공합니다.
이 튜토리얼에서는 두 개의 버튼을 사용하는 단순한 Beneath a Steel Sky 스타일 인터페이스(LW_BASS_v2.0)를 사용합니다.
이렇게 하면 복잡성이 줄어듭니다. Lucasarts 9 동사 템플릿을 선택하면 많은 글을 작성해야 합니다.
게임 이름과 파일 이름을 입력하고 '마침'을 클릭하여 게임 설정을 완료합니다.
'빌드 > 실행'을 클릭하여 포함된 샘플 콘텐츠를 보고 인터페이스가 무엇을 할 수 있는지 감을 잡으십시오.
3. 방 만들기
방은 게임에서 액션이 일어나는 곳입니다. 인터페이스 오른쪽에 있는 '프로젝트 탐색' 창에서 '방'을 확장하고 '1:'을 마우스 오른쪽 버튼으로 클릭한 다음 사전 설치된 기본 방을 삭제합니다.
그런 다음 '방'을 마우스 오른쪽 버튼으로 클릭하고 빈 방 템플릿으로 새 방을 삽입합니다. 더하기 아이콘을 클릭하여 새 방을 확장한 다음 '방 편집'을 두 번 클릭합니다.
'변경' 버튼을 클릭하고 객실 아트워크를 찾으십시오. 우리의 경우 Instagame 팩의 이미지 중 하나를 선택했습니다. 하지만 가져오기 전에 자신만의 이미지를 만들어 PNG 형식으로 저장하는 것이 좋습니다.
4. 룸 속성
Adventure Game Studio에게 방을 처리하는 방법을 알려주십시오. 위의 드롭다운 상자를 사용하여 방의 가장자리를 표시하고 이를 끌어 방의 한계에 맞춥니다.
같은 상자를 사용하여 '보행 가능 영역'을 선택하고 위의 도구 모음에 있는 도구를 사용하여 캐릭터가 이동할 수 있는 영역을 마스킹합니다. 지우려면 오른쪽 버튼을 클릭하고 드래그합니다.
이제 드롭다운 상자를 사용하여 룸의 핫스팟을 표시합니다. 플레이어가 잠재적으로 상호 작용하거나 조사할 수 있거나 언급할 가치가 있는 것입니다.
오른쪽에 있는 속성 위의 드롭다운 상자를 사용하여 다른 핫스팟을 선택하여 걸을 수 있는 영역을 그린 것처럼 페인트합니다. 설명과 'h'로 시작하는 이름을 사용하여 각각의 이름을 변경해야 합니다. 예를 들어 침대의 디자인 이름은 hBed입니다.
5. 이벤트 코딩
그래서 우리는 어떤 일을 할 때 일이 일어나도록 해야 합니다. 이것을 보여주는 가장 간단한 방법은 우리가 핫스팟과 상호 작용할 때 캐릭터가 무언가를 말하도록 하는 것입니다.
핫스팟 속성 위의 번개 모양 아이콘을 클릭하여 이벤트 패널을 보고 '핫스팟 보기' 옆에 있는 줄임표 버튼을 클릭합니다. 무섭게 보이지만 실제로는 그다지 무섭지 않은 코딩 패널로 이동하게 되며 루틴의 가장자리가 이미 배치되어 있습니다.
회의실 탭으로 돌아가서 동일한 방식으로 핫스팟과 상호 작용하기 위한 이벤트를 추가합니다.
이제 실제로 주인공이 무언가를 말하게 하려면 각 이벤트를 나타내는 중괄호 사이에 다음 형식으로 줄을 입력합니다.
player.Say(“I am saying something.”);
대문자부터 대괄호, 따옴표, 마지막에 있는 화나게 하는 세미콜론까지 모든 것이 중요합니다.
캐릭터가 여러 줄을 말하게 하려면 다른 플레이어를 입력하세요. 다음 줄에 명령을 말하세요. 모든 것이 중괄호 안에 있는지 확인하십시오.
6. 테스트 및 조정
개발의 중요한 부분은 테스트입니다. 언제든지 상단 도구 모음에 있는 작은 재생 버튼을 눌러 게임을 시작하여 모험이 어떻게 진행되고 있는지 정확히 확인할 수 있습니다.
지금 시도해보세요. 여러분이 입에 넣은 단어를 캐릭터가 말하기 시작하는 것을 보는 것만큼 좋은 것은 없습니다.
하지만 몇 가지를 변경하고 싶을 수도 있습니다. 예를 들어 캐릭터가 샘플 룸의 일부 개체 위를 걷고 있다는 것을 알았으므로 걸을 수 있는 영역을 조정해야 했습니다.
코드 중 하나라도 잘못된 경우 여기까지 도달하지 못할 것입니다. Adventure Game Studio는 잘못 발견된 부분에 대해 경고하고 주위를 샅샅이 뒤져 수정해야 합니다.
7. 더 많은 방
우리 캐릭터는 갈 곳이 정말 필요합니다. 이전에 했던 것처럼 다른 방을 설정한 다음 원래 방으로 돌아가 출입구 옆에 새 핫스팟을 그립니다. 먼저 속성 창 상단에서 새 항목을 선택합니다. 이렇게 하지 않으면 아무 것도 할 수 없습니다. 그리기는 원래 작업 중이던 핫스팟에 추가됩니다.
우리는 출구를 생성하고 있으므로 그것이 어디에 있는지 기록해 두겠습니다. 마우스를 방 위로 가져가서 이것에 대한 x,y 좌표를 얻고 바로 위에 있는 숫자를 확인하십시오. 이것은 (보통) 캐릭터의 발 바닥을 나타냅니다. 그러니 명심하십시오.
이전과 마찬가지로 약간의 Interact 스크립트를 추가하고 코드를 작성하기 전에 두 번째 방으로 이동하여 캐릭터를 표시할 좌표를 계산합니다. 첫 번째 방의 스크립트로 돌아가서 문 상호 작용의 중괄호 사이에 다음과 같은 내용을 추가합니다.
player.Walk(168,193, eBlock);
player.ChangeRoom(2, 100, 50);
이렇게 하면 플레이어가 특정 좌표로 이동하여 eBlock 인수 덕분에 플레이어가 스크립트를 계속 진행하기 위해 해당 지점까지 걸어갈 때까지 기다립니다. 그런 다음 적절한 좌표에서 플레이어 스프라이트를 방 2로 보내고 플레이어 캐릭터이므로 게임도 방을 전환합니다.
8. 친구 사귀기
다른 캐릭터를 추가해봅시다. 캐릭터 트리로 이동해야 한다고 생각할 수도 있지만 실제로 이 프로세스는 스프라이트를 추가하는 것으로 시작됩니다. 스프라이트 트리를 확장하고 캐릭터 폴더에 들어가 공백을 마우스 오른쪽 버튼으로 클릭하고 '파일에서 새 스프라이트 가져오기'를 선택합니다.
스프라이트 시트를 찾습니다. 자신만의 스프라이트를 만드는 경우 쉽게 가져올 수 있도록 각 스프라이트가 등거리에 배치되었는지 확인한 다음 스프라이트 중 하나의 전체 영역을 마우스 오른쪽 버튼으로 클릭하고 드래그하여 노란색 상자를 만듭니다.
이 덮개를 첫 번째 스프라이트에 놓고 왼쪽 클릭하면 당겨집니다. 작업을 반복하면 마스크가 올바른 크기로 유지되므로 애니메이션의 다음 프레임을 클릭하기만 하면 됩니다.
9. 좋아 보인다
이제 보기를 추가하려면 캐릭터의 걷기, 말하기 또는 기타 작업 수행을 나타내는 특정 스프라이트를 선택합니다. '보기'를 마우스 오른쪽 버튼으로 클릭하고 '새 보기'를 선택합니다.
'새 루프 만들기'를 클릭하면 분홍색 상자가 나타납니다. 이 첫 번째 보기인 '아래'는 플레이어가 카메라를 향해 걸어갈 때 사용되며 모든 애니메이션의 첫 번째 스프라이트는 캐릭터가 움직이지 않을 때 사용됩니다.
분홍색 상자를 두 번 클릭하고 가져온 스프라이트 중 첫 번째를 선택합니다. 걷는 애니메이션을 하는 경우(저희는 그렇지 않습니다. 캐릭터는 정적입니다) 이제 동일한 방식으로 프레임을 추가하고 스프라이트를 가져올 수 있습니다.
새 루프를 만들 때마다 다른 방향을 커버합니다. 작업을 마치면 말하는 캐릭터에 대한 다른 보기를 설정하고 적절한 이름을 지정하고 말하는 스프라이트가 적절한 방향을 향하도록 포함합니다.
이제 거의 완료되었습니다. 실제로 캐릭터를 설정할 수 있습니다. 탐색 창에서 '캐릭터'를 마우스 오른쪽 버튼으로 클릭하고 '새 캐릭터'를 선택합니다.
속성 창에서 일반 보기를 작업한 첫 번째 애니메이션으로 설정하고 음성 보기를 두 번째로 설정합니다.
훑어보고 다른 값(이름, 시작 방(우리는 새 방에 우리 챕터를 배치할 예정임), 새 캐릭터의 좌표)을 설정하고 게임을 실행하여 새로 추가된 작업을 확인합니다.
10. 채팅하기
현재 새 캐릭터와 상호 작용하는 것은 그다지 좋지 않으므로 빠른 대화를 생성해 봅시다.
대화 섹션으로 이동하여 마우스 오른쪽 버튼을 클릭하고 '새 대화'를 선택합니다. 왼쪽에 있는 버튼을 사용하여 질문을 추가하고 각 @-숫자 항목과 반환 문 사이에 선행 'c' 없이 ScriptNames 문자를 사용하여 대화를 작성합니다. 따라서 이 예에서는 cGirl과 cMan 간의 대화를 작성합니다.
@1
Girl: Hello!
Man: Nice to meet you.
return
@2
Girl: Goodbye!
Man: Cheers.
stop
최종 항목에서 return 문을 'stop'으로 바꾸면 플레이어가 계속 탐색할 수 있도록 대화가 종료됩니다.
대화를 캐릭터 상호 작용에 할당하려면 오른쪽 창에서 적용하려는 캐릭터를 두 번 클릭한 다음 속성 창에서 이벤트 번개 모양을 클릭합니다.
줄임표 버튼을 사용하여 해당 문자와 상호 작용하기 위한 스크립트를 추가한 다음 중괄호 사이에 다음과 유사한 줄을 입력합니다.
dDialog1.Start();
자연스럽게 첫 번째 부분을 내부적으로 대화 상자 이름을 지정한 것으로 바꾸십시오. 테스트해 보십시오. 이제 새 캐릭터와 상호 작용할 수 있음을 알 수 있습니다.
눈치채셨겠지만 이 튜토리얼에서는 표면을 간신히 훑어보았습니다. 항목, 퍼즐 또는 의미 있는 스크립팅에 대해서는 다루지 않았습니다.
그러나 우리가 희망적으로 한 것은 Adventure Game Studio가 겉모습에도 불구하고 실제로 얼마나 위협적이지 않고 직관적인지를 보여줍니다.
그것으로 하고 싶은 것이 있고 액션 게임을 만들 수 있을 만큼 유연한 엔진이라면, 결정했다면 소프트웨어와 함께 제공되는 도움말 파일을 확인하거나 온라인 설명서(새 탭에서 열림)를 참조 하십시오 .
행운을 빕니다. 여러분의 창작물이 기대됩니다.
- 더 복잡한 게임을 만들고 싶으신가요? Python 가이드 에서 나만의 어드벤처 게임을 코딩하는 방법을 확인하세요.