글 작성자: Doublsb

전 시간 자료 : http://doublsb.tistory.com/62

저번 시간에는 Input의 이해를 통해 메뉴 호출 키를 변경해 보았다.


이번 시간에는 테스트 게임이 아닐 때에도 디버그 씬을 부를 수 있게 만들어 보자.




테스트 게임일 경우, 디버그 씬을 부르는 키는 F9키이다. 이 메소드는 Scene_Map에 있다. 한 번 내용을 살펴보도록 하자.


  def update_call_debug

    SceneManager.call(Scene_Debug) if $TEST && Input.press?(:F9)

  end


update_call_debug 메소드는 만약 테스트 게임이고, F9키를 눌렀을 경우 디버그 씬으로 이동시킨다.

이 중 테스트 게임이 아닐 때에도 디버그 씬을 부를 수 있게 만드려면, 어느 부분을 수정해야 할까?


바로, $TEST라는 조건을 빼는 것이다.


  def update_call_debug

    SceneManager.call(Scene_Debug) if Input.press?(:F9)

  end


이와 같이 수정하면 테스트 게임이 아니더라도, F9를 눌러 언제든지 스위치나 변수의 정보를 수정할 수 있다.

하지만 이대로 게임을 만들어 제출해도 별 의미가 없을 것이다. 어떤 부분에 응용해야 적절할까?


내가 생각하기로는, 게임의 엔딩을 보고 난 후 보상의 의미로 디버그 씬을 부를 수 있게 하는 방법이 좋다고 생각한다.

또는 아예 디버그 씬도 게임의 일부로 만들어버리는 것이다. 두 가지의 경우를 한 번 시도해보도록 하자.




1. 엔딩을 보고 난 후 디버그 씬을 부를 수 있게 만들기

이 경우, 4편에서 사용했던 방법과 비슷한 방법을 쓰게 될 것이다. 4편에서는 변수를 새로 선언해서 값에 따라 게임 도중 타이틀 화면을 바꾸는 법을 다뤘었는데, 이 경우에서도 한번 비슷하게 이용해보도록 하자.


  def update_call_debug

    SceneManager.call(Scene_Debug) if Input.press?(:F9) && 조건

  end


디버그 씬을 부르는 조건을 추가하려면, 언제든 Input.press?(:F9) 뒤에 &&를 붙이고 조건을 써 넣으면 된다.

4편에서 했던 것처럼 게임 이벤트에 $함수이름 = 1을 선언하여 조건을 붙이는 방법도 생각해볼 수 있을 것이다.


여기에 4편의 링크를 달아두겠다. 게임 이벤트에서 전역 변수를 선언하는 방법이 중반 이후부터 나와 있다.

http://doublsb.tistory.com/58


혹은 7편에서 살펴보았던 Input을 이용할 수도 있다. 게임 엔딩을 보고 난 후, Ctrl키와 F9키를 같이 누르면 디버그 씬을 불러올 수 있다는 정보를 주고 그 조건을 적용하기만 하면 된다. 이 경우 스크립트는 다음과 같이 수정할 수 있을 것이다.


  def update_call_debug

    SceneManager.call(Scene_Debug) if Input.press?(:F9) && Input.press?(:CTRL)

  end




2. 디버그 씬을 게임의 일부로 만들기

요새 유행하는 게임 장르가 바로 메타픽션이다. 메타픽션이란, 게임을 현실과 동떨어지도록 만드는 것이 아닌, 게임 속 인물과 플레이어가 마치 실제로 대화를 나눌 수 있는 것 처럼 만드는 게임 장르를 의미한다.

예시로는 직접 플레이어에게 말을 거는 당신과 그녀의 사랑(토토노)라던가, 세이브/로드를 게임 속 등장인물이 이해하고 있는 언더테일같은 게임을 들 수 있겠다.


알만툴로도 이러한 게임을 만드는 것은 가능하다. 게임을 진행하다가 디버그 씬을 부르는 키를 플레이어에게 제공하고 그 기능을 게임 속 인물들이 알고 있으며, 영향을 받는다는 설정으로 이용할 수도 있다. 이 경우 제작자가 여러가지 경우의 수에 따라 다양한 이야기를 제공해야 하지만 충분히 흥미로운 요소가 될 수 있을 것이다.


예를 들어보자. A라는 인물은 이 곳이 게임 속 세상이라는 것을 알고 있고, 디버그 씬의 존재를 알고 있어 플레이어가 그에 접근하지 못하게 막으려 한다. 하지만 플레이어는 게임을 계속 진행하므로 결국 디버그 씬의 존재를 알아버리고, 실제로 그를 이용해 변수와 스위치를 조작해 인물의 호감도를 자유자재로 바꿀 수도 있다.

하지만 A라는 인물은 이러한 디버그 씬의 조작에 영향을 받지 않는다. A는 끊임없이 플레이어에게 경고하고 디버그 씬을 이용하지 못하게 방해한다. 이러한 갈등 상황에서 플레이어는 A라는 인물과 실제로 싸우게 된다.


위의 내용은 어디까지나 방금 생각해 낸 예시이기에, 여러분은 좀 더 재밌는 방법으로 디버그 씬을 이용할 수 있으리라 생각한다.

반응형