게임 핵심

게임 플레이 모드

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

데스매치

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

메인 화면으로

엘리미네이션

플레이어의 수명은 한정되어 있습니다. 마지막까지 살아남은 플레이어가 승리합니다. 이 게임 모드는 시간이 지남에 따라 사용 가능한 맵 영역을 줄이는 축소 영역을 특징으로 합니다.

Shrinking Area
엘리미네이션 게임 플레이 모드에서 영역 축소

메인 화면으로

배틀 로얄

플레이어들은 줄어드는 지역을 날고 있는 비행기에서 시작합니다. 낙하 시작 후, 비행기는 활성 맵 영역에 들어가고, 선수들은 제트팩을 가지고 낙하하고 착륙할 수 있습니다. 플레이어는 단 한 개의 목숨만 있으며, 마지막까지 살아남은 사람이 승리합니다.

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

Battle Royale Airplane

노트: 서버는 낙하를 즉시 시작하거나 자동 시작 카운트다운을 연장하여 낙하가 시작되는 시기를 제어할 수 있습니다.

메인 화면으로

축소되는 영역

축소 영역은 시간이 지남에 따라 축소되고 이 영역 밖에 있는 플레이어는 피해를 받는 원형 영역입니다. 축소는 여러 단계에서 발생합니다. 단계별로 축소되기 전에 UI에 경고와 남은 시간이 표시됩니다. 축소 단계 사이의 시간은 활성 플레이어를 기준으로 합니다. 즉, 살아 있는 플레이어가 적을수록 영역은 더 빨리 축소됩니다.

Announcements

축소 영역은 배틀 로얄 및 엘리미네이션 모드에서 사용 가능합니다.

메인 화면으로

아나운서

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

Announcements
배틀 로열 게임 플레이 모드에서 알림

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

메인 화면으로

레벨 생성

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

GenArea 7
GenArea 7 씬에는 7개의 색으로 구분되어 있습니다

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

GenArea2 - GenArea 7Gameplay/NetworkGame 게임 객체에 있는 매개 변수 설정에서만 다릅니다.

GenArea7 Generation
GenArea 7 생성에 사용되는 값

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

Level Generator
레벨 생성 인스펙터

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

메인 화면으로

NetworkGame

네트워크 게임은 연결된 플레이어의 참여와 종료를 처리하고 각 클라이언트에 대해 Player 프리팹을 생성합니다. 연결이 끊긴 플레이어는 저장되므로 재연결 시 데이터를 복구할 수 있습니다. NetworkGame은 초기화 프로세스에서 GameplayMode를 스폰 시킵니다.

메인 화면으로

Scene & SceneContext

Scene은 UI, 카메라, 음악, 미니맵 등의 씬별 기능 및 서비스(SceneService)를 처리합니다. 씬 서비스는 Scene에서 수동으로 업데이트되므로 언제든지 초기화, 활성화, 비활성화 및 업데이트할 수 있습니다.

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

메인 화면으로

게임 코어

다음 그림은 애플리케이션 루프를 표현합니다:

Application Loop
애플리케이션 루프

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

Game Core
코어 게임 스크립트의 수명

기술문서 TOP으로 돌아가기