Skip to content

Instantly share code, notes, and snippets.

@CenoX
Created April 5, 2017 17:24
Show Gist options
  • Save CenoX/d863826105fae3160ea78423b1475bd5 to your computer and use it in GitHub Desktop.
Save CenoX/d863826105fae3160ea78423b1475bd5 to your computer and use it in GitHub Desktop.
Developing a Game Center-Aware Game

Game Center에 연동된 게임 개발

Original Document - Developing a Game Center-Aware Game

Game Center 지원을 추가하는 것은 단순한 코딩 변경 이상의 것을 요구합니다. Game Center는 게임 디자인에 대한 특정 요구 사항을 부과합니다. 예를 들어 리더 보드를 구현하려면 게임에 플레이어의 실적을 정량적으로 측정 할 수있는 방법이 있어야 합니다.

그러나 Game Center는 게임을 디자인하고 테스트하는 방법을 변경합니다. 이는 단순히 앱에 코드를 추가하는 것이 아닙니다. Game Center에서 사용하는 asset도 구성해야 합니다. 이러한 asset은 앱 번들과 별도로 구성되지만 게임의 코드와 밀접하게 관련되어 있습니다. 모든 조각이 올바르게 작동하도록 하려면 이 조각들을 테스트해야합니다.

Game Center 연동된 게임을 만들려면 코드 작성을 시작하기 전에 이러한 기본 사항을 이해해야합니다.

사용자 인터페이스에서 Game Center 지원

Game Center 지원을 게임에 추가하면 게임 사용자 인터페이스의 일부에 Game Center 콘텐츠가 표시됩니다. 플레이어 인증과 같은 일부 콘텐츠가 필요합니다. 리더 보드와 같은 다른 사용자 인터페이스 요소는 선택 사항이지만, 종종 기대하는 플레이어도 있습니다.

그림 1-1은 일련의 화면과 화면 사이의 전환으로 표시되는 게임의 사용자 인터페이스 모델을 보여줍니다. 모든 게임이 이처럼 정확한 사용자 인터페이스 화면 구성을 사용하는 것은 아니지만 Game Center를 추가하면 게임의 사용자 인터페이스가 어떻게 변경 될 수 있는지에 대한 토론을 시작할 수 있습니다.

그림 1-1 게임 사용자 인터페이스 화면의 흐름도 alt tag

위 샘플 게임이 시작되면 플레이어가 가장 먼저 보는 것은 로딩 화면입니다. 게임은 많은 메모리를 사용하는 이미지, 3D 모델, 사운드 및 게임 데이터를 자주 필요로합니다. 이러한 리소스는 게임이 실행되는 동안 빠르게 액세스해야합니다. 가끔 이를 달성하기 위해 게임은 처음 실행될 때 중요한 리소스를 로드하고 앱이 종료 될 때까지 메모리에 유지합니다. 일반적인 로딩 화면에는 콘텐츠가로드되는 동안 진행률 표시 줄이나 애니메이션 사용자 인터페이스와 함께 게임이나 회사에 대한 정보가 표시됩니다., 사운드 및 게임 데이터를 자주 필요로합니다. 이러한 리소스는 게임이 실행되는 동안 빠르게 액세스해야합니다. 가끔 이를 달성하기 위해 게임은 처음 실행될 때 중요한 리소스를 로드하고 앱이 종료 될 때까지 메모리에 유지합니다. 일반적인 로딩 화면에는 콘텐츠가 로드되는 동안 진행률 표시 막대나 애니메이션 사용자 인터페이스와 함께 게임이나 회사에 대한 정보가 표시됩니다.

게임에 충분한 리소스가 로드되면 메뉴 화면으로 전환됩니다. 일반적으로 이것은 플레이어가 보는 첫 번째 대화형 화면입니다. 메뉴 화면에는 플레이어가 게임 플레이 또는 게임의 다른 기능을 시작하는 데 사용하는 일련의 버튼이 있습니다. 예를 들어, 다음 기능 중 일부 또는 전부는 메뉴 화면에서 일반적으로 액세스됩니다.

  • 싱글 플레이 모드

  • 멀티 플레이 모드

  • 게임 옵션

  • 소셜 네트워킹 서비스

그림 1-1의 화면 흐름을 사용하여 싱글 플레이 버튼을 눌러 게임의 난이도를 선택하게 할 수 있습니다. 이 화면의 목적은 플레이어에게 게임을 즐기는 방법에 대한 옵션을 제공하는 것입니다. 게임의 디자인에 따라 이 구성 프로세스는 한 화면의 간단한 인터페이스이거나 복잡한 아래의 사용자 인터페이스 화면일 수 있습니다. 예:

  • 플레이어가 색상을 선택할 수있게 해주는 체스 게임.

  • 플레이어가 특정 퍼즐을 선택하여 재생할 수있게 해주는 퍼즐 게임.

  • 플레이어가 캐릭터를 구성 할 수 있는 화면이 있는 롤 플레잉 게임.

게임 플레이 화면은 게임 논리의 대부분을 실행하는 곳입니다. 프로젝트의이 부분에는 렌더링 코드, 사용자 인터페이스 상호 작용 및 게임 개념을 실행하는 게임 논리가 포함됩니다. 구현중인 게임의 유형에 따라 앱의 게임 플레이는 단일 화면이되거나 여러 화면 사이에 전환이있는 여러 화면이 될 수 있습니다.

플레이어가 게임을 마친 후에 플레이어에게 그들이 한 일을 알려주는 에필로그 화면이 나타납니다. 예를 들어, 득점 메커니즘을 포함하는 게임은 점수를 계산하는 방법을 플레이어에게 보여 줄 수 있습니다. 플레이어가이 화면을 닫으면 게임이 주 메뉴로 다시 전환됩니다.

