Skip to content

Instantly share code, notes, and snippets.

@CenoX
Last active April 5, 2017 16:28
Show Gist options
  • Save CenoX/81f302667cb29021deac0147073596f7 to your computer and use it in GitHub Desktop.
Save CenoX/81f302667cb29021deac0147073596f7 to your computer and use it in GitHub Desktop.
About Game Center

About Game Center

Original Document - About Game Center

사람들은 게임을 좋아합니다. 앱 스토어의 게임도 예외는 아닙니다. 게임은 계속해서 iOS에서 가장 인기있는 앱 카테고리입니다. 게임은 본질적으로 사회적 활동입니다. 경우애 따라, 이 사회적 상호 작용은 게임이 경쟁 또는 멀티 플레이 기반 협동 게임 플레이를 제공 할 때와 같이 게임 자체의 일부입니다. 또한 싱글 플레이어를 목표로 한 게임의 경우에도 플레이어는 자신의 업적을보고 공유하고 싶어합니다.

소셜 게임은 게임 플레이에서 중요한 부분이므로 Apple은 Game Center 서비스를 통해 이를 직접 지원합니다. Game Center를 사용하면 플레이어의 장치를 Game Center 서비스에 연결하고 정보를 교환 할 수 있습니다. 다음 그림은 사용자가 Game Center와 상호 작용할 수있는 몇 가지 방법을 보여줍니다.

alt tag

위의 그림에서, 각 플레이어는 다른 활동을하지만 모두 Game Center와 상호 작용합니다.

  • Bob은 Apple에서 제공 한 Game Center 앱을 사용하여 Game Center를 지원하는 게임에서 얻은 점수를 봅니다. Game Center 앱은 Bob의 점수와 다른 플레이어가 얻은 점수를 보여줍니다. 점수가 Game Center 앱에 의해 표시 되더라도 점수 데이터 및 형식은 게임에 의해 Game Center에 제공됩니다.

  • Joe는 업적을 지원하는 모험 게임을하고 있습니다. 방금 완료하고자 하는 퀘스트 항목을 발견했습니다. 게임은 거기에 저장된 진행 상황을 업데이트하기 위해 Game Center에 메시지를 전송합니다.

  • Mary, Alice, Charlie는 Game Center와의 매치 메이킹을 지원하는 게임을 하고 있습니다. Game Center는 플레이어의 장치가 서로를 찾고 서로 연결할 수있는 플랫폼을 제공합니다. 게임은 Game Center 서버를 통해 참가자들간에 데이터를 교환합니다.

  • Sara는 Game Center 메치 메이킹 시스템을 이용한 또 다른 멀티플레이 게임을 하고 있습니다. Sara의 게임은 턴 기반 플레이를 지원하고 Sara는 자신의 행동으로 전환한다는 푸시 알림을 받았습니다.

요약

Game Center는 게임 개발자와 최종 사용자 모두에게 기능을 제공하는 상호 연결된 구성 요소 모음으로 보는게 가장 적합합니다.

  • Game Center 서비스는 Game Center의 온라인 부분입니다. Game Center 서버는 플레이어 및 게임 데이터를 저장하고 데이터 및 기타 서비스를 Mac 및 iOS 장치에 판매합니다.

  • GameKit 프레임워크는 개발자가 Game Center에 대한 지원을 게임에 추가하는 데 사용하는 클래스를 제공합니다. GameKit는 iOS 4.1 및 OS X v10.8부터 사용할 수 있습니다.

  • Game Center 앱은 게임 센터의 기능에 액세스하기 위해 플레이어가 사용하는 중앙 집중식 앱을 제공합니다.

플레이어가 Game Center에서 Game Center를 활용하고 Game Center 앱에서 게임을 볼 수있게하려면 Game Center에 대한 지원을 게임에 명시 적으로 추가해야합니다. 인증을 구현 한 다음 적어도 하나의 다른 Game Center 기능을 구현하면됩니다.

일부 게임 리소스를 Game Center 서비스에서 런타임에 제공

