Release2013.08.03 21:04




닌자 래쓰 (Ninja Wrath) 가 한국 앱스토어에 한국어버전으로 출시 됐습니다. ^^


2D 액션 게임입니다. 


각각의 개성과 특색을 지닌 3명의 케릭터로 스피디한 액션다양한 패턴의 콤보 등을 맛보실 수 있습니다. 


영상 한 번 감상 해 보시고, 무료 버전(체험판)도 있으니 다운 받아서 플레이 해 보세요~







Posted by Min-gu, Kim
Unity Engine/Amazon2013.07.22 17:51

아마존 모바일 앱을 등록하고, 인앱 구매 모듈을 붙이시려는 분들께 도움이 되고자 남겨봅니다.

티스토어 인앱모듈을 붙여보신 분이라면 이클립스 작업으로 플러그인을 만들어야 하는 게 아닌가 생각하실 수 있습니다만, 아마존 모바일 인앱모듈은 구현이 상당히 쉽습니다. (유니티용 패키지를 따로 제공하기 때문에 꼼꼼히 적재적소에 코딩하시는 일만 남거든요~)


그럼, 간단하게 Consumable 상품을 하나 추가해 테스트 하는 과정까지 살펴보도록 하겠습니다.


1. In-App 상품 등록

어플을 등록 후 In-App Items 탭을 눌러 인앱상품을 등록합니다.



인앱상품은 Consumable(일반 소비성 아이템-게임머니 등), Entitlement(영구 구매 등 권한부여 아이템), Subscription(구독 등 기간제 아이템) 3가지 종류 중 선택하여 추가하실 수 있습니다.

그리고 SKU (인앱상품 식별코드) 는 어플 내에서 상품 구매시 호출할 때 사용되니 상품별로 네이밍을 잘 하시면 됩니다. (상품별 로직을 짜실 수 있게 규칙성을 주시면 좋겠죠.)


2. Amazon Mobile Apps-SDK 다운

Apps-SDK.zip 파일을 다운 받으시면 됩니다. (개발자 등록과정 등은 생략할게요. 개발자 등록이 안되도 SDK는 다운 받으실 수 있습니다. 다만, 인앱 상품등록을 하려면 개발자 등록, 앱 등록이 필수겠죠 ㅎ)


3. In-App Purchasing Unity Plug-In 설치

다운 받으신 파일을 압축해제 해 보면 DeviceMessaging, GameCircle, In-App-Purchasing 등 아마존에서 제공되는 SDK가 모두 포함 되 있습니다. 이 중 In-App-Purchasing/plugins/unity/AmazonIAP.unitypackage 를 해당 프로젝트에서 Import 합니다.


4. AndroidManifest.xml 파일 생성 및 설정



패키지를 Import 하면, 유니티 상단 메뉴에 Amazon 탭이 생깁니다. Amazon 탭에서 Generate AndroidManifest.xml File... 을 선택하시면 Assets 폴더 내에 Plugins/Android/AndroidManifest.xml 파일이 생성됩니다. 이 작업은 아마존 인앱구매 창의 액티비티를 AndroidManifest.xml 에 추가하기 위함입니다. Plugins/Android/AndroidManifest.xml 파일이 있으면 안드로이드 빌드 시 해당 파일로 AndroidManifest.xml 이 생성됩니다. 

(이 때, 다른 작업으로 이미 AndroidManifest.xml 파일을 생성하셨다면 필요한 퍼미션이나 액티비티들을 복사 해 두셨다가 Generate AndroidManifest.xml File... 후에 다시 추가 해 주셔야 합니다.)


그리고 혹시나 AndroidManifest.xml 파일에 다음 퍼미션이 추가 되 있지 않다면 반드시 추가 해 주시기 바랍니다. (이게 없으면, 구매 완료를 알려주지 않아요.)

<receiver android:name="com.amazon.inapp.purchasing.ResponseReceiver">
    <intent-filter>
        <action android:name="com.amazon.inapp.purchasing.NOTIFY" android:permission="com.amazon.inapp.purchasing.Permission.NOTIFY"/>
    </intent-filter>
</receiver>



5. 인앱상품 모듈 구현

- 상품 목록 호출

AmazonIAP.initiateItemDataRequest(string[인앱상품 식별코드 리스트]);


