Deep Studying

[프라우드넷] 게임 서버 엔진 프라우드넷 시작하기 본문

게임서버

[프라우드넷] 게임 서버 엔진 프라우드넷 시작하기

miniSeop 2022. 1. 7. 21:15

 필자가 게임 서버에 대해 잘 알고있어 공유하기 위한 포스트는 아닙니다.

 게임 서버에 대해 처음 배우기 시작했으며, 몇 번의 시행착오만 거쳐보고 바로 올리는 글이기 때문에, 멀리 보면 틀린 내용도 있을 수 있습니다. 하지만 완벽히 초심자의 입장에서 서비스를 바라본다는 것은 가치있는 일이라 생각하여 차근차근 포스트를 올려보려고 합니다. 잘못된 내용이나 부족해보이는 내용이 있다면 메일로 알려주시면 감사드리겠습니다. 경험자 분들의 조언도 환영합니다.

 

E-mail:  rltjqdl1138@naver.com

 

 

목차

1. RPC 통신 이해하기

  1-1. RPC통신 이해하기(1) - 용어 및 개념 정의

  1-2. RPC통신 이해하기(2) - PIDL파일에 대해

2. 채팅 서버 만들기

  2-1. 채팅 서버 만들기(1) - 프로젝트 초기 설정하기

  2-2. 채팅 서버 만들기(2) - RMI 통신하기

  2-3. 채팅 서버 만들기(3) - Marshaler 이용하기

  2-4. 채팅 서버 만들기(4) Dictionary 사용해보기 / Room으로 관리하기

3. 원카드 게임 서버 만들기

  3-1. 원카드 서버 만들기(1) - 프로젝트 시작하기

  3-2. 원카드 서버 만들기(2) - GameRoom 클래스 구성하기

  3-3. 원카드 서버 만들기(3) - 

  3-4. 원카드 서버 만들기(4) - 

 

 

프라우드넷 시작하기

 

1. AMI 생성

 

프라우드넷은 2021년 중순 라이센스가 업데이트된 이후 AWS 마켓플레이스에서만 이용가능해졌습니다.

 

https://proudnet.com/start-1/

 

위 페이지의 가이드 영상을 따라한다면 손쉽게 설치할 수 있습니다.

 

프라우드넷의 이용 금액은 ( 라이센스 비용 시간당 1달러 + aws 서버비용 ) 으로 산정됩니다.

 

처음 프라우드넷을 구독한 사용자는 1달간 라이센스 비용을 무료로 이용할 수 있습니다.

 

2. 로컬 환경에에 설치

공부를 하거나 간단하게 로컬에서 먼저 개발해보려는 사람에게 라이센스 비용이 부담될 수 있습니다.

 

아래 방법으로 install 파일을 가져와 로컬에서 사용하면 동시 접속에 제한이 생기고 무료로 사용할 수 있습니다.

 

무료로 사용하시면 클라이언트 동시 접속에 20명 제한이 걸리는 것으로 알고있습니다.

 

다운로드: https://bucket-4nplwd.s3.ap-northeast-2.amazonaws.com/ProudNetSetup.exe

해당 링크는 개인적으로 사용하는 스토리지라 언제든 내려갈 수 있습니다.

 

링크가 내려갔다면 아래 방법을 사용하여 직접 Install 파일을 가져오실 수 있습니다.

 

 

위 가이드를 따라 원격 접속에 성공했다면 C드라이브에 들어갑니다.

ProudNetSetup.exe를 복사한 뒤 로컬 디렉터리에 붙여넣기를 합니다.

 

창 한 개는 원격 데스크톱, 나머지 한 개는 로컬 디렉터리 입니다.

기본적으로 클립보드를 공유하도록 설정되어있어 원격에서도 복사가 가능한 것 같습니다.

 

 

설치가 끝나면 다음과 같은 추가 설치창이 나옵니다. 꼭 설치하라고 하니 둘 다 설치해줍시다.

 

3. 예제 프로그램 실행해보기

저는 Visual studio 2022 community를 사용하며 해당 버전을 기준으로 설명하겠습니다.

C:\Program Files (x86)\Nettention\ProudNet\Sample 에 들어가시면 몇 가지 샘플이 있습니다.

 

 

앞으로 C#을 사용하여 개발할 생각이므로 SimpleCSharp 프로젝트를 실행해봅니다.

 

 

Common, Client, Server 이렇게 세 개의 프로젝트가 포함되어있습니다.

 

- Common: 서버와 클라이언트 모두 사용할 공통 모듈. 

- Client: 클라이언트 코드

- Server: 서버 코드

 

 

Common 프로젝트 -> 빌드(B)

 

SimpleCSharpServer -> 디버그(G) -> 디버깅 없이 시작(W)

 

서버 콘솔입니다.

SimpleCSharpClient -> 빌드 (B)

 

빌드한 뒤 C:\Program Files (x86)\Nettention\ProudNet\Sample\bin\netcoreapp3.1 에 들어가시면

릴리즈된 파일들이 보입니다. 방금 빌드한 SimpleCSharpClient.exe를 실행해줍시다.

 

클라이언트가 서버에 connect 되었기 때문에 양 쪽에 메세지가 보입니다.

 

SimpleCSharpClient.exe를 하나 더 실행시켜봅니다.

 

 

위와 같이 서버 콘솔에 Client connected가 둘 다 정상적으로 출력되었으면 서버 콘솔에 1을 입력해봅시다.

 

 

양쪽 클라이언트에 메세지가 출력되면서 두 클라이언트는 P2P 그룹으로 묶였습니다.

 

 

이제 한 쪽 클라이언트 콘솔에서 a를 입력하면 다른 클라이언트에서는 메세지가 출력됩니다.

 

 

4. 정리하기

우선은 코드나 게임 서버에 대한 내용보다 처음 실행이 잘 되나 확인만 해보는 과정을 거쳤습니다.

 

클라이언트 코드에서 서버의 주소만 적절히 변경한다면 분명 클라이언트와 서버를 같은 머신에서 실행시키지 않아도 똑같이 동작했을 것입니다.

 

본격적인 내용은 다음 포스트에서 작성하겠습니다.

 

다음포스트: [프라우드넷] RPC 통신 이해하기 (1) - 용어 및 개념정의