1. 연결방식 선정

2015. 8. 16. 18:07

온라인 게임을 만드려면, 일단 연결 방식에 대해 고려해보아야 한다.

연결 방식은 크게 C/S 방식, P2P 방식이 있는데, 차이점은 다음과 같다.


C/S 방식 - 한 서버에 클라이언트들이 연결하여 통신하는 방식

P2P 방식 - 클라이언트간 직접적으로 통신하는 방식 

이미지로 나타내면 다음과 같다.


충분히 예상이 가능하겠지만 각각에 필요한 서버와 클라이언트는 다음과 같다.


 

서버

클라이언트 

 C/S

높은 사양의 서버

낮은 사양의 클라이언트

 P2P

X

높은 사양의 클라이언트


위의 표에서 볼 수 있듯이 C/S 방식을 구현하면 낮은 사양의 클라이언트까지 수용할 수 있고 모든 클라이언트에게 같은 정보를 전달할 수 있지만

그와 더불어 '높은 사양의 서버'가 24시간 돌아가고 있어야 한다.


즉, 기업이 아닌 개인이 운영하기에는 벅찬 방식이다.


하지만, 그렇다고 해서 P2P도 만만한 방식은 아니다. 서버가 중앙에서 통제를 하지 못하기 때문에 (물론 한 클라이언트가 서버의 역할을 하는

'스타형'과 같은 방식도 존재하지만, 이에 대한 부분은 Study 부분에서 나중에 다루도록 하겠다.) '치트'와 같은 문제가 커지며, 최근에는 공유기

보급으로 인해 공유기를 사용하는 유저도 다른 클라이언트와 연결할 수 있도록 하는 '홀펀칭' 기술 등을 따로 구현해야 한다.


그렇다면 무슨 방식을 택해야 하는가? 고민할 필요도 없이 P2P이다. P2P 방식을 선택하면 발버둥이라도 칠 수 있지만, C/S 방식을 선택하게 되면

서버를 24시간 돌릴 수도 없으며, 서버 컴퓨터에 부하가 걸려 정상적인 통신이 되지 않을 수도 있기 때문이다.


나는 FLASH 를 이용하여 온라인 게임을 만들고자 하였고, 그에 따라 Cirrus를 이용하려 하였다.

Adobe에서 시험적으로 제공하고 있는 서비스이며, '서버 없이' 온라인 통신을 구현할 수 있다. 들리는 말에 의하면 크롬에서는 동작이 잘 되지

않지만, 그 정도의 리스크는 감수하는 수밖에 없었고, Cirrus에 대해 학습하고 있었다.


그러던 도중, 내가 직접 서버를 돌리지 않고도 C/S 방식을 구현할 수 있다는 것을 알게 되었다.

대표적인 예로 무료로 이용할 수 있는 YGN (구 Player.io), 유료로 이용할 수 있는 Appwarp 서비스 등이 있다.


이러한 방식은 해당 기업에서 대신 서버를 돌려주며, 그에 따라 공유기를 사용하는 유저도 문제없이 서버에 접속할 수 있게 된다.

해당 방식을 이용하면 지금까지 언급되었던 모든 문제가 해결되는 것이다.


결과적으로 나는 야후에서 제공하는 Yahoo Games Network 서비스를 이용하기로 하였고, 실제로 현재 YGN 서비스를 이용하여 온라인 게임을

개발하고 있다. 다음부터 설명될 온라인 게임은 모두 YGN 서비스를 이용하여 제작 중인 온라인 게임이라는 것을 알아두길 바란다.


YGN 에 대해 자세히 알고 싶다면 다음 링크를 참고하자 : http://kiddj.tistory.com/17


'개발일지 > 온라인 게임' 카테고리의 다른 글

0. 도입  (0) 2015.08.16

트랙백을 확인할 수 있습니다

URL을 배껴둬서 트랙백을 보낼 수 있습니다

다른 카테고리의 글 목록

개발일지/온라인 게임 카테고리의 포스트를 톺아봅니다