기본 콘텐츠로 건너뛰기

스냅샷 어드벤쳐스 : 시크릿 오브 버드 아일랜드

리뷰 2007/05/09 00:02

제작사 : Large Animal Games
발매연도 : 2007
가격 : 19.95$
사진기로 유령만 잡지 말고, 새도 찍자!









새... 새가 노래한다! 원래 사진을 찍는 것 자체가 재미있는 일이죠. 그래서 예전 필카 시절부터 수많은 이들이 카메라에 미쳤고, 디카 지나 폰카의 대중화 후 수많은 사람들이 별의 별 사진을 다 찍고 있습니다. 왜? 재밌으니까. 그런 요소를 게임으로 적용하는 건, 어쩌면 매우 당연한 겁니다. 누구나 사진을 찍는 시대니까요. '자연 속의 새 사진을 찍는다'는 행위 자체는, 무척 정적이면서도 동적입니다. 새를 찾아 헤매야 할테고, 원하는 동작을 취할때까지 기다려야만 할테니까요. 그걸 게임화하며 단순화시켰지만, 여전히 어려운 부분은 어렵습니다. 앉아있는 새 한 방 찍으면 날아가서 추가타가 힘들고, 날아가는 새 찍으려면 아주 곤욕이니까. 그런 어려움을 보완하기 위해 아이템이 있습니다. 커피를 먹으면 세상이 느려져서 움직임을 찍기 쉬워지고, 줌 렌즈로 당겨서 더 큰 사진을 찍을 수도 있지요. 많은 아이템 중 일부만 갖고 들어가는 제약을 해놓았는데, [인사니콰리움(Insaniqaurium)]을 떠올리는 이 제약은 뭘로 플레이하냐에 따라 플레이 방식과 난이도가 조금씩 달라져서 꽤 큰 재미를 줍니다. 기본적인 스테이지 클리어는 쉽지만, 잘 찍은 사진 - 더 많은 종류의 새를 찍으려면 많은 노력을 해야 합니다. 이 부분이 게임을 묘하게 만드는데, 그냥 클리어만 하려는 기본 미션은 어지간해서 다 깰 수 있는 난이도지만, 더 잘 나온 사진 - 아직 찍지 못한 새의 모습을 촬영하려면 좀 더 어려워지죠. 물론 그냥 등떠밀지는 않고, 새 사진 앨범을 제공해 수집욕을 높입니다. 하나 둘 씩 앨범이 차는 모습을 보고 있노라면, 정말 많은 생각이 들죠. 스테이지 끝마다 같은 새의 겹치는 사진들 중 1장만 골라서 보관하고 나머지 버리는 작업도 꽤 스릴 만점. 뭐가 더 잘 나오고 좋은 사진인지는 플레이어의 눈에 의해 결정되므로, 미묘하게 헷갈리는 수준의 사진들 중 골라내는 재미도 있습니다. 찍은 새의 사진은 이메일로 친구에게 보낼 수도 있으니, 뭔가 자랑질하는 재미도 크지요. 그리고 결정적으로, 이 게임은 전 세계에서 가장 많은 동물 소리를 보유하고 있다는 Macaulay Library at the Cornell Lab of Ornithology의 감수도 받아, 실제 새의 모습 - 소리 - 서식지 등을 잘 살리고 있습니다. 딱히 의도를 하지는 않았다지만, 나름대로 에듀테인먼트의 역할도 해주고 있다는.단점이라면 '왜 내가 새 사진따위 찍고 있어야 하지?'라는 의문이 들면 아웃이라는 거. 엄청나게 특이한 소재라서 오히려 재미가 큽니다만, 그걸 실제로 해보기가 쉽지 않을 수 있곘네요. 그 외에는 단점 생각도 나지 않고, 찾고 싶지도 않군요.'새 사진을 찍는' 동호인들이 어딘가 있다고는 들었지만, 그 빡세고 엄한 작업을 왜 하나 궁굼했었습니다. 이 게임을 통해, 어느정도 공감하게 되었네요. 솔직히 '새 사진을 찍는 게임' 따위가 얼마나 재밌겠냐고 저도 생각했습니다만, 이거 명작의 반열입니다. 이제 남은 건, 이 게임의 클론이 얼마나 많이 나오냐는 것일지도.

게임 받는 곳 : 공식 홈페이지
출처 : http://pig-min.com/