- 상품 호출 이벤트

성공시

void itemDataRequestFinishedEvent( List<string> unavailableSkus, List<AmazonItem> availableItems )


AmazonItem.description ( 상품설명 )

AmazonItem.type ( Consumable, Entitlement, Subscription )

AmazonItem.price ( 상품 가격 )

AmazonItem.sku ( 인앱상품 식별코드 )

AmazonItem.smallIconUrl ( 상품 대표아이콘 ; 인앱상품 등록시 업로드 한 이미지 url )

AmazonItem.title ( 상품명 )


실패시

itemDataRequestFailedEvent()


- 상품 구매 요청

AmazonIAP.initiatePurchaseRequest(인앱상품 식별코드(SKU))


- 상품 구매 이벤트

성공시

void purchaseSuccessfulEvent( AmazonReceipt receipt )


AmazonReceipt.type ( Consumable, Entitlement, Subscription )

AmazonReceipt.token ( 인증 토큰 - 개별 인앱 인증 서버 구현시 필요 )

AmazonReceipt.sku ( 인앱상품 식별코드 )

AmazonReceipt.subscriptionStartDate ( Subscription 상품 시작일 )

AmazonReceipt.subscriptionEndDate ( Subscription 상품 종료일 )


실패시

void purchaseFailedEvent( string reason )



Entitlement, Subscriptions 모듈 구현은 해당 페이지를 참고하세요~ 너무 쉽게 잘 설명 되 있어서 추가로 설명드리지 않아도 되겠네요~

(사실 Consumable 상품만 해봐서 ^^)


Overview of Entitlements


Overview of Subscriptions




6. 인앱구매 테스트

Amazon In-App Purchasing 테스트의 경우, 실제로 앱이 등록되기 이전에 인앱상품 테스트를 해 볼 수 있도록 AmazonSDKTest 앱을 제공합니다. 구현하신 앱상에서 인앱 상품 구매를 요청하면 AmazonSDKTest 앱에서 특정폴더에 저장 된 json 파일을 읽어 상품을 확인하고 상품 화면을 보여주고, 구매가 이뤄지면 구매 성공여부도 AmazonSDKTest 에서 해당 앱으로 알려주게 됩니다.

- AmazonSDKTest를 설치

테스트 앱은 2. Amazon Mobile Apps-SDK 다운 때 받으신 파일 내에 있습니다. In-App-Purchasing/tools/AmazonSDKTest.apk

- json 파일을 설정

상품명, SKU, 가격 등의 정보가 입력 된 json 파일을 SD카드 Root 에 json 파일을 저장하시면 됩니다. (파일명은 amazon.sdktester.json)

json 파일의 형식대로 직접 입력하셔도 되지만 아마존 인앱상품 등록화면에서 추출하셔서 사용하면 더 편합니다.




'Unity Engine > Amazon' 카테고리의 다른 글

Amazon In-App Purchasing 모듈 붙이기  (0) 2013.07.22
Posted by Min-gu, Kim
Release2013.05.14 16:25


True Arcade Action! Ninja Wrath  가 앱스토어에 출시됐습니다.

영어권 국가 위주로 출시 된 상태입니다.





트레일러 한 번 감상해 보세요~




★ App Store Link- http://bit.ly/ninjawrath_ios 

★ http://facebook.com/XLUSHgames

Posted by Min-gu, Kim


하루 15분 정리의 힘
국내도서>자기계발
저자 : 윤선현
출판 : 위즈덤하우스 2012.03.23
상세보기



 "정리하지 않은 공간은 사랑받지 못하는 공간이 된다. 정리 되 있지 않은 물건들은 주인의 관심 밖에 있는 잡동사니 일 뿐이다. "


 하루 15분을 투자해 자신의 환경을 정리하자는 책이다.


 인상적인 것은 수납과 정리를 구분지어 정의하고, 정리하는 방법과 예시를 늘어놓은 부분이다.

 '수납하는데 시간을 들이는 바에 그 시간에 업무를 보는 것이 더욱 효율적이지 않은가?' 라고 묻는 사람들에게 정리와 수납을 구분짓는 핵심은 바로 "정리력이란 자료에 대한 통제력"이란 말 한마디를 건넨다. 남 보기에 산만하고 어지러울 지라도 주인의 머릿속에 체계가 잡혀있는 공간이라면 수납은 엉망일지언정 정리가 된 공간이라는 것이다.


 하루 15분(적은 시간)을 투자 해 자신의 공간, 시간, 인맥을 정리하게 되면 주인에게 사랑받는 공간과 물건들, 소중한 시간과 인맥을 갖게 될 것이다. 


 창조적인 결과물은 창조적인 공간에서 나오는 것이려나?


