지난 주 시간 복습
객체 직렬화/ 역직렬화
키 입력 동기화 게임 만들기
키 입력 동기 구조, 상태 관리
키 입력 지연
키 입력 지연을 고려한 송수신과 상태 전환
정보가 버퍼에 저장된 상태
- 자신의 키 입력 정보를 송신
- 상대의 키 입력 정보를 수신
- 지연된 분량만큼 정보를 송수신하지 않은 상태
상태를 고려한 상태 전환
- 송수신하지 않은 상태
- 정보의 동기화 대기 상태
- 정보가 동기화된 상태
어떤 식으로 구현할지 고민 해 보아야 한다.
네트워크 게임 제작 실습
네트워크 통신을 위한 파트너 지정
플레이어 고양이를 움직여서 화살을 피하는 게임 : 서버를 경유한 게임 플레이 (예제)
2주간 실습 진행.
플레이어 고양이를 움직여서 과일을 얻는 게임 : 서버를 경유한 게임 플레이
두 번째 실습의 주요 목표
- 첫 번째 실습 게임보다 한 단계 더 복잡한(간단한) 네트워크 게임 제작
- 첫 번째 실습 게임과 달리 일회성이 아닌 게임 플레이 내내 네트워크 활용
- 스레드의 사용 가능성 탐색은 권고 사항이지만 자유
- 유니티 기반 게임 제작에서의 네트워크 응용 연습 확대
- 가능할 경우 유니티 기반 게임 제작에서의 네트워크 스레드 활용 도전
[1단계] 네트워크 게임 구조 생각하기
- 목표 : 클라이언트 입력이 아닌 서버를 경유한 입력을 통해 플레이 실현
- 네트워크 토폴로지 : cs 구조 활용
- 네트워크 프로토콜 : 게임의 특성과 최대한 간단한 구현을 위해 UDP 활용
기본적으로 TCP로는 속도를 따라가기 힘들다.
- 유니티 기능의 활용 : 2D 유니티 게임을 바탕으로 네트워크 기능 추가
- 네트워크 프로그래밍 작성 : 서버는 데디케이티드 서버, 클라이언트는 유니티 게임
- 실제 코딩 : UDP, 서버 재사용
계속 재전송하는 에코 서버 예제 진행
유니티 기반 간단한 게임 설계하기
1. 화면에 놓일 오브젝트를 모두 나열하기
2. 오브젝트를 움직일 수 있는 컨트롤러 스크립트 정하기
3. 오브젝트를 자동으로 생성할 수 있도록 제너레이터 스크립트 정하기
4. UI 갱신을 위한 감독 스크립트 준비하기
5. 스크립트를 만드는 흐름 고려하기 *네트워크 스크립트 추가 해 보기
[2단계] 간단한 유니티 게임 만들기
프로젝트와 씬 만들기
게임 제목 : CatControl
- 2D 게임으로 제작
- GameScene로 제작
프로젝트에 리소스 추가
프리팹과 아웃렛
프리팹
- 유니티의 가장 강력한 특징 중 하나
- 유니티에서 인스턴스를 만드는 일종의 설계도 역할
아웃렛
- 스크립트 내의 변수에 오브젝트 실체를 연결하는 간단한 방법
- 아웃렛은 "콘센트에서 플러그를 꽂는 구멍"을 의미
- public 접근 수식자 사용이 관건
- 기획자들과의 작업을 효율적으로 하는 가장 강력한 기술이므로 잘 설명 해 주어야 한다.
'대학생활 > 수업' 카테고리의 다른 글
게임기획크리틱 12주차 - 게임 스토리와 게임 시나리오 (0) | 2023.05.23 |
---|---|
게임그래픽프로그래밍기초 11주차 - 렌더링파이프라인 (0) | 2023.05.22 |
게임레벨디자인 10주차 - 엑셀 사용 기초2 (0) | 2023.05.18 |
게임음악작곡법 10주차 - Minor Key (0) | 2023.05.18 |
게임데이터설계 10주차 - 팔방미인 '가챠' 시스템 (0) | 2023.05.17 |