비전공자도 만드는 Unity 리듬게임 강좌의 맛보기 강의입니다.
Unity 심화 강의는 Unity 기초 강의에 이어서 출시된 강의입니다. 심화 강의에서는 Unity 기초 과정에서 다루었던 내용보다 더 심화적인 게임 개발 기법에 대해서 다루고 있습니다. 이전에 만들었던 Unity 기초 강의에서는 최종 결과물로 모바일 디펜스 게임을 개발해서 실제로 구글 플레이 스토어에 올려보는 과정까지 다루었고요. 이번에 나온 Unity 심화 강의에서는 마찬가지로 2D 게임을 개발해서 구글 플레이 스토어에 올려 보게 될 것인데 올리게 될 게임은 바로 Rhythm Game입니다. 기존의 모바일 디펜스 게임에 비해서 게임 내에 등장하는 Object의 개수가 많고 이펙트 등 관리해야 할 Object가 많다는 점에서 오브젝트 풀링, 코루틴 등의 기법이 잘 활용돼야 게임의 최적화가 가능하기 때문에 그러한 기법들을 강의에서 잘 녹여내고 있습니다. 따라서 Unity를 완전히 처음 접하시는 분들은 기초 강의를 먼저 접하시는 것을 추천 드리고요. Unity를 기존에 다뤄 본 적이 있으시거나 기초 과정을 이미 들으신 분들은 심화 강의로 건너오셔서 더 심화적인 내용을 학습하시는 것을 추천드립니다. Unity 기초 강의 같은 경우는 수강 평이 상당히 좋게 작성이 잘 됐고요. 구성이 알차다는 그러한 평가를 많이 받았습니다. 기초 과정 때는 이렇게 생긴 모바일 디펜스 게임을 만들어 봤었는데요. 이러한 Unity 기초 강의를 넘어서 더욱 심화적인 개념을 다루는 강의가 Unity 심화 강의입니다. 구체적으로 기초 강의와 심화 강의에서 배우는 내용을 커리큘럼을 기준으로 해서 소개해드리자면 기초 강의는 2018년에 출시가 됐고요. 정말 프로그래밍 자체, 혹은 게임 개발 자체를 처음 접하시는 초보자를 위한 강의라고 할 수 있고요. 흔히 프로그래밍에서 어렵다고 하는 주제인 객체지향 프로그래밍 기법 같은 것들은 최대한 배제하고 클래스, 상속 이런 어려운 개념들은 다 빼버리고 정말 쉽게, 어떻게 하면 게임 개발을 가장 쉽게 할 수 있는지에 초점을 맞춰서 만들어진 강의가 기초 강의였다면 이번 심화 강의에서는 더 프로그래밍적인 요소를 많이 넣어서 어떻게 하면 보다 성능이 우수한 게임을 만들 수 있는지에 초점을 맞춰서 강의를 진행했습니다. 그래서 심화 강의에서는 강의를 시작하자마자 기초 강의에서 최종 프로젝트로 만들었던 모바일 디펜스 게임의 소스 코드를 분석하고 최적화까지 해 보는 시간을 가지고요. 그 이후에 Git, 클래스, 생성자, 프로퍼티, 상속 등의 다양한 객체지향 프로그래밍 기법에 대한 원리를 공부하고요. 컬렉션 라이브러리에 대해서 공부한 이후에 실제로 모바일 게임 개발에 있어서 성능 최적화를 위해서 가장 많이 사용되는 기법인 오브젝트풀링 기법에 대해서 자세히 공부하게 될 것이고요. 나아가서 모바일 환경에서 인 앱 결제를 통해 리듬 게임의 곡을 구매하도록 하는 그런 기능을 직접 구현해봄으로써 실제로 이러한 개념들을 다 활용해서 모바일 리듬 게임까지 만들어 보게 될 겁니다. 이후에 모바일 리듬 게임 안에서 사용자들의 회원가입, 로그인 및 게임 랭킹을 담을 수 있는 서버 기능을 직접 구현하게 될 겁니다. 여기에서도 가장 쉽게 서버를 구현하기 위해서 Firebase를 이용하고요. 결과적으로 구글 플레이 스토어에 자기만의 앱을 배포할 수 있도록 강의를 구상했습니다. 실제로 심화 강의에서 만들어 보게 될 리듬 게임이 어떻게 생겼는지 확인해 보도록 할까요. Unity 심화 과정 강의를 통해서 우리가 최종적으로 만들어보게 될 게임은 바로 이렇게 생겼습니다. 바로 이런 식으로 게임 내에 접속하게 되면 특정한 곡을 선택해서 해당 게임을 실행할 수 있고요. 이런 식으로 특정한 곡은 별도로 구매해야 플레이할 수 있도록 인 앱 결제 기능 또한 삽입해주었습니다. 실제로 게임이 어떻게 구성됐는지 확인해 보도록 할게요. 이와 같이 게임 플레이가 끝난 이후에는 자동으로 서버에서 게임 순위 데이터를 받아와서 해당 곡을 플레이한 사용자들의 순위까지 보여 주는 기능을 구현하게 될 겁니다. 지금은 제가 자동 채점 모드를 걸어놔서 현재 만점을 받아서 S 랭크를 받은 것을 확인할 수 있는데요. 실제로 게임을 개발할 때는 단순히 특정한 기능을 그 기능에 맞게 구현할 뿐만 아니라 어떻게 하면 더 테스트를 잘할 수 있는지 그런 내용 또한 굉장히 중요하다고 할 수 있는데요. Unity 심화 강의에서는 이처럼 테스트를 위한 자동 퍼펙트 채점 모드 같은 것들을 도입해서 어떻게 하면 보다 쉽게 테스트를 할 수 있는지 등에 대한 내용도 다루게 될 거예요. 또한 방금 우리가 플레이한 Paint the Sky라는 곡은 실제로 상업적으로, 무료로 이용할 수 있는 곡인데요. 흔히 우리가 리듬 게임을 개발하고자 할 때는 리듬 게임 내에서 사용되는 곡에 대한 저작권 문제가 없어야 하는데요. 이처럼 저작권에 문제없는 곡들을 어떻게 다운로드해서 게임 내에 넣을 수 있는지 등 세부적인 내용까지 강의 내에서 다루고 있습니다. 또한 아까 전에 말씀드렸듯이 Firebase를 이용해서 우리의 모바일 리듬 게임을 이용하는 사용자들에 대한 데이터를 관리할 수 있게 되는데요. 특정한 사용자가 회원 가입을 해서 회원 등록을 하게 되면 사용자의 데이터가 Database에 추가되는 것을 확인할 수 있고 Database 탭에서는 어떠한 사용자가 어떠한 게임을 플레이해서 어떤 점수를 받았는지 등에 대한 정보 또한 Database에 등록될 수 있도록 전부 다 하나씩 개발해 보는 시간을 가져보도록 할 거예요. 이런 식으로 데이터가 잘 들어가 있는 것을 확인할 수 있고요. 또한 데이터의 보안 설정을 위해서 보안 규칙 설정 또한 빠짐없이 해 주는 것을 확인할 수 있습니다. 또한 실제로 안드로이드 스마트폰으로 해당 게임을 실행해서 확인을 해 보시면 특정한 곡 같은 경우는 유료 곡이라서 이런 식으로 구매하기 전에는 플레이할 수 없는 곡입니다라고 나오도록 개발이 된 것을 확인할 수 있는데요. 이처럼 인 앱 결제 기능을 여러분이 만든 모바일 게임에 삽입해서 사용자가 결제했을 때 특정한 기능을 이용할 수 있도록 개발할 수 있습니다. 이처럼 구매하기 버튼을 눌렀을 때 결제 창이 나오는 것을 확인할 수 있고요. 강의 내에서는 먼저 테스트 환경으로 이러한 인 앱 결제 기능을 구현할 수 있도록 하고 나중에 실제로 배포하는 과정까지 상세하게 다루게 될 거예요. 따라서 실제로 플레이 스토어 계정으로 결제를 하게 되면 결제 완료 처리가 이루어지고 곡을 구매한 뒤에 해당 곡을 플레이 할 수 있도록 개발하게 되는 겁니다. 이제 이처럼 인 앱 결제 기능을 구현해서 실제로 게임 내에서 사용자가 특정한 유료 곡을 구매해서 플레이할 수 있도록 하는 기능 구현을 통해서 어떻게 하면 우리가 만들고자 하는 모바일 애플리케이션에 인 앱 결제 기능을 넣을 수 있는지에 대해서까지 공부 할 수 있게 될 겁니다.