댓글

이 블로그의 인기 게시물

[Unity3D] 모바일에서 스크롤바 안에 있는 버튼 클릭 문제

해당 씬 이벤트시스템에 아래 코드를 적용하면 된다. using UnityEngine; using UnityEngine.EventSystems; /// /// Sets the drag threshold for an EventSystem as a physical size based on DPI. /// public class PhysicalDragThreshold : MonoBehaviour {  private const float inchToCm = 2.54f;  [SerializeField]  private EventSystem eventSystem = null;  [SerializeField]  private float dragThresholdCM = 0.5f;  void Start ()  {   if (eventSystem == null)   {    eventSystem = GetComponent();   }   SetDragThreshold();  }  private void SetDragThreshold()  {   if (eventSystem != null)   {    eventSystem.pixelDragThreshold = (int)(_dragThresholdCM * Screen .DPI / inchToCm);   }  } }

[UNITY3D] iOS Xcode로 archive를 하는데 먹통이 되는 현상

Too slow to compile archive in xcode (IL2CPP) 오늘 하루종일 한 일이 배포용 버전 만드는 일이었다. ㅎㅎ 개발 버전으로 빌드 테스트 잘 되어서 외부 테스터들을 위해서  배포 버전을 만드는데 계속 archiving  에서 먹통..ㅠㅠ 30분을 기다려보고 재부팅하고 다시 한시간을 기다려봐도 깜깜 무소식이다. 활성 상태 보기로 체크 해보니 clang 이란 놈이 메모리 16G 중에 15G를 잡아 먹고 있었다. 이건 기다려서 해결될 일이 아니다. ㅎㅎㅎ 구글신의 도움으로  프로젝트 중에  Hashtable 쓰는 곳이 있으면   clang 컴파일러가  Hashtable가 사용된  코드를 미친듯이 풀어헤쳐 버리는 듯 한 것같다. 그래서 Unity에서 사용하는 구조체 중에 Hashtable 사용하는 구조는 폐기해버렸나 보다 (이제야 이해가 되는듯 ㅋㅋ) WWW 클래스 에서 쿠키 값 저장하는데 Hashtable 폐기되고  Dictionary 구조체를 사용하게 바뀌어 있었는데  하여튼 지금 상으로 해결 방법은 Unity Project에서 사용되는 코드를 바꾸던가 아니면  Xcode setting 에서 optimization level 을 0으로 설정하면 된다. 어떤 날은 미친듯이 진도 나가는 날이 있지만, 어떤 날은 미친듯이 한 문제만 푸는 날도 있네.. ^^; 그래도 감사하게도 해결했으니 편히 잠을 자는구다. 참고한 링크  http://fogbugz.unity3d.com/default.asp?721062_n482bt9n4qm7ejgb IOS IL2CPP Freeze in xCODE on default optimization level There's nothing with my system that's the problem. I don't have any code to...

[Unity3D] 유니티 내장 로컬 푸쉬 기능

 유니티 내장 로컬 푸쉬 기능  - iOS에서만 가능, Android는 직접 개발하던가 Plugin 사용  먼저 등록을 해주고 ( 등록 안하면 작동 안함 ) public void InitNotification() { #if UNITY_ANDROID #elif UNITY_IOS UnityEngine.iOS.NotificationServices.RegisterForNotifications( UnityEngine.iOS.NotificationType.Alert | UnityEngine.iOS.NotificationType.Sound ); #endif } 시간을 정해서 등록해준다.( 3일동안 접속 안할 경우 알림이 오게 한다면 ) public void ScheduleNotification() { //Affer 3 Day string _body01 = "다시 시작해볼까요?"; #if UNITY_IOS UnityEngine.iOS.LocalNotification notiWake = new UnityEngine.iOS.LocalNotification(); DateTime theTime_Wake = DateTime.Now; theTime_Wake = theTime_Wake.AddHours(24*3); Debug.Log("theTime_Wake:"+theTime_Wake); notiWake.fireDate = theTime_Wake; notiWake.alertAction = "타이틀"; notiWake.alertBody = _body01; notiWake.soundName = UnityEngine.iOS.LocalNotification.defaultSoundName; UnityEngine.iOS.NotificationServices.ScheduleLocalNotification(notiWake); #elif UNITY_ANDROID #endif } 취소 함수를...