나는 클라이언트 개발자를 꿈꾸지만 서버 프로그래밍를 아예 모를 수는 없기 때문에 게임 서버에 대해 공부한 후 멀티 플레이가 가능한 rpg 게임을 제작해 볼 것이다.
그러기 위해서 게임 서버는 어떻게 동작하고 서버에 대한 기초적인 지식들을 공부한 것을 포스팅 하려고한다.
목표는 3d 온라인 rpg이다.
- 게임 서버
- 데이터베이스
- 웹 서버(극 일부만 다룰 수 있음.)
- 실제 컨텐츠 제작(2D 제작 후 3D 제작 예정)
순서로 포스팅 할 예정이다.
1. 서버란?
다른 컴퓨터에서 연결이 가능하도록 대기 상태로 상시 실행중인 프로그램이다.
우리가 식당에 가면 손님이 언제나 올 수 있도록 식당을 열고 대기중일 것이다. 그리고 손님이 오면 그 식당 메뉴나 정책에 따라 서비스를 제공하는데 서버도 이와 같다고 볼 수 있다.
게임 서버는 크게 두개 정도로 나뉘게 된다.
첫 번째는 Web Server가 있다. 이는 테이크아웃 포장 전문 식당이랑 비슷하다. 손님이 음식을 받아서 떠나면, 그 이후론 연락이 끊긴다. 질의/응답 형태를 이루는것이 Web Server이다.
즉, 드물게 정보를 요청하거나 갱신하는 경우에 사용된다.
또한 실시간 Interaction이 필요하지 않는다. 그리고 식당에서 손님이 먼저 접근할 일(물 따라 드릴까요?->No)이 없다.
Web Server는 웹 서비스를 만드는 데 사용한다. 게임쪽에서는 아주 간단하게 사용한다.
두 번째는 Game Server가 있다. 이는 전문 레스토랑 전문점이라 생각하면 된다.
실시간으로 유저(손님)과 소통해야하며, 언제라도 직원이 손님에게 접근이 가능해야한다.
그렇기 때문에 요청하고 갱신하는 횟수가 많아지며, 그 것을 손님의 상태를 보며 최상의 서비스를 제공한다.
2. 게임 서버 제작
게임 서버를 제작하는데 있어서 고려해야하는 사항은 다음과 같다.
그래서 이번 포스팅 테마에서 다룰 내용을 간단히 식당에 비유해보고 포스팅을 마무리하겠다.
- 멀티쓰레드(Concurrency) : 직원을 고용하고 운영하는 것
- 네트워크 : 직원들이 손님과 어떤 방식으로 대화를 할지.
- DB : 결제 및 장부 처리를 어떤 방식으로 할지.
- 게임 로직 : 손님들의 주문을 신속하고 맛있게 요리하는 것.
- 서버 구조 : 위에서 정한 정책에 맞는 식당의 인테리어에 대해 고민하는 것.
'Unity > 온라인 RPG' 카테고리의 다른 글
[게임 서버] 네트워크 프로그래밍 - 네트워크 기초 및 소켓 프로그래밍 (0) | 2024.01.17 |
---|---|
[게임 서버] 멀티쓰레드 프로그래밍 - Context Switching, Event등 Lock의 다양한 기법 (1) | 2024.01.11 |
[게임 서버] 멀티쓰레드 프로그래밍 - Lock에 대해서 (1) | 2024.01.10 |
[게임 서버] 멀티쓰레드 프로그래밍 - 캐시, 메모리 배리어, Interlocked (1) | 2024.01.09 |
[게임 서버] 멀티쓰레드 프로그래밍에 대해 알아보자. (1) | 2024.01.09 |