얼마만큼 식량을 주어야 할까?

By | 2010/09/17

  사실 이 글은 예전에 대항해시대 2 게임을 하면서 ‘이 생각을 블로그에 적어야지!’라고 다짐 먹었던 적이 있습니다. 그런데 블로그 검색을 해보니 그러한 글이 없습니다. 그러다 대항해시대 2 게임을 스마트폰에서 즐기다가 생각이 나서 스크린샷을 찍어 이 글을 적습니다.

 

  대항해시대 2를 하면 진기한 물건이나 동/식물, 유적 등을 발견해야 모험 명성이 쌓입니다. 그러나 이런 것은 오직 마을에서만 발견할 수 있습니다.

  항해 중 마을을 발견하여 그 곳에 상륙하면 다음과 같은 메뉴가 나옵니다.

1282901513314

  당연히 발견을 하기 위해서 Search를 누릅니다.

1282901519979

  하지만 발견하지 못했다고 하네요. 아무래도 실력이 얕거나 발견물이 어려운 곳에 있거나 하는 듯싶습니다.

  그럼 어떻게 해야 할까요? 나 자신의 능력이 안 된다면 협력을 해야겠지요.

1282901527468

  그래서 마을 사람들과 친해지기 위해 배에 있는 식량을 나눠주면서 즐깁니다.

1282901532201

  그렇다면 마을 사람들이 친밀도가 상승합니다. 그들이 발견물을 찾는데 도움을 준다고 하는군요. 그래서 다시 Search에 도전합니다. 하지만 결과는 앞에서처럼 아무것도 찾지 못한다고 하네요.

  그럼 다시 친밀도를 높여봅니다.

1282901545825

1282901558588

  한 번 식량을 나눠주고 즐길 때마다 친밀도는 5씩 증가합니다. 하지만 어느 정도로 올려야 발견물을 찾을 수 있을지 모릅니다. 그래서 한 번 올리고 한 번 탐색하고 한 번 올리고 한 번 탐색하고를 찾을 때까지 반복합니다.

1282901590587

  그러다 결국 발견했다고 합니다!

1282901596654

  맨드릴이라… 하긴 특이하기는 하죠. 여하튼 발견을 했습니다.

1282901603864

  그럼 이제 더 이상 마을에 있을 이유가 없습니다. 그러하여 배는 마을을 떠나 항해를 계속 진행합니다.

 

  위의 알고리즘을 한 눈에 그림으로 그리면 다음과 같습니다.

c009

  즉, 발견물을 찾을 때까지 배의 식량을 한 번씩 나눠주는 것입니다.

1282901513314

  하지만 여기에 문제점이 있습니다. 바로 귀차니즘입니다. 즉, 분기점인 ‘발견물을 찾았는가?’를 위해 Search 메뉴를 누르고, 발견했는지 확인을 한 후 그렇지 않으면 다시 Entertain을 누르는 일을 해야 합니다. 즉, 어차피 Entertain으로 친밀도를 높여야 하는데, 그 사이에 Search 헛수고를 하는 것입니다. 이런 결과로 인해 마을에 상륙 후 발견물을 찾고 떠나는 시간이 버튼을 누르는 시간 때문에 오래 걸립니다.

 

  그래서 조금 다른 알고리즘을 고안해보았습니다.

c008

  즉, 배의 식량을 나눠주는 일을 어느 정도 이상으로 계속 반복을 한 후 발견물 찾기를 수행하는 것입니다. 여기서 ‘적절히 주었는가?’에 대한 판단은 컴퓨터에게 물어볼 필요가 없이 제 뇌 속에서 판단하여 처리하기에 매우 빠릅니다. 따라서 전체적인 처리 속도는 빨라졌다고 할 수 있습니다.

  물론 이것의 단점은 있습니다. 예를 들어 친밀도가 15정도에 발견물을 발견할 수 있는데 ‘적절히’의 기준을 30으로 잡았다면 나머지 15만큼을 올리기 위해 귀중한 배의 식량을 사용하는 것입니다.

  그래도 배의 식량보다 제가 게임 플레이를 하는데 드는 시간 단축 및 귀차니즘 방지가 더 소중한 적이 많았기에 이 방법을 자주 사용하였습니다.

 

  지금 컴퓨터 공학을 4년 가량 배우면서 드는 생각은 이런 생각입니다.

CPU에서 I/O 등에 명령을 내리면 그동안의 delay가 매우 심하다. 따라서 비효율적이다. 따라서 적절히 미래를 예측하여 수행한 후 I/O 등에 명령을 내리는 것을 최소화 한다면 더욱 빠를 것이다. 비록 예측이 실패한다면 그 비용은 무시 못할 것이다. 그럼에도 필요하다면 사용할 것이다.

  너무 공학적으로 얘기하였나요?^^;;OTL 그 외에 유저 경험적인 측면에서도 이러한 것을 적용할 수 있지 않을까 싶습니다.

 

  생각을 거슬러 올라가니 이 생각을 제가 대항해시대 2를 접했던 초등학생 때 했습니다. 그 때는 두 번째 알고리즘을 만드는 것으로 끝냈는데, 이제 거기에 살을 더 붙일 수 있게 되었네요.

  앞으로 연구를 하게 된다면 이런 아이디어에 살을 붙이고 더하여 새로운 것을 창조할 수 있을까요? 그런 기대를 하며 이 글을 마칩니다.

2 thoughts on “얼마만큼 식량을 주어야 할까?

  1. 루돌프

    제목을 보니 대항해시대의 시리즈를 관통하는 명대사가 생각나는군요…

    “균등보급 하겠나?”

    크흐…

    Reply
    1. NoSyu

      하지만 저런 마을 때문에 식량을 더 많이 구입한 후 항해한 적도…OTL…ㅜㅜ
      보급은 균등이지만 소비는 어떻게 될지 모르는 것이기에 어려운가 봅니다.

      Reply

Leave a Reply