모든 앱에는 이미지 및 현지화 된 텍스트가 번들 내에 포함되어있어 앱의 사용자 인터페이스를 표시하는 데 사용됩니다. 앱은 필요한 경우 번들에서 이러한 리소스를로드합니다. Game Center 인식 게임을 디자인 할 때 만드는 리소스 중 일부는 번들에 저장되지 않습니다. 대신 게임 개발 과정에서 해당 리소스가 Game Center 서비스에 업로드됩니다. 런타임에 게임은 Game Center에서 리소스를 다운로드합니다. 이러한 리소스를 Game Center에 저장하는 주요 이유는 해당 리소스가 Game Center 앱에서도 사용되기 때문입니다. 예를 들어 Game Center 앱이 게임의 리더 보드 중 하나를 표시하면 제공된 리소스를 다운로드하여 게임과 동일한 방식으로 점수 데이터를 표시합니다.

Game Center에 제공되는 리소스 중 일부는 게임을 디자인, 개발 및 테스트하는 방법에 영향을 미칩니다.

관련 챕터 - Developing a Game Center-Aware Game

앱에 Game Center의 사용자 인터페이스 요소를 표시

GameKit은 플레이어에게 전체화면 사용자 인터페이스를 보여주는 많은 클래스를 제공합니다. 리더 보드, 업적 및 매치 메이킹 화면을 표시하기위한 표준 클래스가 제공됩니다. 예를 들어, GKGameCenterViewController 클래스는 Game Center 콘텐츠를 게임에 표시하는 가장 간단한 방법을 제공합니다.

iOS에서 이러한 클래스들이 뷰 컨트롤러로 제공합니다. 게임에 탑제된 뷰 컨트롤러는 필요한 경우에 뷰 컨트롤러 중 하나를 제공하게 됩니다. OS X에서는, 동일한 클래스가 사용되지만 게임 센터가 이를 자체적으로 제공합니다.

Gamekit은 배너도 같이 제공합니다. 배너는 짧은 시간동안 나타나 플레이어에게 메시지를 전달하고 사라집니다. Gamekit은 자동적으로 플레이어가 일정 조건을 달성했을 때 배너를 표시할 수 있습니다. 물론 GNNotificationBanner 클래스를 사용해 개발자가 직접 배너에 표시될 메시지를 관리할 수도 있습니다.

관련 챕터 - Displaying Game Center User Interface Elements

Game Center 기능은 플레이어 인증 후 사용할 수 있습니다.

모든 Game Center 기능들은 사용자가 기기에서 인증 과정을 거친, 즉 local player 상태가 되어야 사용할 수 있습니다. 플레이하려는 게임이 Game Center 기능을 사용하기 전, 사용자는 local player 상태로 인증을 마쳐야 합니다. 대부분의 게임에 적용된 Game Center 클래스들은 사용자가 인증 과정을 거쳐야 작동하고, 인증된 local player를 참조합니다. 예를 들어, 플레이하는 게임에서 리더보드에 점수가 기록된 경우 local player에게 기록된 점수를 알려주게 됩니다.

관련 챕터 - Working with Players in Game Center

리더보드는 당신의 게임이 점수를 기록할 수 있어야 동작합니다.

리더보드는 당신의 게임이 Game Center 서비스에 점수를 등록할 수 있도록 해줍니다. 플레이어들은 일반적으로 Game Center 앱의 리더보드를 통해 기록된 점수들을 볼 수 있지만, 그게 싫다면 개발하는 게임 안에 표준 리더보드 인터페이스를 단 코드 몇 줄로 구현해 띄울 수도 있습니다. 혹시 리더보드의 외관부터 뜯어 고치고 싶다면 게임에서 직접 점수 데이터까지 다운로드 받을 수 있습니다. 내 게임의 점수 기록 방식에 맞게 여러개의 리더보드를 만들어 커스터마이즈도 가능합니다.

관련 챕터 - Leaderboards, Achievements, and Challenges - [Translated by Yechan Kim]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment