This document is about: FUSION 2
SWITCH TO

게임 코어

게임 플레이 모드

게임 플레이를 제어하고 승리 조건을 평가하는 메인 스크립트. 게임 플레이 모드의 일부는 플레이어의 킬/데스와 플레이어의 통계 작성을 처리하는 것입니다.

데스 매치

표준 데스매치 기능을 갖춘 가장 기본적인 게임 플레이 모드입니다.

엘리미네이션

플레이어의 수명은 제한되어 있습니다. 마지막까지 남아있는 플레이어가 이깁니다. 이 게임 플레이 모드는 시간이 지남에 따라 사용 가능한 맵 공간을 줄이는 수축 영역이 특징입니다.

shrinking area
엘리미네이션 게임 플레이 모드에서 줄어드는 지역

배틀 로열

플레이어들은 줄어드는 지역 주위를 도는 비행기에서 시작합니다. 낙하가 시작된 후, 비행기는 활성 지도 지역으로 들어가고, 선수들은 제트팩을 가지고 낙하하고 착륙할 수 있습니다. 플레이어들은 단 한 번의 삶을 살 수 있고, 마지막까지 서 있는 사람이 이깁니다.

비행기 안에 있는 동안 플레이어의 입력은 AirplaneAgent에 의해 처리됩니다.

배틀 로열 에어플레인
노트:서버는 드롭을 바로 시작하거나 자동 시작 카운트다운을 연장하여 드롭 시작 시점을 제어할 수 있습니다.

줄어드는 지역

축소 영역은 시간이 지남에 따라 축소되고 이 영역 밖의 플레이어에게 피해를 주는 원형 영역입니다. 축소는 여러 단계로 이루어집니다. 모든 단계 전에 경고와 남은 시간이 UI에 표시됩니다. 축소 단계 사이의 시간은 활성 플레이어를 기반으로 합니다. 플레이어가 덜 살아있을수록 영역이 더 빨리 축소됩니다.

발표

축소 영역은 배틀 로열 및 엘리미네이션 모드에서 활성화됩니다.

아나운서

Announcer 시스템은 멀티 킬, 남은 시간, 남은 플레이어 등 게임 내 이벤트를 알려주는 간단한 시스템입니다. 모든 게임 플레이 모드는 플레이어에게 평가되고 제공되는 서로 다른 알림 세트를 정의할 수 있습니다.

안내방송
배틀 로열 게임 플레이 모드에서의 안내방송

안내방송은 게임 내 이벤트를 정의하는 스크립트로 작성 가능한 객체입니다. 모든 안내방송 객체는 사용자 지정 평가 로직을 가지며 트리거 되면 플레이어에게 어떤 메시지 또는 오디오 클립을 제공해야 하는지를 포함합니다. 안내방송은 우선순위가 다를 수 있으며 특정 채널에서 재생할 수 있습니다. 동일한 채널에서 두 개의 안내방송이 동시에 트리거 되면 우선순위가 높은 알림 방송만 표시됩니다. 이를 통해 더블 킬 및 트리플 킬 안내방송이 모두 활성화되었음에도 불구하고 트리플 킬 안내방송만 표시됩니다.

레벨 생성

200명의 플레이어에게 의미 있는 레벨을 만드는 데 시간이 많이 걸리기 때문에 코드별로 반 절차적으로 레벨을 생성하는 것을 선택했습니다.

genarea 7
GenArea 7 씬에는 7가지 색상 영역이 포함되어 있습니다

서버가 씬을 로드할 때 모든 레벨은 런타임에 지정된 매개 변수를 기반으로 생성됩니다. 생성 프로세스에 일부 무작위성이 포함되어 있으므로 모든 실행이 다릅니다.

GenArea2 - GenArea 7 씬은 Gameplay/NetworkGame 게임 객체에 있는 파라미터 설정에서만 차이가 있습니다.

genarea7 generation
Gen Area 7 생성에 사용되는 값

레벨 생성에 대한 구체적인 내용은 이 문서의 범위를 벗어나지만, 간단히 말해서 지역(색상 영역)로 레벨이 구분됩니다. 모든 영역은 블록(미리 제작된 프리탭)로 구성되며, 블록은 연결자(미리 제작된 프리탭 - 경사로, 박스 더미)로 연결됩니다. 각 영역의 중심은 특별한 타워 블록으로 정의됩니다. 생성을 제어하는 값은 LevelGenerator 스크립트에서 확인할 수 있습니다.

level generator
레벨 생성자 인스펙터

모든 블록은 가능한 플레이어 스폰 위치와 아이템 상자의 위치를 정의할 수 있습니다. 아이템 상자는 생성 프로세스의 일부로 레벨로 스폰 됩니다.

NetworkGame

NetworkGame은 접속한 플레이어의 참여와 탈퇴를 처리해 클라이언트별로 Player 프리팹을 생성합니다. 접속하지 않은 플레이어는 저장되므로 재접속 시 데이터를 복구할 수 있습니다. NetworkGame은 초기화 과정에서 GameplayMode를 생성합니다.

Scene & SceneContext

**Scene**은 UI, 카메라, 음악, 미니맵 등 장면별 기능 및 서비스(SceneService에서 상속됨)를 처리합니다. 씬 서비스는 언제든지 초기화, 활성화, 비활성화 및 업데이트가 가능하도록 Scene에서 수동으로 업데이트됩니다.

**SceneContext**는 코드 베이스 전반에 걸쳐 필요한 공통 서비스나 기타 정보를 정적으로 사용하지 않고 안전하게 접근할 수 있습니다. 씬 컨텍스트는 자동으로 씬 서비스로 전달되어 GameplayNetworkObjectPool에서 네트워크 객체로 할당됩니다. SceneContext에 접근하려면 NetworkBehaviourr 대신 ContextBehaviour에서 상속해야 합니다.

게임 코어

다음 이미지는 애플리케이션 루프를 보여줍니다:

애플리케이션 루프
애플리케이션 루프

다음 다이어그램은 코어 게임 스크립트의 수명을 보여줍니다:

게임 코어
코어 게임 스크립트의 수명
Back to top