2Bbear's knowledge workshop

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

확인

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

확인

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

확인

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

확인

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

확인

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

확인

MO 형식의 게임에서 어떻게 데이터를 처리 할 것인지.


1. 필요한 데이터들을 나열 합니다.


오브젝트

- 위치 데이터 (유상태, 30ms, 라이프 사이클 게임 시작-종료, 데이터 매우작음)


플레이어 데이터

- 아이디(플레이어 닉네임) (무상태, 한번만 업데이트, 라이프 사이클 게임시작 - 종료, 데이터 매우 작음)

- HP (무상태, 10ms, 라이프 사이클 게임 시작- 종료, 데이터 매우작음)

- 아이템 수 (무상태, 10ms, 라이프 사이클 게임 시작-종료, 데이터 매우작음)


시스템 데이터


게임 룸 데이터 (여러개 존재 해야함) (무상태 ,?? , 라이프 사이클 방 생성-삭제, 데이터 작음)

- 룸 이름 

- 룸 개설자 

- 최대 인원수

- 현재 입장한 플레이어 아이디

- 게임 진행 상황


게임 로비 데이터 (여러개 존재해야함) (무상태, 요청에 의해서만, 라이프 사이클 서버 시작- 종료, 데이터 작음)

- 현재 로비에 개설된 룸 갯수

- 현재 로비에 있는 유저의 수


인증 데이터 (미러링을 통해 여러 DB를 놓아야 할지도...?) 

- 유저 로그인 처리









목표 :

웹 서버를 이용한 게임을 만들어보자!


장점 : 

HTTPS로 모바일 게임 서버를 만드는 이유- https://coolspeed.wordpress.com/2016/12/09/mobile_game_server_using_https/


그딴거 없다. 라고 말하고 싶은데 일단은 이유가 있어야 시작하니...


1. 접속이 끊겨도 다시 연결하기 간편하다.

2. 다양한 API들이 존재한다.

3. 비동기가 자동 지원된다.

4. 구현이 상대적으로 간단하다.

5. Request-Reply 기반 메세지로 재연결이나 강제 종료 같은 문제에서 자유롭다.

6. Stateless 서버, 연속적인 요청들을 같은 서버가 아니고, 다른 서버들에서 처리할 수 있다.

7. 서버 확장이 용이함 , 로드밸런서 등.


단점 :


1. 서버에서 부터 클라로 가는 메세지를 보낼 수 없다.

- 클라가 서버에 메세지 보내고 바로 서버가 클라로 메세지를 보낼 순 있지만 이 반대 흐름, 즉. 서버가 클라에게 메세지를 보내고 클라가 서버로 메세지를 보내는 과정은 하기 힘들다. 이걸 하기 위해서 웹소켓이라는 것을 사용해야 하고.......


2. TCP 보다 느리다. 이건 좀 심각한거 같은데...


3. 게임은 DB 부하가 생각보다 커서 웹서버로 DB 처리를 하기 위해서는 데이터 캐시 노드, 샤딩 같은 방법을 고려해야 한다.


4. 메세지가 커진다. xml json같은 텍스트 기반 데이터를 주고받는 경우 데이터가 커질 수 있다.

따라서 꼭 필요한 데이터만 주고 받도록 바이너리로 데이터 변환을 하던가 해야한다.






-------------------------------------------------------------------------------------------------------

결론 : 웹 서버로는 초기 모바일 게임의 형태나, 웹 브라우저에서 작동하는 게임에 적합하다.


2


또는 MO(게임 룸 내에서 제한적으로 플레이하는)형 게임에서 로비서버의 매치메이킹이나 인증 채팅 랭킹과 같은 기능은 별도의 웹 서비스로 구현할 수도 있다.


------------------------------------------------------------------------------------------------------

만들 게임의 형태


형태 : MO형태

룸이 있고, 방에 들어가고 , 8명이서 직업을 나눠 갖고

다같이 버티고?


아무튼 이런 형태라는데...


참여 인원 :  3명 (박씨, 장씨, 탁씨 )


3명다 프로그래머래....와아....개노답 삼형제...



내가 맡은 임무는 서버!

이제 서버 개발을 시작하면 된다