게임 빌드 프로세스 이해
Windows용 빌드
- 빌드 과정
- File -> Build Settings 이동
- Platform 목록에서 Windows 선택
다른 플랫폼이었다면 Switch Platform
- 원하는 씬을 Scenes in Build 목록에 추가
- Player Settings에서 게임 설정 변경
회사 이름, 게임 아이콘 등
- Build
Windows Player Seetings
- General
- Company Name : 회사 이름
- Product Name : 게임 이름
- Version : 게임 버전
- Default Icon : 게임 아이콘
_ Resolution and Presentation
- Default Screen Width, Default Screen Height : 게임이 처음 실행될 때의 기본 화면 너비와 높이
- Fullscreen Mode : 게임이 전체 화면으로 실행될지, 창모드로 실행될지
- Visible in Background : 창이 백그라운드에 있을 때 게임이 보일 것인지
- Icon
Windows 빌드 시 주의 사항
- 화면 크기 설정
- [레지스트리편집기] 검색
- HKCU\Software[회사명][제품명]
- 설정된 해상도 값 수정 또는 삭제
Android용 빌드
- 빌드 과정
- File -> Build Settings 이동
- Plaform 목록에서 Android 선택
다른 플랫폼이었다면 Switch Platform
- 원하는 씬을 Scenes in Build 목록에 추가
- Player Settings에서 게임 설정 변경
회사 이름, 게임 아이콘, 번들 식별자 등
- Minimum API Level과 Target API Level 설정
- Build
Android용 Player Settings
- Resolution and Presentation
- Default Orientation : 게임이 시작될 때의 화면 방향
- Auto Rotation : 화면이 자동으로 회전하는지
- Other Setting
- _Minimum API Level : 앱이 지원하는 최소 안드로이드 버전
- Target API Level 앱이 대상으로 하는 안드로이드 버전
최신버전 사용이 좋음
포톤(Photon)이란?
포톤이란?
- Exit Games에서 개발한 멀티 플레이어 게임 개발을 위한 네트워크 엔진
- 주요 특징
- Cross Platform : 다양한 플랫폼 간 통신 지원
PC, 모바일, 콘솔 게임에서 멀티 플레이어 지원
- Real time, Multiplayer : 실시간 멀티 플레이어 게임 개발에 초점
- Scalability : 클라우드 기반 서버를 사용하여, 게임 플레이어 수에 따라 자동으로 확장되는 서비스 제공
- Reliability : 데이터 전송에 대한 높은 신뢰성 제공
주요 메서드 및 기능
-
PhotonNetwork : 포톤 네트워크의 주요 기능에 액세스하는 중심적인 클래스
PhotonNetwork.ConnectUsingSettings();
PhotonNetwork.CreateRoom("RoomName");
PhotonNetwork.JoinRoom("RoomName");
PhotonNetwork.Instantiate("PrefabName", position, rotation);
- ConnectUsingSettngs : 앱이 포톤 클라우드에 연결됨
- PhotonNetwork.IsConnected로 연결 상태 확인 가능
- CreateRoom, JoinRoom : 새로운 방을 만들거나 이미 존재하는 방에 참가
- Instantiate : 포톤 네트워크를 통해 새로운 게임 오브젝트 생성
Unity의 Instantiate와 비슷하지만 네트워크 통해 동기화
-
MonoBehaviourPunCallbakcs
public override void OnConnectedToMast() { ... }
public override void OnJoinedRoom() { ... }
public override void OnPlayerEnteredRoom(Player newPlayer) { ... }
- OnConnectedToMaster : 게임이 포톤 마스터 서버에 성공적으로 연결되면 호출
- OnJoinedRoom : 로컬 플레이어가 방에 입장하면 호출
- OnPlayerEnteredRoom : 다른 플레이어가 방에 입장하면 호출
주요 컴포넌트 및 기능
- PhotonView
- 네트워크 상태를 동기화하는 데 사용
- PhotonNetwork.Instantiate를 통해 사용된 객체가 네트워크를 통해 동기화 됨
- 주로 Transform 컴포넌트나 사용자 정의 스크립트와 같이 동기화하고자 하는 컴포넌트를 참조
- PhotonTransformView
- 위치, 회전 및 크기를 동기화하는 데 사용
- 게임 오브젝트의 움직임이 네트워크를 통해 동기화
- PhotonAnimatorView
- Animator 컴포넌트를 동기화하는 데 사용
- 애니메이션 상태와 변수를 동기화
- PhotonRigidbodyView
- Rigidbody 또는 Rigidbody2D 컴포넌트를 동기화하는 데 사용
- 움직임과 회전을 동기화하여 물리적 효과를 네트워크를 통해 동기화
기초 네트워크 지식
IP 주소와 포트
- IP Address : 인터넷에 연결된 모든 장치는 IP 주소라는 고유한 식별자를 가짐
- Port : IP 주소 내에서 특정 애플리케이션 또는 서비스를 지정하는 데 사용
TCP vs UDP
| TCP | UDP |
---|
사용 | 신뢰성이 필요한 데이터 전송 | 속도가 중요한 데이터 전송 |
절차 | 데이터 전송 확인 절차 | 데이터의 도착을 확인 X |
신뢰성 | UPD보다 높음 | TPC보다 낮음 |
패킷
- 네트워크를 통해 전송되는 데이터의 작은 블록
- 패킷으로 분할 전송되어 목적지에서 다시 조립
클라이언트-서버 모델
- Client_Server Model
- 서버는 네트워크에 연결된 컴퓨터
-> 클라이언트의 요청을 처리하고 응답
- 클라이언트는 사용자의 장치로서, 서버에 요청을 보내고 응답을 받음
피어 투 피어(P2P) 모델
- Peer to Peer Model
- 모든 참여자(피어)가 동등한 위치에 있으며, 직접 통신 수행 가능
- 중앙 서버의 역할이 줄어들거나 없어짐
창의력 고갈 인간은 자유 과제가 제일 힘들다 ;ㅁ;
아 어디서 야무진 아이디어 툭 안 떨어지나 ㅇㅅaㅇ
어림도 없음
당연함.
뇌 쥐어짜내러 이만 퇴근...
끗 !