'Books > 자기계발 학습' 카테고리의 다른 글

하루 15분 정리의 힘  (2) 2012.10.09
스무살에 배웠더라면 변했을 것들  (2) 2012.07.04
민도식의 자기경영 콘서트  (0) 2010.11.12
거인과 싸우는 법  (0) 2010.11.05
서른살 직장인 책읽기를 배우다  (0) 2010.10.28
Posted by Min-gu, Kim
Release2012.09.20 09:48

저희 회사에서 이번에 3D 슈팅 디펜스 게임 [워치타워] 가 리뉴얼 되어 재출시 됐습니다.


★★ 신개념 Full 3D 슈팅 디펜스 게임  '워치타워'  ★★


❖ 시놉시스 ❖

이계의 문이 열린지 겨우 1년이 지났지만, 끊임없이 몰려오는 괴물들과의 전투로 세계는 폐허가 되었고, 인간들은 변방으로 쫓겨나 하루하루 공포 속에서 살고 있다.

지금 당신은 마지막 방어선을 지키는 최후의 사수가 되어 인류를 위해 적들의 진군을 막아내야 한다.


❖ 게임 소개 ❖

워치타워는 총을 이용한 디펜스 게임으로,  FPS 와 디펜스가 합쳐진 독특한 컨셉의 게임입니다.

기본적인 라이플부터 다련장 로켓 런처까지 다양한 총기들과 폭격, 블럭버스터 등 공중 지원의 도움을 얻어 괴물들을 막아내십시오.

적들의 공세가 강력할때는 지뢰 또는 T.N.T 등을 미리 매설해 놓으면 스테이지 클리어에 많은 도움이 됩니다.



❖ 게임요소 ❖

▷ 재장전, 무기 변경 

- 탼약이 떨어지면 재장전 해야 합니다. 적절한 타이밍에 재장전과 적합한 무기로의 변경은 전투의 승패를 가르는 중요한 요소입니다. 


▷ 헤드샷, 콤보

- 적들의 머리를 조준사격하면 강력한 헤드샷 데미지를 줄 수 있습니다.

- 헤드샷과 콤보 개수는 스테이지 클리어 보상 금액에도 플러스됩니다.


▷ 지뢰, T.N.T

- 적들이 지나갈 곳을 예상하여 지뢰와 T.N.T 를 설치하십시오.

- 지뢰는 특히 달려오는 적들의 발을 멈추기에 유용합니다.

- T.N.T 는 단 한번의 폭발로 주변에 강력한 데미지를 줄 수 있습니다.


▷ 폭격과 블럭버스터

- 폭격은 전장에 무작위로 폭발합니다.

- 블럭버스터는 거의 모든 적들을 한번에 죽일 수 있는 강력한 폭탄입니다.

- 폭격과 블럭버스터는 지원 요청이 될 때까지 약간의 시간이 필요합니다.


▷ 야간전

- 야간전시에는 어둠으로 인해 적을 구분할 수 없지만, 조명탄을 사용하여 잠시동안 전장을 밝힐 수 있습니다.

- 스나이퍼 라이플은 적외선 스코프를 가지고 있기 때문에 야간전에 특히 유용합니다.


▷ 아이템 룰렛

- 전투 중 얻는 코인으로 룰렛을 돌려서 캐시아이템을 얻을 수 있습니다.


▷ 서바이벌 모드

- 캠페인 모드의 모든 스테이지를 클리어하면 서바이벌 모드가 언락됩니다.

- 탄약 무제한의 모드로써, 적이 끝없이 등장하기 때문에 자신의 한계를 시험해 보실 수 있습니다.




[ 다운로드 ]


☞ 앱스토어

☞ 구글플레이

☞ 티스토어

Posted by Min-gu, Kim
Unity Engine2012.08.22 14:40

물체 사이의 거리를 구하는 간단한 방법을 설명하겠습니다.


