728x90
반응형
1) 클라이언트와 서버
온라인 게임의 구성요소는 크게 클라이언트와 서버로 구분할 수 있습니다.
클라이언트는 서버에 접속한 플레이어를 의미하며, 사용자의 로컬 장치에서 실행됩니다.
반대로 서버는 네트워크 통신을 통해 접속한 플레이어에게 서비스를 제공하는 프로그램 혹은 컴퓨터를 의미합니다.
2) 서버의 종류 - 웹 서버
웹 서버는 클라이언트에서 요청(Request)하면 서버에서 응답(Response)하는 방식으로 동작합니다.
이때 웹 서버의 가장 큰 특징은 비연결성(Connectionless) + 무상태성(Stateless)입니다.
비연결성은 서버에서 클라이언트의 요청에 응답한 후 연결을 종료하는 성질을 의미하고,
무상태성은 클라이언트 - 서버간에 상태를 저장하지 않아 상태 정보를 일일이 실어 전송해야 함을 의미합니다.
3) 서버의 종류 - 실시간 서버
실시간 서버는 웹 서버와 다르게 클라이언트나 서버가 원한다면 실시간으로 통신하는 방식으로 동작합니다.
이런 실시간 서버의 특징은 연결 지향성(Connection-Oriented) + 상태유지(Stateful)입니다.
연결 지향성은 서로간에 데이터가 전송되기 이전에 세션과 같은 논리적인 연결이 설정되는 것을 의미합니다.
상태 유지는 클라이언트 - 서버간에 관계에서 서버가 클라이언트의 상태를 저장하는 것을 의미합니다.
4) 온라인 게임에서 서버의 동작
온라인 게임에서 네트워크는 다음과 같이 동작합니다.
- 1) 서버 : 심판 혹은 진행자로서 중요한 게임 로직을 실행
- 2) 클라이언트 : 사용자의 입력을 받고, 모니터에 그래픽 요소를 렌더링
- 3) 서버와 클라이언트는 정보를 담은 패킷을 주고 받으며 서로간의 정보를 동기화하는 작업을 진행
5) 온라인 게임에서의 동작 흐름
온라인 게임에서 서버 - 클라이언트간의 동작 흐름은 다음과 같이 이뤄집니다.
- 1) 서버 : 게임을 구성하는 모든 요소에 대한 최종 권한을 지니고 최종 결정을 내림
- 2) 클라이언트 : 플레이하는 캐릭터만 제어하고, 그외의 나머지는 서버의 요소를 체험하는 것에 불과
- 3) 단, 서버의 응답이 느린 경우 클라이언트에서는 예측하여 작업을 우선 수행
- 예측 결과에 대해서 옳다면 서버에서 승인 / 옳지 않은 경우 서버에서 반려하여 롤백
728x90
반응형
'컴퓨터 구조' 카테고리의 다른 글
| 네트워크 프로토콜 (0) | 2025.09.30 |
|---|---|
| 네트워크 모델 (0) | 2025.09.29 |
| 멀티쓰레드란? (0) | 2024.07.27 |
| 객체지향의 프로그래밍의 3요소 - 다형성 (0) | 2024.03.30 |
| 객체지향의 프로그래밍의 3요소 - 은닉성 (0) | 2024.03.30 |