마법의 디지바이스란, 본래 구글 안드로이드 Udacity 스터디의 해커톤 참여를 위해서 기획한 프로젝트로 {{{마법의 MD5 배틀 + 디지바이스(다마고치) + 포켓몬의 전투 UI(희망사항) + 살아남아라개복치!의 메인UI}}}를 합친 게임이라고 생각하면 된다. git> https://github.com/ZeroPage/magical-digivice [[TableOfContents]] = 기획 = == 캐릭터 == * 현장에서 생성 * 연속 촬영등을 활용해서 사람들 얼굴을 사진으로 담는다. 이 사진을 캐릭터의 이미지로 활용하여 충분한 숫자의 캐릭터를 만든다. === 생성 === * 마법의 md5 이름을 넣으면 md5화 시켜서 임의로 캐릭터를 생성. md5로 부터 나오는 수치는 7가지 스탯의 초기값, 캐릭터 이미지 === 스탯 === *비전투 관련 스탯 ( 최대값 char ) 외주를 하면 감소한다. 시간이 지나면 감소한다. 0 이하로 내려가면 캐릭터가 사망하고 앤딩으로 이동한다. 최대값보다 커질 경우 더 이상 할 수 없다. * 배부름 치킨을 먹으면 배부름 수치가 올라간다. * 맨탈 맥주를 마시면 맨탈 수치가 올라간다. * 전투 관련 스텟 ( 최대값은 unsigned int ) * 칰력--칰앙심-- 치킨을 먹으면 스탯이 올라갈 가능성이 있다. * 주량 맥주를 마시면 스탯이 올라갈 가능성이 있다. * 코딩 외주를 하면 스탯이 올라갈 가능성이 있다. * 전투+비전투 관련 스탯 ( 최대값은 unsigned int ) * 재력 외주를 하면 증가한다. 치킨을 먹거나 맥주를 마시면 감소한다. 0 이하로 내려가면 캐릭터가 사망하고 앤딩으로 이동한다. 전투에서 지면 감소한다. === 육성 === * 치킨먹기(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, 제력-=결과에따라}}} == 전투 == === 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 제력-= 결과에 따라 달라진다. === 출력 === * 다이다이 * 칰세권 * 코드잼 == 엔딩 == * $0.99 달러에 부활 가능 == 결제 == * 정식버전(WIFI, 전투로그 지원) 본 버전은 Lite 버전입니다. 정식 버전을 사용하려면 결제해주세요. 계좌번호 (우리) 1002-XXX-XXXXXX $0.99 * 부활 계좌번호 (우리) 1002-XXX-XXXXXX $0.99 = 개발 = == 화면 구성 == http://pds21.egloos.com/pds/201411/07/63/d0045863_545ba5daaeb44.jpeg * 위쪽에는 스탯 6개를 보여줌 * 아래 버튼 4개 * 치킨먹기, 맥주마시기, 외주하기 : 다이얼로그 * 전투하기 : NFC , WIFI(결제창으로 이동) == BGM == * http://www.youtube.com/watch?v=woktSuBWR3U - 디지몬 butterfly * http://www.youtube.com/watch?v=8oWthp4_nsU - 디지몬 진화 브금 * http://www.youtube.com/watch?v=9pYO0aHmez4 - 포켓몬 전투 브금 == 마법의 md5 == *스탯과 캐릭터id(이미지)는 preference 에 저장 == 전투애니메이션 == * Activity 1개로 해결 == NFC사용법 == * 파일 전송 가능 (용량 제한 x) * Android Beam(TM)이라는 기술을 쓴다. * http://developer.android.com/guide/topics/connectivity/nfc/nfc.html#p2p (레퍼런스) * 레퍼런스에 있는 예제코드를 복붙, 하고 Intent-filter를 붙이는 정도로 사용 가능하다. * 단, 단방향 전송만 가능한데다가, '송신'을 위해 사람이 손으로 터치해서 허가 해줘야 한다; * 이 때문에 문제가 생겼다. * 본래 양방향 통신을 기대하고 만들었는데 단방향만 된다. * '송신' 허가를 위해 터치를 해야 한다. '수신' 허가도 아니다. 수신 허가였으면 서로 턴을 교환 하는 식으로 만들 수 있었을 텐데. * 게다가, 송신 허가 시점을 캐치할 수 없다. 전송 시도할때는 캐치 할수 있다. 근데 이 시점을 잡아봐야 게임 진행에 쓸모가 없다. * Beam 말고 Tag 상태로 작동 할 수 있는지 시도 해봤는데, 방법이 없다. * 기획 수정이 필요하다. * NFC의 이런 특징을 감수하고도 할만한 진행방식을 생각하던가 * 아니면, 다른 근거리 통신 기술을 이용해야 한다. ---- 상위: [Armdroid]