우선, 힘겹게 "그림판"으로 완성 된 아래 이미지 부터 보시죠.

(허접하다는게 반전)



① 두 물체 사이의 거리


  구하는  방법은 아주 간단합니다. Unity 에서 Scene 내에 존재하는 모든 GameObject 들은 각각 transform 을 기본적으로 가지고 있기 때문에 두 transform 사이의 거리를 계산하면 됩니다.

  Transform 에는 world space 상에서의 transform 의 위치를 나타내는 Vector3형의 position 값이 존재합니다. 위 이미지 상에서 (0,0,0) , (4,5,0) 이 바로 이 값이죠. 

  그럼, 두 position 을 이용 해 어떻게 거리를 구할까요?

  피타고라스의 정리를 통해 (4*4 + 5*5) 의 제곱근을 구하는 코드를 구현할까요? 아, 물론 그렇게 하면 두 물체 사이의 거리가 나옵니다. 하지만, Vector3 에서 제공하는 함수 중에 Distance 라는 함수가 있어, 좀 더 편하게 코드를 구현하실 수 있습니다.



return Vector3.Distance(PlaneObj.transform.position, SphereObj.transform.position);


  이렇게 하면 두 물체 사이의 거리를 구할 수 있습니다.



② 평면과 물체 사이의 거리


  그렇다면, 평면과 물체 사이의 거리는 어떻게 구할까요?


  Unity 에서 제공하는 Plane (struct) 을 이용하면 간단히 해결 하실 수 있습니다. -① 번 보단 덜 간단하지만-

  방법은, Plane 객체를 생성해서 Plane 에서 제공하는 GetDistanceToPoint 함수를 통해 Sphere 객체와의 거리를 구하면 됩니다.

  Plane 객체를 생성시 3D 평면의 정의와 똑같이 생성자를 요구합니다. (법선 벡터 N이 가리키는 방향과 수직이며 점P를 지나는 점 Q들의 집합.. 뭐 대충 이런;;). 위 경우에는 법선 벡터 N을 Plane 객체와 수직인 PlaneObj.transform.up 으로 지정, 점 P는 PlaneObj.transform.position 가 되겠죠.



Plane plane = new Plane(PlaneObj.transform.up, PlaneObj.transform.position);

return plane.GetDistanceToPoint(SphereObj.transform.position);


  이렇게 하면 평면과 한 물체 사이의 거리를 구하실 수 있습니다.


  (아! 위 이미지에서 평면과 물체 사이는 5 - 0 값인 5가 맞습니다. 쉽게 설명 드리기 위해서 position 을 설정했기 때문에 위와 같은 코드가 의미가 없어 보일 수도 있습니다만, position 도 다양할 수 있고 평면의 rotate 또한 x,y,z 어떤 축으로든 다양하게 설정 될 수 있겠죠. 그럴 때에는 위와 같은 코드가 상당히 의미 있게 사용 될 수 있습니다 ^^) 



Posted by Min-gu, Kim
Wonblue2012.08.20 13:21




Written by 고모


이 장소를 Daum지도에서 확인해보세요.
경기도 김포시 하성면 | 애기봉
도움말 Daum 지도

'Wonblue' 카테고리의 다른 글

할머니, 고모와 여름휴가 다녀온 Wonblue!  (2) 2012.08.20
735km 를 가능케 한...  (5) 2012.08.13
청모의 귀여운 X큐  (0) 2011.01.11
원모 영상 두 편#2  (4) 2010.08.18
청모가 태어났어요!  (19) 2010.08.12
원모 영상 두편  (3) 2010.07.21
Posted by Min-gu, Kim
Wonblue2012.08.13 13:39

와이프, 원모, 청모와 함께 주말 내내 735km 를 달렸다.

코스 : 서울 - 경북 예천 - 안동 - 청량산 국립공원 - 다시 예천 - 서울


오랜만에 텐트를 트렁크에 싣고, 원블루 가족이 떠난 주말 여행.

5살, 3살 꼬마들과 함께 왕복 735km 나 되는 장거리 여행~ 그것을 가능하게 했던 건 바로 와이프가 준비한 세가지 준비물.




