HUNGRYAPP

검색버튼new

[기획] 인디게임 메이커, 계약소녀 개발일지 7부 관리자장정우
inmain.jpg/hungryapp/resize/500/

1인 게임 개발이 쉬운 것은 아니지만 개발 과정에서 재미를 찾기도 한다. 자신의 게임 취향을 제약 없이 적용할 수 있으며, 유저들에게 개발자가 느끼는 재미를 전달하고 싶어 고민하기도 한다. 이번 계약소녀 개발일지 7부를 통해 재미과 고민을 번갈아 느끼는 개발자의 모습을 볼 수 있다.

※ 지난 기사 읽기

sub-main.jpg/hungryapp/resize/500/

1인 게임 개발 – 보스는 역시 커야 제맛


so-1.jpg/hungryapp/resize/500/

보스 스테이지 중 하나이다. 역시 주인공 보다 몸집이 커야 위협적이다. 왼쪽 아래에 있는 AUTO는 자동 전투 버튼이다. 기본적으로 반자동방식이다. 근처에 접근하는 몬스터가 있으면 따라가서 공격한다. AUTO를 ON하면 멀리 있는 몬스터 중 하나를 선택해 따라가서 공격한다. 아이템 수집은 자동이 아니다. 플레이어가 접근해서 획득하는 방식을 고수했다.

화면 위쪽 가운데 등장하는 골드는 적립금이다. 스테이지를 멈추지 않고 계속 해야 할 이유를 부여하기 위해 만들었다. 몬스터를 하나 해치울 때마다 적립금은 합산되고 다음 스테이지로 넘어갈 때 마다 기존 적립금을 늘려준다. 하지만 패배했을 때는 적립금 중 일부만 지급된다. 간단히 얘기하면 고스톱과 유사하다. 

1인 게임 개발 – 동료 소환


so-2.jpg/hungryapp/resize/500/

또 다른 보스이다. 디더링 처리를 하지 않아 텍스처에 계단 현상이 발생하고 있다. 화면의 아래쪽에 위치한 아이템들은 전투 중에 클릭을 통해 소모할 수 있다. 제일 왼쪽에 있는 것은 기사 소환 아이템이다. 

연옥의 악마들을 혼자서 처치하는 것은 쉽지 않다. 항상 동료들과 함께 전투를 해야 손쉽게 승리를 맛 볼 수 있다. 

소모 아이템들 중에 제일 매력 있고 비싼 것은 소환아이템이다. 소환된 캐릭터는 시간제한을 두고 사라져야 하는지 아니면 죽을 때까지 싸워야 하는지를 두고 고민이다. 분명히 소환 캐릭터가 증가하면 나도 모르는 카타르시스를 느낀다. 이 재미를 주고 싶어서 고민이다.

1인 게임 개발 – 밸런스는 너무 힘들다


so-3.jpg/hungryapp/resize/500/

나무 악마의 모습이다. 주인공은 레벨 3으로 성장하면 복장이 바뀐다. 10레벨 상승할 때마다 승급이라는 개념을 두었다. 국내에 발매된 많은 RPG게임들은 진화, 강화, 각성, 합성 등등 아주 복잡하다. 처음에는 이것을 모두 도입을 해볼까 했지만 시작과 끝이 길지 않은 게임에는 적당한 모델은 아닌 것 같다. 그래서 나름대로 간소화 했다. 단계별로 레벨을 성장시키고 10레벨 단위로 레어를 성장시킨다. 

그리고 레벨이 성장할 때마다 능력도 상승하지만 주인공의 복장에 변화를 주었다. 이것이 meta game으로 작용했으면 하는 바람이 있다.

1인 게임 개발 – 보스퇴치


so-4.jpg/hungryapp/resize/500/

보스를 퇴치하면 저렇게 공지사항을 삽입했다. 하지만 만들고 나니 뭔가 허전하다. 보스를 처치했는데 임팩트가 더 컸으면 좋겠다. 항상 혼자 개발하면 끝없는 욕심에 빠질 때가 제일 힘들다. 연출을 또 파고 들기 시작하면 나머지 진행중인 작업에 대해 감각이 무뎌진다. 기억이 떨어진다고 하는 것이 맞을 것 같다.

그래서 항상 메모하는 습관을 갖는다. todo list에 해당하는 것을 가득 메모하고 하나씩 지워가면서 일을 한다. 이건 마치 RPG게임의 퀘스트와 같다. 어떻게 보면 게임을 만드는 것은 내가 즐길 수 잇는 가장 재미있는 게임이 아닐까 생각한다. 이런 행복이 영원히 계속되었으면 좋겠다. 게임 만들 때가 제일 재미있다.

1인 게임 개발 - ngui EventDelegate onFinished 

ngui 를 이용해서 화면 전환 연출 때문에 다음과 같은 TweenAlpha code를 이용했다.
  TweenAlpha ta = TweenAlpha.Begin (m_modal_black_screen, 0.3f, 1f);
  ta.from = 0f;
  ta.method = UITweener.Method.EaseInOut;
  if (cb_on_complete != null)
  {
   EventDelegate.Set (ta.onFinished, cb_on_complete);
  }
이때 EventDelegate.Set 으로 설정된 함수(cb_on_complete) 는 매번 반복해서 호출되었다.
혹시나 도움이 될까봐 적는다.
다음과 같이 수정했다.

  TweenAlpha ta = TweenAlpha.Begin (m_modal_black_screen, 0.3f, 1f);
  ta.from = 0f;
  ta.method = UITweener.Method.EaseInOut;
  if (cb_on_complete != null)
  {
   EventDelegate.Add (ta.onFinished, cb_on_complete, true);
  }
EventDelegate.Add 의 3번째 option이 한번만 call back 호출할거냐를 의미한다.

장정우 기자(jjw@monawa.com)



신고
글쓰기
목록보기

기사를 읽고 평가를 해주시면  밥알 +5 지급
4 1 1 1 0 0

  • 등록순
  • 최신순
  • 댓글많은순
  • 1
  • 2
  • 3
  • 4
  • 5
댓글리스트 새로고침
비밀글
0 / 300
이모티콘
등록
글쓰기
목록
(자사) 상상소녀삼국지_초록초록
헝그리앱 어플리케이션 설치