뒤끝 서버
요즘 대부분의 게임이 인터넷을 요구하지만 특히 모바일은 아예 플래시게임 수준의 간단한 게임이 아닌 이상 다 인터넷을 사용한다 봐도 무방하다.
특히 구글 플레이 서비스는 출시를 목표로 하고 있고 지속적인 업데이트가 예정중인 게임이라면 거의 모든 곳에 있다 해도 무방.
구글 플레이 서비스를 이용하면 사용자가 구글 계정을 통해 로그인하게 되는데 이 로그인을 시작으로 각 사용자의 이용 정보를 얻을 수 있고 본격적으로 서버와의 통신이 시작된다.
이쯤오면 이왕 로그인도 되는거 서버와 좀 더 많은 통신을 주고 받는 게임을 만들고 싶어진다.
데이터 저장도 실시간으로 서버 저장하여 어떤 기기로 접속해도 동일하게 이어할 수 있게 하고싶고, 공지사항도 띄워보고, 우편도 보내보고 싶고
더 나아가 멀티플레이 요소도 하면 좋겠지만... 이건 위 기능들에 비해 개발 난이도가 하늘을 찌르니 일단 담아두자.
아무튼 이런 식으로 다양한 기능들을 통해 실시간으로 운영을 하기 위해선 직접 제어가 가능한 서버의 존재가 필수적이다.
요즘은 단순 테스트 정도의 적은 데이터 사용량으론 무료 혹은 거의 무료에 가까운 금액으로 쓸만한 곳이 꽤 있다.
본인이 능력이 된다면 서버부터 구축하여 그때그때 자기 입맛대로 기능을 구현하면 정말 좋겠지만 아쉽게도 나는 그럴 능력이 안된다.
능력을 갖추려곤 해봤는데 맨땅에 헤딩으론 효율이 너무 좋지 않아서 관뒀다.
그러다 찾은 뒤끝서버
이것저것 체험해보다 최종적으로 뒤끝을 택했는데 참 마음에 든다.
지금 약 3개월정도 써본거 같은데 대충 느낀점을 적어보자면..
장점.
1. 공부/테스트/비인기 단계에선 사실상 무료인 요금 지원
개발 테스트 단계, 공부용에선 완전 무료와도 같은 요금 지원을 해준다.
실제 완전 무료는 당연히 아니고 내부 사용량 비례해서 비용이 청구되는데 이게 매달 10만원까지 무료로 지원해준다.
그마저도 내가 착각하고 있는게 아니라면 뒤끝 서버 DB를 이용하면서 DB데이터 조작 과정에만 비용이 붙고 그외 기능은 대부분 무료라 요금이 거의 청구되지 않는다.
지금 대충 게임을 만들면서 비용을 보면 한 달에 대충 3~5원 정도 비용이 확인된다.
개발이 진행될 수록 더 많은 DB를 사용할 것이고 사용자에 따라 사용량이 다르겠지만 사람마다 평균 100원 이내의 비용이 들지 않을까 생각된다.
이말은 대충 1000명의 사용자까진 무료로 사용 할 수 있단 소리다.
이후 등급에 따라 일정 수익 발생 시 수익 비례해서 요금을 지불한다. 이 방식은 아마 다른데서 많이 봤으리라 봄
개인적으로 막 시작하거나 공부를 위한 개발자들에게 너무 파격적인 조건이라 남에게 추천할 이유 1순위라 생각
2. 게임 친화적 API들
게임용으로 나온 서버라 지원해주는 API들도 모바일 게임에서 흔히 보는 기능들이 다수 구비되어있다.
구글/애플 스토어 연동, 자체 유저 정보 관리, 우편, 랭킹, 길드, 채팅 등등...
API들 한 번씩만 훑어봐도 어디서 많이 본듯한 모바일 게임 기능들이 대부분 있다.
3. 공통 리턴 클래스
대부분의 API 리턴 클래스가 동일하다.
즉, API들의 리턴값 활용이 대부분 비슷하여 익숙해질수록 어떤 API든 쉽게 다룰 수 있다.
4. 커뮤니티를 통한 원활한 소통
커뮤니티 공간이 따로 있어 버그, 이슈, 문의 사항에 대한 답을 모두가 볼 수 있다.
단점.
1. 2% 아쉬운 기능들
다 준비되어 있고 나름 유저 편의성을 고려한 흔적이 많이 보인다.
그런데 막상 써보면 뭔가 아쉽다. 불특정 다수의 개발자들에게 제공되고, 보안이나 현실적인 이유와 함께 제공은 되지만 제한적으로 제한되거나 나름 편의성으로 넣은 것 같은 부분이 꽤 거슬리는 경우가 있다.
개인적으론 회원 고유번호와 데이터 리턴 형태가 그러한데 DB 상에는 회원 고유번호로 난수값이 분명 존재하는데 반해 API로는 그 고유번호를 가져올 수 없다.
대체 고유값이 있긴 한데 이건 그냥 최초 가입 시간이다. 고유값이긴 하나 사용자들에게 보여줄 고유번호로 사용하기엔 좀 아쉽다.
데이터 리턴 형태는 Json으로 주는데 여기까진 좋다. 중요한 것은 내가 저장한 형태 그대로 오는게 아니라 한 번 가공이 되서 돌아온다는 것이다.
"N", "L", "S" 등과 같이 값 앞에 하나씩 붙어서 리턴되는데 이게 의도는 리턴이 무조건 string으로 되니 값의 원본을 알려주는 용도로 저렇게 가공된다고 한다.(N = Number, S = String 등등..)
근데 어차피 실제로 사용하려면 우리가 미리 해당 필드를 알고 개발을 해야하는데 그 시점에서 저걸 저렇게 따로 알려줄 필요가 있나 의문이 든다.
나에게 낯선 방식이라 그냥 거부감이 들어서 불편할 뿐인지는 모르겠는데 이렇게 가공되서 리턴 되니 JsonUtility.FromJson<Data> 같은 파싱이 불가능하다. (물론 클래스 하나 더 저런 형태로 만들면 가능은 한데 뭐가 됐든 너무 불편하고 비효율적이다)
2. 문서의 아쉬움
뒤끝 베이스라고 각 API들의 설명들을 정리해둔 공간이 있다.
공식 설명서니까 물론 보고 따라하면 다 되긴 한다. 예시도 있고 설명도 있으니 아무 문제 없긴 한데...
뭔가 부족하다! 보고있다보면 내가 멍청해서 이게 한 번에 이해가 안되나 싶을 정도로 뭔가가 부족하다.
마치 밥 아저씨의 어때요, 참 쉽죠? 를 보고 있는 느낌.
단점들도 몇 개 쓰긴 했지만 진입장벽에 가까운 정도인데다 대체 수단이 존재하고 막상 써보면 익숙해질수록 별로 체감되지 않는다. 애초에 무료와도 같은 요금 지원과 게임 특화 API들만 봐도 이미 진입장벽을 엄청 낮춘 상황인데 저정도는 충분히 감안할 수 있는 정도.
커뮤니티도 보다보면 보안 이슈와 관련되지만 않는다면 다수의 개발자들이 불만을 제기한 사항에 대해선 수정할 의향도 다분하고 지속적인 업데이트로 계속해서 더 나은 기능들을 제공하고 있으니 따로 서버가 없는 개발자들은 한 번쯤 이용해보면 좋을 것 같다.
'Unity > 2020' 카테고리의 다른 글
오큘러스 퀘스트 2 (0) | 2020.11.17 |
---|---|
Unity 2D FOV 연출 (0) | 2020.06.24 |
Addressable Asset system 간단하게 서버 다운로드로 실사용까지 (6) | 2020.06.23 |