1. 와이프가 제안한 뒷자리 침대(?)


 (와이프와 전날 마트에서 급조 한)운전석과 조수석에 고정하고 뒷자석에 걸쳐놓는 단순한 장비 하나로, 장시간 운전에도 쭉 뻗은 자세로 아이들이 잠을 잘 수 있도록 해 줬다. 요놈들 잘도 자네..



원모 : "아빠, 뒤에 침대 만들어줘서 고맙습니다."




2. 포션 (피로 회복제)


- 핫식스 6캔을 아이스 박스에 넣어 출발~ 포션을 폭풍 원샷 해 가며 운전을 하니, 피로도 싹~ 가시고 졸립지도 않고~ 운전이 운전은 가능했다! (나중에 집에 돌아오니 포션 남용으로 인한 부작용을 겪어야 했다. 효과가 사라지자마자 계속 졸림;)


원블루 : "그게 모에요?"

와이프와 나 : "엄마 약이야.", "아빠 약이야."

... 미안하다 애들아. 너희들은 1방울도 줄 수가 없구나. 폭풍 타우린과 카페인이 너희들한테 좋겠니? 설명할 수도 없잖아.. 그냥  엄마 아빠 약이라고 알아주렴~



3. 텐트


- 사실 텐트가 없었더라면 1박 2일 계획은 꿈꾸지 못할 것이다. 게다가, 1박 2일 일정을 2박 3일로 늘려볼까 하던 와이프의 한마디 "텐트가 있으니 든든해서~".. 안타깝게도 금요일 저녁의 엄청난 도로정체를 뚫고 서울을 벗어나기가 힘들 것 같아서 1박2일로 잡았지만, 결과적으로는 다행스럽게도 그렇게 했던 것 보단 덜 피로했다. 개인적으로 준비 해 갔던 DSLR, 읽을 책, 메모지.. 는 1초도 꺼내지 못했않았다. 운전 하면서 아이들과 함께 텐트 칠 곳을 찾다가 결국엔 학가산 자연 휴양림이란 곳에서 텐트를 치고 아이들과 고기를 구워 먹었다. 


(사진 속의 냄비는 단순히 물만 끓이고 있던게 반전)


나 : "원모야 밖에 나와서 텐트치고 하니깐 좋아?"

원모 : "네~"

나 : "원모는 텐트치고 자는 게 왜 좋아?"

원모 : "응~ 시원해서"

나 : "음.. 시원해서? 또?"

원모 : "응~ 그냥 좋아요~"


 와이프와 내가 피곤 한 만큼 아이들도 피곤했을텐데, 이유 없이 마냥 좋다는 아이들. 아이들이 마냥 좋기만 한 여행이라.. 왠지 멋지다. 원모야 아빠도 그냥 좋단다~ 네가. 너와 함께 한 여행도.


 DSLR 을 왜 들고 갔을까? 다음번엔 질 좋은 사진을 왕창 찍어서 제대로 된 포스팅을 해 보고 싶다~



안동 구시장에서 진짜 안동찜닭 먹어봄. ㅋ안동 구시장 찜닭 골목에서 원블루


도산서원 앞에 있는 멋진 나무멋진 나무 앞에서 원블루도산서당에서 원블루, 원블루 엄마


이 장소를 Daum지도에서 확인해보세요.
경상북도 안동시 도산면 | 도산서원
도움말 Daum 지도

'Wonblue' 카테고리의 다른 글

할머니, 고모와 여름휴가 다녀온 Wonblue!  (2) 2012.08.20
735km 를 가능케 한...  (5) 2012.08.13
청모의 귀여운 X큐  (0) 2011.01.11
원모 영상 두 편#2  (4) 2010.08.18
청모가 태어났어요!  (19) 2010.08.12
원모 영상 두편  (3) 2010.07.21
Posted by Min-gu, Kim
Books/문학(소설)2012.08.10 18:20


