U E D R , A S I H C RSS

Armdroid/마법의디지바이스

마법의 디지바이스란, 본래 구글 안드로이드 Udacity 스터디의 해커톤 참여를 위해서 기획한 프로젝트로
마법의 MD5 배틀 + 디지바이스(다마고치) + 포켓몬의 전투 UI(희망사항) + 살아남아라개복치!의 메인UI를 합친 게임이라고 생각하면 된다.
git> https://github.com/ZeroPage/magical-digivice

1. 기획

1.1. 캐릭터

  • 현장에서 생성
    • 연속 촬영등을 활용해서 사람들 얼굴을 사진으로 담는다.
      이 사진을 캐릭터의 이미지로 활용하여 충분한 숫자의 캐릭터를 만든다.

1.1.1. 생성

  • 마법의 md5
    이름을 넣으면 md5화 시켜서 임의로 캐릭터를 생성.
    md5로 부터 나오는 수치는 7가지 스탯의 초기값, 캐릭터 이미지

1.1.2. 스탯

  • 비전투 관련 스탯 ( 최대값 char )
    외주를 하면 감소한다.
    시간이 지나면 감소한다.
    0 이하로 내려가면 캐릭터가 사망하고 앤딩으로 이동한다.
    최대값보다 커질 경우 더 이상 할 수 없다.
    • 배부름
      치킨을 먹으면 배부름 수치가 올라간다.
    • 맨탈
      맥주를 마시면 맨탈 수치가 올라간다.

  • 전투 관련 스텟 ( 최대값은 unsigned int )
    • 칰력칰앙심
      치킨을 먹으면 스탯이 올라갈 가능성이 있다.
    • 주량
      맥주를 마시면 스탯이 올라갈 가능성이 있다.
    • 코딩
      외주를 하면 스탯이 올라갈 가능성이 있다.

  • 전투+비전투 관련 스탯 ( 최대값은 unsigned int )
    • 재력
      외주를 하면 증가한다.
      치킨을 먹거나 맥주를 마시면 감소한다.
      0 이하로 내려가면 캐릭터가 사망하고 앤딩으로 이동한다.
      전투에서 지면 감소한다.

1.1.3. 육성

  • 치킨먹기(30분당) : 재력-=5, 칰력+=rand()%1, 배부름+=10+rand()%20
  • 맥주마시기(30분당) : 재력-=5, 주량+=rand()%1, 멘탈+=10+rand()%20
  • 외주하기(30분당) : 재력+=10 + rand()%10, 멘탈-=rand()%5, 배고픔-=rand()%5, 코딩+=rand()%1
  • 기본(30분당) : 배부름-=rand()%5 , 멘탈-=rand()%5
  • 전투(1회당) : 배부름-=10, 멘탈-=10, 제력-=결과에따라

1.2. 전투

1.2.1. NFC

  • 데이터 교환
    주량, 칰력, 코딩, 재력, rand()

  • 전투는 ( rand() + rand() ) % 3 으로 다음 3가지중 하나로 전투한다.
    • 다이다이
      주량으로 전투를 한다.
    • 칰세권
      칰력으로 전투를 한다.
    • 코드잼
      코딩으로 전투를 한다.
  • 전투 알고리즘
    double TotalMyDmg=0, TotalUrDmg=0;
    • 매턴
      int tmp = rand();
      int myDmg = tmp % myStat;
      int urDmg = tmp % urStat;
      TotalMyDmg += myDmg;
      TotalUrDmg += urDmg;
    • 승패
      compare(TotalMyDmg,TotalUrDmg);
  • 전투 결과
    배부름-=10
    멘탈-=10
    제력-= 결과에 따라 달라진다.

1.2.2. 출력

  • 다이다이

  • 칰세권

  • 코드잼

1.3. 엔딩

  • $0.99 달러에 부활 가능

1.4. 결제

  • 정식버전(WIFI, 전투로그 지원)
    본 버전은 Lite 버전입니다.
    정식 버전을 사용하려면 결제해주세요.
    계좌번호 (우리) 1002-XXX-XXXXXX $0.99
  • 부활
    계좌번호 (우리) 1002-XXX-XXXXXX $0.99

2. 개발

2.1. 화면 구성


* 위쪽에는 스탯 6개를 보여줌
* 아래 버튼 4개
  • 치킨먹기, 맥주마시기, 외주하기 : 다이얼로그
  • 전투하기 : NFC , WIFI(결제창으로 이동)

2.3. 마법의 md5

  • 스탯과 캐릭터id(이미지)는 preference 에 저장

2.4. 전투애니메이션

  • Activity 1개로 해결

2.5. NFC사용법

  • 파일 전송 가능 (용량 제한 x)
  • Android Beam(TM)이라는 기술을 쓴다.
    • http://developer.android.com/guide/topics/connectivity/nfc/nfc.html#p2p (레퍼런스)
    • 레퍼런스에 있는 예제코드를 복붙, 하고 Intent-filter를 붙이는 정도로 사용 가능하다.
    • 단, 단방향 전송만 가능한데다가, '송신'을 위해 사람이 손으로 터치해서 허가 해줘야 한다;
      • 이 때문에 문제가 생겼다.
        • 본래 양방향 통신을 기대하고 만들었는데 단방향만 된다.
        • '송신' 허가를 위해 터치를 해야 한다. '수신' 허가도 아니다. 수신 허가였으면 서로 턴을 교환 하는 식으로 만들 수 있었을 텐데.
        • 게다가, 송신 허가 시점을 캐치할 수 없다. 전송 시도할때는 캐치 할수 있다. 근데 이 시점을 잡아봐야 게임 진행에 쓸모가 없다.
        • Beam 말고 Tag 상태로 작동 할 수 있는지 시도 해봤는데, 방법이 없다.
    • 기획 수정이 필요하다.
      • NFC의 이런 특징을 감수하고도 할만한 진행방식을 생각하던가
      • 아니면, 다른 근거리 통신 기술을 이용해야 한다.

상위: Armdroid
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:22:32
Processing time 0.0287 sec