반응형

전체 글 214

爆撃の防御者 個人情報の処理方針[iOS]

爆撃の防御者 個人情報の処理方針[iOS] 爆撃の防御者と同開発者はプライバシーを心から尊重します 爆撃の防御者はAppleがユーザーからご同意を得た上で同開発者に提供したデータ以外、第三者分析や広告フレームワークを使用しません。 爆撃の防御者はユーザーに関するいかなる個人情報も残さず、同サービス目的が達成された後は、直ちに廃棄します。 爆撃の防御者はユーザーについての個人的なデータを求めたり集めたり伝送したり配布しません。 担当者コンタクト先: chun75@daum.net

Bombing Defender 2022.02.06

폭격 방어자

심심하거나 스트레스 받았을 때 신나게 즐기는 터치 슈팅 게임! 당신의 폰이나 태블릿을 휴대용 게임기로 만드세요! 스토리 외계인이 지구의 비행선들을 훔쳐서 도시와 마을을 폭격합니다. 적 비행선의 폭격을 방어하여 도시와 마을을 보호하세요. 게임에 대하여 빠르게 터치하여 도시와 마을을 폭격하는 모든 비행선들과 폭탄을 부셔 도시와 마을을 보호하세요. 중간 중간에 나오는 새가 주는 다양한 아이템으로 게임 중 위기에서 벗어나세요. 일정 확률로 나오는 크리티컬 히트와 더블 크리티컬 히트로 순간적으로 2배에서 4배의 데미지로 적을 파괴하세요. 10 스테이지당 나오는 보스를 클리어하세요. 각 보스 별 공략법이 존재하는 관계로 단순히 빠른 손만으로는 힘들 수도 있습니다. 특히 보스전에서는 보스 에너지가 얼마나 남았는지 보..

Bombing Defender 2022.02.04

폭격 방어자 앱 개인정보 처리방침

폭격 방어자 앱 개인정보 처리방침 폭격 방어자 어플리케이션은 개인정보보호법에 따라 이용자들의 개인정보 보호 및 권익을 보호하고자 다음과 같은 처리방침을 두고 있습니다. 당사는 개인정보처리방침을 개정하는 경우 앱 화면 및 웹사이트 공지사항을 통하여 공지할 것입니다. 1. 개인정보의 처리 목적 본 개발자가 작성한 앱은 일체의 개인정보를 수집, 처리하고 있지 않습니다. 2.개인정보의 처리 및 보유기간​ 본 개발자가 작성한 앱은 일체의 개인정보를 저장하지 않습니다. ​ 3.개인정보처리 위탁 여부 본 개발자가 작성한 앱은 타 업체에 개인정보를 위탁하지 않습니다. ​ 4.정보주체의 권리,의무 및 그 행사방법​ 이용자는 개인정보주체로서 언제든지 개인정보 보호 관련 권리를 행사할 수 있습니다. 다만, 본 앱은 앱 사용..

Bombing Defender 2022.02.04

만들고 있는 주식 차트 컨트롤

기능 다중 라인 차트 - 색 및 선 굵기 지정 가능 다중 주식 차트(일본식) 컨트롤 크기에 따른 차트 확대 및 축소 스크롤 기능 화면 표시 데이터 개수 지정 데이터 툴팁 사용 기술 C++ MFC GDI+ Custom Control 제작 이유 C++로 만들고 있는 시스템 트레이딩 내용 표시 원하는 것을 자유롭게 표시 및 원활한 기능 추가 공개 차트 찾고 익히는 시간 소요도 만만치 않음 현재 개발 중인데 실제 HTS 차트 참고하면서 스크린 샷 수준까지 만들었습니다. 확실히 GDI+가 GDI에 비하여 그래픽을 이쁘장하게 그려줍니다. 대학시절에는 프로젝트를 하면서 MS 차트컨트롤을 잘 이용하는 것만으로도 실력있는 거라고 믿었습니다. 그런데 어느세 그 당시에는 어렵게 느껴지던 C++, MFC, GDI+ 같은 개인..

개발이야기 2022.01.25

Unity 최적화 작업 후에... #3

이 글에서는 Unity 모바일 게임에 대한 여러가지 설정 관련 최적화 경험 중 인상적인 것들에 대해서 이야기할까 합니다. 파티클과 쉐이더 우선 아래 글처럼 일부 파티클 사용시 기본 설정되는 표준쉐이더 사용으로 모바일에서 FPS이 낮아지는 현상이 있어 수정하였습니다. 참고: Unity 최적화: 모바일 파티클 매터리얼 파티클과 쉐이더 관련 문제는 상대적으로 고성능인 모바일 기기에서는 발견되지 않았었습니다. 성능별로 다양한 스펙트럼을 가진 기기들에서의 테스트가 중요한 거 같습니다. 다음으로 쉐이더는 선택할시 모바일용을 선택하는 것이 중요한 거 같습니다. 파티클의 계산은 물리 연산에 영향을 받습니다. 화면 표시는 원활한 플레이를 위하여 60 FPS로 설정하였지만 파티클의 계산과 물리 연산은 Project Set..

Unity 최적화 작업 후에... #2

이 글에서는 Unity 모바일 게임에 대한 프로그래밍적 최적화 경험 중 인상적인 것들에 대해서 이야기할까 합니다. 프레임 레이트 (FPS) 게임 최적화의 핵심적 결과물은 몇 프레임이 나오는가 하는 것인가 입니다. 프레임이 잘 나온다는 것은 그 만큼 원활히 게임을 플레이할 수 있다는 말이기도 합니다. 모든 최적화의 결과는 기존 FPS를 최적화 후 얼마나 올렸는가로 표현될 수 있기도 합니다. FPS 최적화를 하기 위해서 우선 유니티 프로파일러에 나오는 FPS를 참고하는 것이 좋습니다. 전체적인 흐름에서 대략적인 FPS를 알 수 있습니다. 이외 별개로 개별적인 항목만을 본 FPS도 중요합니다. 한 예로 저사양의 기기에서는 Rendering 항목의 FPS 자체가 적게 나옵니다. 이를 바탕으로 어느 정도의 FPS..

Unity 최적화 작업 후에... #1

뭐 제목은 거창하지만 어떻게 보면 1인 개발로 만들고 있는 하이퍼 캐주얼 류의 2D 모바일 게임을 최적화하고 느낀 점을 적을까 합니다. 용량이 크거나 복잡한 3D 게임이 아닌지라 상대적으로 어려운 내용보다는 기본적인 개념에 중점을 두고 이야기 할까합니다. 전에는 최적화라면 프로그램 최적화 만을 생각했는데 1인으로 리소스 제작, 기획, 프로그래밍을 하다보니 프로그램 최적화 만이 게임이라는 관점에서의 최적화는 아니라는 생각이 들었습니다. 여기서는 최적화한 내용 중 인상 깊었던거 중 비프로그래밍 적인 것을 #1에, 프로그래밍 적인 것을 #2에, 설정 관련된 것을 #3에서 이야기 할까 합니다. 입력에 따른 게임 난이도 최적화 제가 만든 게임은 터치로 적과 폭탄을 부시는 게임입니다. PC 마우스 기반으로 빠르게 ..

C++ 람다 사용시 변수 캡처 주의점과 shared_ptr의 활용

C++의 람다는 근래에 많이 쓰이는 기술 중에 하나 입니다. 람다는 흔희 변수를 캡처하여 내부에서 많이 사용합니다. 이럴 때 생각해야 할 점이 변수를 참조로 캡처할 것인가 복사로 캡처할 것인가 하는 점입니다. 기본적으로 내부에서 캡처한 외부 변수의 값을 변경하고자 하거나 복사에 따른 오버헤드가 크다고 생각한다면 혹은 객체 내부에서 객체 함수 등을 참조해야 한다면 참조로 캡처를 사용하게 됩니다. 반대로 내부에서만 값을 변경 또는 사용하거나 복사에 따른 오버헤드가 크지 않으면 복사로 캡처하여 사용합니다. 람다는 참조로 캡처하여 사용할 때 주의점은 캡처한 변수가 람다를 다 사용할 때까지 메모리에 남아 있어야 한다는 것입니다. 간단한 아래와 같은 예를 하나 살펴보겠습니다. 참고로 이 예제는 실제로 일어날 수 있..

C++ 프로그래밍 2022.01.21

C++ string_view의 이해와 활용

string_view는 C++ 17에 추가된 클래스로 문자열에 대한 참조라고 볼 수 있습니다. 사용법은 string과 유사하며 장점은 string에 비하여 적은 메모리 사용량과 연산 성능에 대한 이점을 가지고 있습니다. 단점은 잘못된 사용시 임시 객체 사용에 따라 참조가 없어져 예상치 못한 에러가 발생할 가능성이 있으며 내부구조가 널로 종료하는 문자열을 참조하지 않는 관계로 널로 종료하는 문자열을 필요로하는 C API와 같은 함수에 사용할 수 없다는 점 등이 있습니다. 참고로 string_view는 가볍다는 장점을 바탕으로 몽고DB C++ 드라이버에서는 벌써 적절하게 사용하고 있습니다. 이 글에서는 string_view의 특성, 사용법, 장점 및 단점을 살펴보도록 하겠습니다. string_view 특성 ..

C++ 프로그래밍 2022.01.15

Unity iOS 크래시 그리고 Exception

iOS 빌드와 같은 경우 설정에 따라서 Unity 코드 상에서 Exception을 잡지 않는 경우 설정에 따라 크래시가 발생하여 프로그램이 종료하게 됩니다. 코드에서 잡지 않은 Exception으로 크래시가 일어나서 프로그램이 종료하게되는 옵션은 Player Settings -> iOS -> Other Settings -> Optimization -> Script Call Optimization입니다. 이 세팅이 유니티에서 기본으로 "Fast but no Exceptions"으로 설정되어 있습니다. 이 옵션 설정으로 인하여 유니티로 만든 게임에서 Exception이 발생할 때 iOS에서 크래시가 발생하게 됩니다. 이 옵션을 "Slow and Safe"로 설정하게 되면 다른 플랫폼처럼 Exception이 ..

Unity FPS 체크 소스

유니티에서 초당 프레임 관련 정보를 보여주는 소스입니다. 위의 이미지와 같이 표시합니다. 기본적으로 한 프레임 실행시간과 한 프레임 실행시간을 기반으로 초당 가능 프레임 수를 표시합니다. 이미지에서 {msec} ms가 한 프레임 실행시간, {frame count} fps가 초당 가능 프레임 수입니다. 여기까지는 보통 인터넷에 존재하는 소스와 비슷합니다. 그런데 이렇게만 표시하면 수치가 너무 빨리 변하여 실제적으로 화면을 보면서 이용하기가 불가능합니다. 그래서 1초 동안 계산된 프레임 중에 최소와 최대 프레임을 같이 표시하도록 만들어 놓았습니다. 이미지에서 {frame count} min fps가 초당 최소 프레임 수이고 {frame count} max fps가 초당 최대 프레임 수입니다. 실제적으로 여기..

Unity 최적화: 모바일 파티클 매터리얼

유니티로 만든 게임을 테스트하는데 특정 파티클을 사용하면 개발 PC나 삼성 S7에서는 이상이 없는데 LG V10에서 프레임 드랍이 일어나는 현상이 있었습니다. 프로파일링시 스크립트에서의 실행 시간은 별문제가 없었고 랜더링 시간이 늘어나는 것만을 확인할 수 있었습니다. 처음에는 파티클 사용에 따른 랜더링 부하라고 생각했다가 파티클을 살피던 중 매터리얼에서 사용하는 쉐이더가 스탠다드 인 것을 확인하고 모바일로 수정하였습니다. 그리고 추가적으로 매터리얼에 사용되는 이미지 크기를 표시에 필요한 수준 만큼 줄여주었습니다. 이 두 가지 작업을 하니 랜더링 시간이 줄었고 LG V10에서의 프라임 드랍은 없어졌습니다. 모바일용 게임을 개발할 때 파티클 사용시 파티클이 이용하는 매터리얼 쉐이더에 주의를 하여야 하겠습니다..

반응형