개를 훔치는 완벽한 방법
국내도서>소설
저자 : 바바라 오코너(Babara O'connor) / 신선해역
출판 : 다산책방 2008.10.10
상세보기



 10대 소녀 조지나 헤이즈. 어느날 아빠가 가족의 곁을 떠나고 (사별이 아니라 가족을 버리고 떠난) 집세를 낼 수 없어 쫓겨나 엄마와 동생 셋이서 낡은 차에서 생활하게 된다. 물론, 주차문제 조차 해결 되지 않아 매번 주차가 가능한 곳으로 이리저리 옮겨야 한다. 제대로 씻고, 먹고, 잘 수 없는데다 늘 쪽잠을 청해야 한다. 


 이런 상황에서 10대 소녀는 어떻게 대처해야 하는가? 자신의 현실을 직면하고 저보다 더 고생일 엄마와 동생 토비를 위해 애어른이 되야 할까? 가족을 버리고 떠난 아버지, 여느 10대 소녀들처럼 평범한 삶을 살 수 없는 현실을 원망해야 할까? 주유소나 식당 화장실 같은 곳에서 씻고 자동차 뒷칸에서 쪽잠을 청하는 것이 아닌, 욕실에서 샤워하고 자신의 침대에 누워서 잠을 청하는 평범한 삶이 소원이던 조지나가 우연히 발견한 건 바로 "개를 찾습니다. 사례금 500달러" 전단지. 엄마에게 물어보니 "글쎄~ 그 정도 돈이면 집을 구할 수 있겠지?" .... 조지나는 '개를 훔쳐서 다시 돌려주면 사례금을 받을 수 있고, 그렇게 되면 이런 상황을 벗어날 수 있다.' 고 생각하게 된다. 현실을 원망하면서도, 현실을 타개하기 위해 노력하기로 결정한 것이다.


 보라색 노트에 "개를 훔치는 완벽한 방법" 이라 적고, 1단계, 2단계 차근차근 적어가며 개를 훔칠 방법을 모색하는 조지나. 개를 완벽하게 훔치기 위한 단계를 밟을 때 마다 10대 소녀의 귀엽고 발칙한 행동들에 웃음이 난다. 흥미롭게 전개되는 내용에 페이지를 술술 넘기다 보면, 10대 소녀가 마주했을 현실에 안타까워 뭐라도 도움이 될 만한 일을 해주고 싶어진다. 개를 훔칠 필요가 없게끔. 귀엽고 사랑스러운 개 윌리를 통해 자신의 행동이 잘못인지도 모르고 있던 조지나를 일깨우고, 이상한 아저씨 무키를 통해 현실에 대처하는 올바른 자세를 지도하고, 폭풍 눈물을 감출 수 없는 카멜라 아줌마를 통해 이성을 억누르고 감성적으로 자신의 잘못 된 행동을 바로 잡으려던 조지나를 용서하는 과정에서 조지나의 "개를 훔치는 완벽한 방법"이 완성된다. 그녀의 비밀 노트. 보라색 노트에 적힌 "개를 훔치는 완벽한 방법" 은 "개를 훔치지 않는다. 왜냐하면 좋은 방법이 아니기 때문이다."


 무키 아저씨의 신념.

 "때로는 뒤에 남긴 삶의 자취가 앞에 놓인 길보다 더 중요한 법이다."

 "휘저으면 휘저을 수록 더 고약한 냄새가 나는 법이란다."


 마치 따뜻한 가족 드라마나 영화를 본 것 같은 소설이다. 옮긴이의 글까지 보고 책장을 덮으며 이런 생각이 든다. 내 아이에게 이런 현실을 안겨주지 말자. 아이의 잘못을 지도할 때, 그들 스스로 깨달을 수 있도록 하자. 용서하자. 

'Books > 문학(소설)' 카테고리의 다른 글

개를 훔치는 완벽한 방법  (2) 2012.08.10
시간을 파는 상점  (4) 2012.07.22
공중그네  (2) 2012.07.13
빅 픽처  (0) 2010.11.29
Posted by Min-gu, Kim
기타2012.08.03 13:28

블로그 스킨 변경하려고 합니다. 

게임이나 어플만 개발 해 봐서, HTML, CSS 는 문외한인지라 최종 변경 완료가 언제 끝날지 모르겠네요.

최대한 노력해서 심플하게 만들어 보겠습니다.

'기타' 카테고리의 다른 글

블로그 스킨 제작 중!  (0) 2012.08.03
QR Code 만들어 봤어요!  (0) 2010.08.27
블로그 개편 했습니다.  (0) 2010.07.30
REMIX09 스피커로 참여하다.  (2) 2009.09.29
2009 Elite Model Look Korea  (0) 2009.08.21
Posted by Min-gu, Kim

티스토리 툴바