클라이언트-서버 런타임

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.

서버

Roblox 게임은 기본적으로 다중 사용자로 작동하며 클라이언트-서버 모델에서 실행됩니다. Roblox 서버는 게임의 상태를 유지하는 최종 권한으로, 모든 연결된 클라이언트를 서버와 동기화하는 책임을 집니다.

세 개의 클라이언트 장치에 연결된 서버 그룹.
세 개의 클라이언트 장치에 연결된 서버

클라이언트

게임이 실행될 때, Roblox는 당신이 스튜디오에서 작성하고 게시한 "편집" 데이터 모델의 복사본을 만들어 Roblox 서버에서 "런타임" 데이터 모델로 실행합니다.

연결된 클라이언트는 런타임 데이터 모델의 복사본을 받으며, 플레이어의 백팩(인벤토리) 또는 로컬 사용자 인터페이스와 같은 플레이어 초기화가 발생합니다. 게임에서 Workspace.StreamingEnabled가 true로 설정된 경우, 서버는 초기적으로 클라이언트에 가장 가까운 Workspace의 콘텐츠 하위 집합만 전송합니다. 클라이언트는 3D 세계를 렌더링하고 적용 가능한 스크립트를 실행하기 시작합니다.

편집 데이터 모델과 런타임 데이터 모델 간의 객체 매핑을 나타내는 다이어그램.

복제

서버는 연결된 클라이언트를 지속적으로 업데이트하며, 복제라는 프로세스를 통해 서버와 클라이언트 간에 모든 것을 동기화합니다. 이는 데이터 모델, 물리 시뮬레이션 및 채팅 메시지를 동기화합니다. 복제 로직은 클라이언트와 서버 모두에 존재하여 동기화를 보장합니다.

데이터 모델 변경은 3D 세계에서 무언가가 생성되거나 3D 세계의 속성이 변경되는 경우와 같은 다양한 경우에 발생할 수 있습니다. 이는 일반적으로 서버 또는 클라이언트의 스크립트가 클라이언트-서버 경계의 반대편에서 반영해야 할 변경 사항을 만들 때 발생합니다. 다음 다이어그램은 데이터 복제의 일반적인 시나리오를 보여줍니다.

클라이언트 → 서버


서버와 통신하는 클라이언트의 다이어그램.
어떤 클라이언트에서 서버로의 통신. 예를 들어, 클라이언트가 P 키를 눌러 투명 물약을 마시고, 그 플레이어의 캐릭터를 다른 모든 플레이어에게 보이지 않게 하도록 서버에 요청합니다.
서버 → 클라이언트


한 클라이언트와 통신하는 서버의 다이어그램.
서버에서 특정 클라이언트로의 통신. 예를 들어, 플레이어가 게임에 참여하고 서버가 그 플레이어의 인벤토리를 아이템 세트로 채웁니다.
서버 → 모든 클라이언트


모든 연결된 클라이언트와 통신하는 서버의 다이어그램.
서버와 모든 연결된 클라이언트 간의 통신. 예를 들어 경주에 참가하는 모든 참가자에게 카운트다운 타이머를 표시합니다.
©2026 Roblox Corporation. Roblox 및 Roblox 로고, 'Powering Imagination'은 미국 및 기타 국가 내 당사의 등록 및 미등록 상표입니다.