목록old_Doona Rebirth (24)
게임을 만듭니다.
메터리얼 복사가 꽤 많은 부분에서 일어나고 있었습니다.나무, 돌, 바닥, 그린존(파일런 근처의 바닥 표시), 유닛, 잔디 등등.... 메터리얼 복사가 일어나는 이유는 특정 메터리얼에 색상을 지정하거나 아니면 기존의 메터리얼을 로컬변수로 지정할때 sharedMaterial이 아닌 그냥 렌더러의 material을 사용했기 때문입니다. 간단하게 고쳐지지 않는부분은 뭐 그것 나름대로 처리를 해서 메터리얼의 복사만 일어나지 않도록 조치하였습니다. 결국 SetPass call은 1696에서 182로 줄어들었군요. 에디터상에서도 상당히 부드럽게 돌아가는것이 느껴지네요.모바일 기기에 올렸을 때 어느정도 체감이 될지 기대됩니다.
'두나 리버스'를 실행시켜 놓으면 스마트폰이 금방 뜨끈뜨끈 해집니다.최적화가 안되어 있다는거겠죠? 프로파일러를 켜서 보면 렌더링하는데 굉장히 많은 자원을 소모하고 있습니다.스텟을 켜보면 Batches 가 1768인데 (굉장히 높다)Saved by batching이 115뿐이라서 (굉장히 적다)SetPass calls가 1696입니다 (굉장히 높다) 짧게 이야기해서 드로우콜이 너무 많다는것입니다.그러면 왜 드로우콜이 많느냐 그 이유는 메터리얼을 복제해서 사용하기 때문입니다.일단 유닛이 서있는 땅바닥의 한칸을 보죠.똑같은 바닥이 반복되고 있습니다. 그러면 같은 바닥에 대해서는 드로우콜이 한번만 발생해야합니다. 메터리얼을 공유한다면 말이죠.그런데 이제까지 메터리얼을 복사해서 사용하고 있었군요. 바닥뿐만아니라 ..
참고 링크 : https://aws.amazon.com/ko/rds/aurora/serverless/ 최근 서버리스로 구성한 게임 서버에서 dynamodb의 프로비져닝된 용량(?) 부족에 따른 쓰로틀링 이슈를 겪으면서dynamodb에 대한 회의가 자꾸 든다.몇건 발생하지 않는 완전한 취미용도로야 사용하는데 무리도 없고 오히려 저렴할수도 있겠다.최소한의 프로비져닝만 해놓으면 하달에 1~2천원 수준으로 간단한 디비를 구성할 수 있으니깐. 그런데 사용서비스를 생각하면 이게 문제가 생긴다.1.게임이 잘 안되서 서버비용이 안나온다 -> 게임이 잘 안되니깐 문제2.게임이 잘 되어서 서버비용이 엄청 나온다 -> 서버비용을 훨씬 상회할만큼 돈이 벌리면 문제가 안된다. 그런데 내가 만든 게임이 그러한가? 흠??? 이런저..
두나리버스에서 길찾기로직은 A*를 사용합니다. 각 유닛은 레벨에 따라 다른 thinkStep을 갖게됩니다. 1.0에서 0.4 까지 변합니다. 만약 thinkStep이 1.0이라면 1초에 한번씩 생각을 합니다. 적이 무기 사정거리안에 있는지 시야 안에 적 유닛이 있는지 시야 안에 적 타워가 있는지 시야 안에 아이템이 있는지 등등 우선순위에 따라 행동을 하게됩니다. 이 안에서 길찾기를 사용하게됩니다. 예를들어 시야안에 적이 들어왔다고 생각해봅시다. 적을 향해 이동해야 합니다. 내 위치와 적 위치를 길찾기 매니져에게 알려주고 해당 경로가 열려있는지(경로가 존재하는지)와 열려있다면 어떠한 좌표들의 모음으로 가야 하는지를 반환해줍니다. 길찾기 매니져는 이러한 요청을 큐에 담아놓고 처리하는대로 결과를 반환해 줍니다..
앱스토어에 심사를 넣을 때 위와 같은 옵션이 있습니다.'자동으로 버전 출시'를 선택하면 심사가 통과됨과 동시에 앱스토어에 새로운 버젼의 앱이 개시됩니다.(딜레이가 있는지 어느정도인지는 모르겠습니다) '수동으로 버전 출시'를 선택하면 심사가 통과되더라도 별도의 출시버튼을 눌러서 출시를 하게됩니다. 일반적으로 '자동으로 버전 출시'를 선택하여 심사를 넣는데 어제는 서버코드와 물리는 부분이 있어서 출시시 점에 서버 업데이트를 해야했고 또 구글 플레이스토어와도 출시시기를 맞춰야 했기때문에 '수동으로 버전 출시'를 선택했습니다. 약 하루만에 심시가 통과되었고 출시버튼을 눌러 새로운 버젼의 앱으로 갱신되기를 기다렸습니다. 그렇게 기다리기를... 15시간째... 아니.. 수동으로 출시하기를 이런식으로 운영하면 어떻게..
두나 리버스는 서버리스 아키텍쳐(?)로 서버를 구성하였습니다.Lambda를 통해 서버로직을 작성하고 API Gateway로 특정 기능을 URL로 맵핑합니다.인증은 Cognito를 이용하고 데이터 저장은 DynamoDB를 이용합니다. 여기서 오늘 이야기 할것은 DynamoDB입니다. 문제의 원인은 이것으로부터 시작합니다. 자세한 서버로직을 설명할 수는 없지만 짧게 정리하자면 DynamoDB의(특정 테이블) 사용량이 정해둔 허들을 넘어가 에러가 발생한것입니다. Lambda 쪽에서 로그를 확인해 보면 위와 같습니다. DynamoDB는 지정해둔 사용량 한계만큼 요금이 부과 되기 때문에 이 설정을 적절이 해 둘 필요가 있습니다.처는 초기 값인 읽기/쓰기 양쪽 모두 5유닛을 설정해 두었습니다. https://aws..
양대 마켓이라는 하나의 큰 목표를 달성했지만 아직 할게 많습니다. 생각나는 것을 몇가지 적어보면 다음과 같습니다. 아레나 - (비실시간)사용자 대전직접컨트롤 선택한 유닛 하나에 한하여 직접 컨트롤을 할 수 있도록클랜/길드퀘스트시스템/업적 시스템 일정 목표를 달성하게 하여 보상을 주는 시스템사운드 현재 배경음악/효과음 너무 부족번역 다국어 일본어, 중국어등등 추가캠페인 추가 다양한 캠페인 시기별로 추가 우선 1번, 2번, 4번은 이번달 안에 추가를 할 생각입니다.흠... 언넝해야지...(신작도...)
링크 : https://itunes.apple.com/us/app/doona-rebirth/id1387539292?mt=8&ign-mpt=uo%3D4 드디어 심사가 끝났고 출시가 완료되었습니다.마지막에 신경쓴것은 3가지입니다. 1.iPhone X 노치 대응 두나리버스는 가로화면에서 플레이되는 게임입니다. UI 설계시 노치 디스플레이에대한 고려가 없었기 때문에 아이폰 X에서는 UI가 제대로 표현되지 않을것이 확실했습니다. (실기기가 없어서 테스트는 못해봤지만...)설정에 화면 좌우에 일종의 패딩을 집어넣는것을 선택하는 메뉴를 만들었고 게임 첫 시작시 기기아 아이폰 X라면 이 설정을 활성화하도록 하였습니다. 관련 코드bool deviceIsIphoneX = UnityEngine.iOS.Device.gener..
남은 작업은 다음과 같습니다. 애플 개발자 계정 등록안드로이드 로그인이 작동해야 함유니티애드가 작동해야 함 작동하고 있지 않음 isReady를 호출했을때 항상 false를 반환하여 광고를 플레이 할 수 없음 인앱결제정보를 가져오고 인앱결제 행위가 동작해야 함 PurchaseManger 초기화시 애플쪽 상품정보를 제대로 불러오지 못함 Itunes Connect에 추가적인 정보를 기입해야 할것으로 생각됨 애플 개발자 계정 등록 애플 개발자 계정은 약 5일정도 거쳐서 완료하였습니다. DUNS 번호를 받은 후 기업용 개발자 계정을 신청하고 처리결과를 기다렸습니다.여기서 이슈가 하나 있었는데 제가 기입한 회사이름과 동일한 명칭을 쓰는 회사가 이미 있었습니다. 예)'COMPANYNAME Co., Ltd.' 위와 같..
이전 포스팅에 이어서 작성합니다. 몇가지 에러가 발생했는데 에러 메시지를 캡쳐하거나 복사해두지 않아서 자잘한거는 재쳐두고 묵직한거 두개만 말해보겠습니다. Amazon.Runtime.Internal.UnityWebRequestWrapper..cctor 이건 런타임 에러입니다. 맥에 아이폰을 연결하고 어플을 시뮬레이션해봅니다.폰에 잘 설치가 되어서 실행을 하는데 어느순간 딱 멈추어버리고 위 에러 메시지를 뱉습니다. '두나 리버스'는 AWS의 서비스를 몇가지 사용하는데 이에따른 설정은 link.xml에서 하고 있습니다(파일 위치는 저는 asset의 루트로 해놨습니다.)해당 파일에서 사용하지 않는 플러그인에 대한 설정을 지우고 위와같이 되어있는 설정을 다음과 같이 수정합니다.(Experimental을 제거합니다..