-
[Unity][AWS GameLift] 간단한 FPS 게임 개발 - AWS GameLift 연동하기2024년 12월 09일
- 유니얼
-
작성자
-
2024.12.09.:52
728x90AWS GameLift는 Amazon Web Services(AWS)가 제공하는 멀티플레이어 게임 서버 호스팅 서비스로, 대규모 온라인 게임에서 게임 서버를 손쉽게 배포, 운영, 확장할 수 있도록 도와줍니다. 이번 블로그에서는 AWS GameLift의 주요 기능과 특징을 설명하고 간단하게 Unity에서 GameLift를 통합하고 AWS Sample 게임을 호스팅해보겠습니다.
AWS GameLift란?
AWS GameLift는 게임 서버의 호스팅, 스케일링, 매치메이킹 등을 자동화하여 멀티플레이어 게임에서 발생하는 복잡한 서버 관리 작업을 단순화합니다. 이를 통해 개발자는 게임 자체의 개발에 집중할 수 있으며, AWS의 강력한 클라우드 인프라를 활용해 안정적이고 효육적인 게임 서비스를 제공할 수 있습니다.
주요기능
1, 게임 서버 호스팅
- GameLift는 Amazon EC2를 기반을 게임 서버를 배포하고 실행합니다.
- 게임 서버를 운영하기 위한 하드웨어 및 네트워크 리소스를 자동으로 관리합니다.
- Fleet을 생성하여 게임 서버를 빠르게 배포하고 관리할 수 있습니다.
2, 자동 스케일링
- 플레이어 수에 따라 서버 리소스를 자동으로 확장하거나 축소하여 비용을 절감합니다.
- 게임 트래픽이 많을 때 서버를 확장하고, 플레이어 수가 적을 때 리소스를 줄여 효율적으로 운영할 수 있습니다.
3, 매치메이킹(FlexMatch)
- FlexMatch를 통해 플레이어를 자동으로 매치하고, 적합한 게임 서버를 할당합니다.
- 매치 규칙(예: 레벨, 랭크 등)을 설정하여 공정하고 최적화된 게임 경험을 제공합니다.
4, 게임 세션 관리
- GameLift API를 사용해 게임 세션을 생성, 종료 또는 조회할 수 있습니다.
- 서버에서 동시 접속 플레이어를 관리하고, 클라이언트에 연결 정보를 전달합니다.
5, 서버 상태 모니터링
- AWS Management Console에서 서버 상태, 성능, 플레이어 세션 등의 정보를 실시간으로 확인할 수 있습니다.
- 서버 로그를 저장하여 문제를 디버깅할 수 있습니다.
6, 보안 및 안정성
- AWS 인프라의 보안과 안정성을 기반으로 DDoS 공격 방어와 데이터 암호화 기능을 제공합니다.
- API Gateway, Lambda, Cognito와 같은 AWS 서비스와 연계해 인증과 보안을 쉽게 설정할 수 있습니다.
Unity프로젝트에 Amazon Game Lift 플러그인 설치하기
Amazon GameLift 플러그인을 Unity 프로젝트에 설치하고, 샘플 게임을 사용해 GameLift의 기능을 테스트하는 방법을 단계별로 설명하겠습니다. 우선 AWS GameLift Unity Plugin을 다운 받아야 합니다. 아래에 링크로 들어가서 Release를 클릭하고 2.1.0 버전 Zip 파일을 다운 받습니다. 또한 AWS CLI을 설치해서 서버 작업을 CLI로 컨트롤 할 수 있도록 합니다.
https://github.com/aws/amazon-gamelift-plugin-unity
https://aws.amazon.com/ko/cli/(1) Unity Project에 UnityNuGet 추가하기
Unity 프로젝트에서 NuGet 패키지를 관리하기 위해 UnityNuGet을 설정합니다.
1, Unity 편집기에서 프로젝트를 열고 Edit > Project Settings 를 선택합니다.
2, Package Manager 섹션으로 이동하여 Scoped Registries 를 엽니다.
3, + 버튼을 눌러 다음 정보를 입력합니다:
Name: Unity NuGet URL: https://unitynuget-registry.azurewebsites.net Scope(s): org.nuget
(2) 플러그인 및 C# 서버 SDK 설치
Amazon GameLift 플러그인 및 서버 SDK를 Unity 프로젝트에 추가합니다.
1, Amazon GameLift 플러그인 다운로드: 다운로드한 압축 파일을 해제하여 독립형 플러그인과 C# 서버 SDK 패키지를 준비합니다.
2, Unity 편집기에서 프로젝트를 열고 Window > Package Manager 로 이동합니다.
3, + 버튼을 눌러 새 패키지를 추가합니다:
- Tarball에서 패키지 추가를 선택.
- com.amazonaws.gameliftserver.sdk-<version>.tgz 파일을 선택하여 C# 서버 SDK를 추가.
- com.amazonaws.gamelift-<version>.tgz 파일을 선택하여 독립형 플러그인을 추가.
4, 플러그인이 성공적으로 설치되면 Unity 메뉴에 Amazon GameLift 메뉴가 추가된 것을 확인합니다.
(3) 샘플 게임 가져오기
Amazon GameLift 플러그인에는 샘플 게임이 포함되어 있어 빠르게 GameLift를 테스트할 수 있습니다.
- Unity 편집기에서 Amazon GameLift > Sample Game > Import Sample Game 을 선택하여 샘플 게임 자산을 가져옵니다.
- Amazon GameLift > Sample Game > Initialize Setup 을 선택하여 샘플 게임을 구성합니다.(Initialize Setup을 안하면 게임 시작시 게임 세션이 생성되지 않아 클라이언트에서 게임을 찾지 못합니다.)
- 설치가 완료되면 두 개의 새로운 장면과 추가 자산(예: GameLiftClientSettings)이 프로젝트에 추가됩니다.
AWS 사용자 프로필(IAM) 설정
Amazon GameLift 플러그인을 Unity 프로젝트에 통합하려면, AWS 사용자 프로필을 설정하여 플러그인을 인증된 AWS 계정과 연결해야 합니다. 이를 통해 GameLift 기능을 Unity에서 원활히 사용할 수 있습니다. 아래에서는 프로필 설정 과정을 단계별로 설명합니다.
1. IAM 사용자 생 및 권한 설정
1.1 IAM 사용자 생성
1, AWS Management Console에 로그인한 후 IAM 서비스로 이동.
2, 왼쪽 메뉴에서 사용자(User) 를 선택하고 사용자 추가(Add user) 를 클릭.
3, 사용자 이름을 입력 (예: GameLiftUnityUser).
5, 다음을 클릭하여 권한 설정 단계로 이동, 직접 정책 연결을 선택(다른 권한 옵션을 선택하셔도 상관없습니다.)
6, 검토 및 생성에서 사용자를 생성합니다.
- 성공적으로 생성되면 액세스 키 ID와 보안 키(Secret Key) 를 다운로드
- 이 정보는 Unity 플러그인에서 프로필을 설정할 때 필요합니다. 중요한 정보이니 안전하게 보관하세요.
1.2 유니티와 연동
1, Amazon GameLift > Set AWS Account Profiles 로 이동한 후 사용자 생성(Create user) 버튼을 클릭.
2, Profile Name(사용자 이름), AWS Access Key ID, AWS Secret Key, AWS Region(서버 호스트 지역)을 설정합니다.
1.3 AWS 프로필 부트스트랩 설정
부트스트랩이란?
부트스트랩은 선택한 AWS 프로필에 Amazon S3 버킷을 연결하는 과정입니다. GameLift 플러그인은 S3 버킷을 사용하여 빌드 아티팩트와 프로젝트 설정 파일을 저장합니다.
1, AWS 프로필이 활성화되면 부트스트랩 상태를 확인: 프로필이 아직 부트스트랩되지 않았다면 경고 메시지가 표시.
2, Bootstrap Profile 버튼 클릭.
3, 새 S3 버킷 생성 또는 기존 버킷 사용:
4, 부트스트랩 상태가 Active 로 변경될 때까지 기다립니다.
Amazon GameLift 샘플 게임 실행
Amazon GameLift의 Anywhere 플릿은 로컬 환경 또는 사용자 지정 하드웨어에서 멀티플레이어 게임 서버를 실행할 수 있는 강력한 솔루션입니다. Unity와 Amazon GameLift 플러그인을 사용해 Anywhere 플릿을 설정하고, 로컬에서 샘플 게임을 실행하는 워크플로를 단계별로 정리했습니다.
1. Anywhere 플릿 설정
Anywhere 플릿은 게임 서버를 실행하기 위한 환경을 구성하는 첫 단계입니다.
1, Anywhere 플릿 메뉴 열기 : Unity 편집기에서 Amazon GameLift > Host with Anywhere 를 선택합니다.
2, 플릿 생성 또는 선택
- 기존 플릿이 있다면 드롭다운 메뉴에서 선택합니다.
- 새 플릿을 생성하려면:
- Create New Anywhere Fleet 를 선택.
- 플릿 이름 입력 (예: TestAnywhereFleet).
- 생성된 플릿이 활성(Active) 상태가 될 때까지 기다립니다.
2. 로컬 컴퓨팅 등록
Anywhere 플릿에 로컬 워크스테이션을 컴퓨팅 리소스로 등록합니다.
1, 로컬 컴퓨팅 등록 메뉴 : Amazon GameLift > Host with Anywhere > Add Your Compute to the Fleet 를 선택합니다.
2, 컴퓨팅 이름 입력 : 고유한 이름을 지정 (예: LocalWorkstation).
3. 클라이언트 빌드
샘플 게임 클라이언트를 실행 파일로 빌드합니다.
1, Unity 빌드 설정 열기 : Unity 편집기에서 File > Build Settings 로 이동합니다.
2, 빌드 설정 구성 : Scenes In Build 목록에 클라이언트 장면 추가.
3, 클라이언트 빌드 시작 : Build 버튼을 클릭하여 클라이언트 실행 파일을 생성합니다.
4. Editor에서 서버 실행
로컬에서 서버를 실행하여 클라이언트가 연결할 수 있도록 설정합니다.
1, 서버 실행 메뉴 : Unity 편집기에서 Amazon GameLift > Host with Anywhere > Launch Game를 선택합니다.
2, Launch Server In Editor 버튼을 클릭해서 서버를 실행합니다.
5. 클라이언트 실행
빌드된 클라이언트를 실행하여 서버와 연결하고, 샘플 게임 세션을 시작합니다.
1, 클라이언트 실행 파일 실행 : 빌드된 실행 파일을 하나 이상 실행합니다.
2, 클라이언트 UI에서 로그인 : 아무 닉네임, 비밀번호를 눌러도 로그인됩니다.
3. 멀티플레이어 테스트
- 샘플 게임은 기본적으로 최대 4명의 플레이어 슬롯을 지원합니다.
- 여러 클라이언트를 실행해 세션 생성 및 참여를 테스트할 수 있습니다.
반응형다음글이전글이전 글이 없습니다.댓글