그림 1-2는 Game Center를 통합하기 위해 수정 된 게임의 예를 보여줍니다.

그림 1-2 Game Center가 활성화된 UI alt tag

모든 Game Center 앱은 플레이어를 인증해야합니다. 인증은 일반적으로 사용자가 게임을 시작하자마자 시작됩니다. 샘플 게임에서는 제목 화면이 표시되는 동안 인증 프로세스가 시작됩니다. 플레이어가 현재 Game Center에 로그인하지 않은 경우 타이틀 화면이 Game Center의 인증 화면으로 일시적으로 대체됩니다. 이 화면은 플레이어가 인증 프로세스를 완료또는 취소할 때 까지 유지하며, 플레이어를 타이틀로 되돌립니다. 플레이어가 이미 Game Center 계정에 로그인 한 경우 인증 화면이 표시되지 않습니다. 대신 플레이어가 되돌아 온 것을 환영하기 위한 배너가 잠시 표시됩니다.

이제 메뉴 화면에 Game Center 콘텐츠를 표시하는 버튼이 포함됩니다. 플레이어가 이 버튼들 중 하나를 누르면 게임은 Game Kit의 사용자 인터페이스 클래스 중 하나를 할당, 초기화 및 제시합니다. 해제되면 화면이 메뉴 화면으로 되돌아갑니다.

그림 1-2에 표시된 게임은 멀티 플레이어 게임 모드를 제공하도록 수정되었습니다. 싱글 플레이 모드와 마찬가지로 게임은 원하는 매치를 구성하기위한 일련의 화면을 제공합니다. 이 화면 중 일부는 게임과 관련이 있으며 게임 옵션을 구성하는 데 사용됩니다. 다른 화면은 내장 매치 메이킹 사용자 인터페이스를 표시합니다. 게임의 구성 화면은 매치 메이킹 화면 전후에 나타날 수 있습니다. 매치 메이킹 화면이 나타나기 전에 선택한 사항은 일반적으로 매치 메이킹 경험에 영향을 미치는 선택입니다. 예를 들어, 플레이어는 특정 맵을 선택하여 동일한 맵에 관심이있는 플레이어와 일치시킬 수 있습니다. 매치 메이킹이 완료된 후에 나타나는 구성 화면은 이제 매치에 연결된 선수들이 경기가 어떻게 진행되는지에 대한 다른 결정을 내릴 수있게합니다. 두 세트의 화면에는 경기의 모든 플레이어와 동기화되어야하는 경기 구성 데이터가 포함됩니다.

마지막으로 Game Center 에 연동된 게임은 Game Center 와 관련된 푸시 알림을 플레이어가 받을 때에도 (예: 플레이어가 경기에 초대 된 경우) 시작할 수 있습니다. 푸시 알림으로 게임을 시작한 경우 인증 프로세스가 완료된 직후에 인증 화면으로 직접 전환 할 수도 있습니다. 이 경우 타이틀 화면은 잠깐 동안 만 나타납니다.

그림 1-2에서는 표시 할 내용의 새로운 화면에 초점을 맞추지만, 기존 화면의 내용이 변경되거나 해당 화면에서 수행하는 작업이 변경 될 수 있습니다. 예를 들어, 경기가 끝나면 Game Center 리더 보드에 표시되는 점수를 게임에 보여지게 할 수 있습니다. 마찬가지로 게임 플레이 중에 플레이어가 업적 달성에 한걸음 가까워지면, 업데이트 된 진행 상황이 Game Center에 전송됩니다.

이것은 게임의 사용자 인터페이스를 디자인하는 유일한 방법 일 뿐이라는 사실을 기억하는 것이 중요합니다. 사용자 인터페이스를 구축 할 때 다른 대안을 고려하고 게임에 가장 적합한 것을 선택해야합니다. 예를 들어, 많은 게임은 일관된 예술적 테마로 사용자 정의 된 그래픽 디자인을 사용합니다. 이 경우 Game Center의 표준 사용자 인터페이스 클래스는 게임의 테마와 일치하지 않습니다. 그래서, 여러분이 묻어야 할 한 가지 질문은 표준 사용자 인터페이스 (추가하기 위해 거의 노력하지 않음)를 사용할지 아니면 사용자 정의 사용자 인터페이스를 통합할지 여부입니다. 사용자 지정 사용자 인터페이스를 만드는 경우 사용자 인터페이스를 콘텐츠의 고유 한 화면으로 만들지 또는 게임의 메뉴 화면과 같은 기존 인터페이스에 통합할지 여부를 결정해야합니다.

게임 디자인 적용하기

기능 요구사항 제한사항 어셋
리더보드 채점 메커니즘 리더 보드의 최대 수, 리더보드 점수의 형식 지정 옵션 문자열, 리더보드 정렬, 아트웍
리더보드 세트 리더보드 허용되는 리더보드 및 세트의 최대 수입니다. 그룹의 모든 앱에는 세트가 있거나 세트가 없어야합니다. 문자열, 리더보드 그룹화, 아트웍
업적 플레이어가 게임에서 무엇을 하는지 추적하기 위한 코드 게임 당 최대 업적, 최대 점수 할당. 문자열, 삽화
도전과제 먼저 리더보드 또는 업적을 반드시 구현해야합니다. - -
게임 저장 게임 정보로드 및 저장 코드 플레이어에게 iCloud 계정이 꼭 있어야합니다. -
매치 메이킹 멀티 플레이어 게임 디자인 플레이어 수, 데이터 패킷 크기, 네트워킹 수 맞춤 초대장 소리

Game Center 소리 사용자화 하기 ( TOOD )

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