초보인데 스마트폰 게임 해상도는 어떻게 하나요
이전글 링크
생초보인데 인디게임 만들고 싶어요 https://gall.dcinside.com/m/game_dev/14394그림 못 그리는데 인디게임 만들고 싶어요 - 1 https://gall.dcinside.com/m/game_dev/14403그림 못 그리는데 인디게임 만들고 싶어요 - 2 https://gall.dcinside.com/m/game_dev/14483
이 글은 초보자 대상으로 쓰는 것이고, 기본적인 개념만 설명한다.
그러니까 자신이 쓰고 있는 게임엔진에 맞게 활용하려면 직접 구글에 검색해서 찾아보자.
1. 일단 많이 사용하는 해상도를 조사하자
1. 안드로이드
안드로이드는 넥서스, 갤럭시 S 시리즈를 참고하는게 편하다.
넥서스 원, 넥서스 S, 갤럭시 S/S2 : WVGA(800 x 480). 1.66
갤럭시 넥서스, 갤럭시 S3 : HD(1280 x 720). 1.77
넥서스 4 : WXGA(1280 x 768). 1.66
넥서스 5, 갤럭시 S4/S5 : FHD(1920 x 1080). 1.77
넥서스 6, 갤럭시 S6/S7 : WQHD(2560 x 1440). 1.77
갤럭시 S8 : Quad HD+(2960 x 1440). 2.05
2. iOS
iOS는 애플밖에 안 만드니까 그냥 아이폰 참고하면 된다.
3GS : 480 x 320. 1.5
4/4s : 960 x 640. 1.5
5/5c/5s/SE : 1136 x 640. 1.77
6/6s/7/8 : 1334 x 750. 1.77
6+/6s+/7+/8+ : 1920 x 1080. 1.77
X : 2436 x 1125. 2.16
https://www.paintcodeapp.com/news/ultimate-guide-to-iphone-resolutions
이것 참고하면 좋다.
해상도에서 제일 오른쪽 숫자는 가로/세로 계산한 값을 소수점 2번째 자리까지만 적은 것이다.
2. 해상도가 너무 많으니까 기준을 잡자
모든 해상도에 다 대응하게 게임을 만드는 것보다는, 한가지 해상도를 정해서 게임을 만들고 해상도가 다를때는 따로 처리를 해주는게 편하다.
높은 해상도를 기준으로 잡으면 저사양기기에서 잘 안 돌아가고, 리소스 작업량이 많으니까 적당한 해상도를 기준으로 하는게 좋다.
안드로이드, iOS 둘다 해상도가 다양하지만 해상도 비율은 16:9(1.77)를 기준으로 잡는게 제일 무난하다. 해상도는 안드로이드 HD(1280 x 720), iOS 1136 x 640이 무난하다.
3. 만들고 있는 게임을 생각하자
어떤 해상도에 상관 없이 모두 똑같은 화면이 보여야 하는가?화면이 약간 잘리거나, 더 보여줘도 문제가 없는가?
만들고 있는 게임이 이 2개 중에서 어떤 것인지 생각을 해보자.
슈팅 게임이라면 보여주는 화면이 일정해야 밸런스 문제가 없다. 횡스크롤 런게임이라면 달리고 있는 가로방향은 똑같이 보여줘야 하지만 세로는 약간 짤리거나, 더 보여줘도 밸런스 상으로 별 문제가 없다(게임 특성에 따라 다르겠지만)
퍼즐 게임이라면? 진짜 편하다. 퍼즐판을 가운데에 위치시키고 나머지는 짤리거나 더 보여줘도 상관 없는 배경으로 채우면 된다.
요즘 유행하거나 최근에 나온 뽑기 게임 몇 개 해봤는데, 소녀전선이랑 오버히트는 가로모드에 해상도가 다르면 위/아래(특히 아래쪽을 더) 많이 보여주는 방식을 사용해서 태블릿으로 게임을 실행하면 보이는 화면이 많아지게 된다.
4. UI와 게임 화면
게임엔진들은 보통 게임 화면을 그리고, 그 위에 UI를 그리는 방식을 사용한다.
그리고 UI는 기본적으로 해상도가 달라도 적절하게 보여줄수 있게 설정이 되어 있고, 세부적으로 더 자세하게 설정을 해줄수 있다.
그러면 UI만으로 게임 만들면 게임 해상도 다양하게 맞출 필요가 없겠네? 라고 생각할 수도 있다.
실제로 유니티의 에셋 중에서 UI로 유명한 NGUI로 게임 만드는 방법을 설명한 책도 있다. 간단한 게임이라면 이 방법을 사용하는 것도 방법이겠지만...
5. 해상도 맞추는 방법
일반적으로 많이 사용하는 방법들이다. 자신이 개발하고 있는 게임에 제일 적절한 것을 찾아서 사용하자.
1. 비율 무시하고 전체 화면 크기에 맞게 표현하는 방법
같은 비율인 해상도이면 괜찮지만, 기준으로 잡는 비율이랑 차이가 있는 해상도일때는 왜곡되는 문제가 생기기 때문에 안 좋은 방법이다.
2. 레터 박스
기준으로 잡은 비율과 해상도를 유지해서 화면에 다 보이게 한다. 그러면 남는 공간은? 레터 박스라고 불리는 검은 박스로 채워 넣는다. 해상도나 비율이 달라도 전부 같은 화면을 보여주고, 짤리거나 왜곡되는 것도 없다는 장점이 있다.
하지만 기준 해상도의 비율과 차이가 큰 비율인 경우, 레터박스의 크기가 커서 거슬린다는 단점이 있다.
3. 비율 유지해서 표시, 하지만 레터박스 없음
위의 방식과 비슷하게 비율을 유지해서 화면을 채운다. 단, 비율이 안 맞으면 레터박스가 생기는게 아니라 경우에 따라서 화면이 잘리거나, 더 보여줄 수 있다. 해상도에 따라서 가로만/세로만/가로, 세로 둘다 더 보여주거나 짤릴 수 있다.
화면에서 필수로 보여줘야 할 것이 가운데에 몰려 있다면, 이 방법을 사용하면 대부분 쉽게 해결할 수 있다(위에서 예로 들었던 퍼즐게임)
4. 가로 고정/세로 고정
위의 방식과 비슷하지만, 가로 또는 세로를 고정한 채로 비율을 맞춘다.
그러면 가로를 고정했다면 세로가 다르게 보이는 것만 생각하면 되고, 세로를 고정했다면 가로가 다르게 보이는 것만 생각하면 된다.
횡스크롤 런게임이라면 가로를 고정하는 방식이 적절하다. 위에서 예로 들었던 소녀전선, 오버히트 같은 뽑기 게임도 이 방법을 사용한 것 같다.
6. 찾아 봐야 할 것
보통 게임을 실행했을 때 기기의 width, height를 확인하고 어떻게 할지 정한다.
그러니까 게임엔진이 width, height 확인하는 방법 찾고
각 방법에 따라서 검색해야 할 키워드는
resolution, exact fit, letter box, fixed width, fixed height, camera, aspect ratio 등이 있다.
이런 것들이 있으니까 자신이 사용하는 게임 엔진 이름과 함께 적절하게 검색하면 친절한 튜토리얼이나 코드가 나올 것이다.
댓글 영역
획득법
① NFT 발행
작성한 게시물을 NFT로 발행하면 일주일 동안 사용할 수 있습니다. (최초 1회)
② NFT 구매
다른 이용자의 NFT를 구매하면 한 달 동안 사용할 수 있습니다. (구매 시마다 갱신)
사용법
디시콘에서지갑연결시 바로 사용 가능합니다.