작성
·
312
답변 3
1
포트를 여러개 연다고 딱히 문제될 부분은 없습니다.
여기서 굉장히 중요한 사실은 P2P로 가는지 CS로 가는지인데요.
매치메이킹 서버로 매치된 유저끼리 게임을 진행시킨다고 해도, 아주 많이 다른 2가지 방법이 있습니다.
서버의 도움 없이 정말 해당 유저들의 IP를 서로 알려주고
자기들끼리만 게임을 진행시키는 것이 P2P 방식입니다.
P2P의 경우 한 명이 서버의 역할을, 나머지 애들이 클라의 역할을 맡게 되는데
문제가 생각보다 단순하지 않습니다.
왜냐하면 서버가 공인 주소(Public IP)를 갖고 대기를 하는 상황이 아니라서
나머지 클라들이 쉽게 접근할 수 없게 됩니다.
홀펀칭(Hole Punching) 관련 검색해보면 더 자세히 알 수 있는데
여튼 골치 아프고 더럽고 어려운 주제입니다.
스타1을 해보셨다면 가끔 방에 안 들어가지고 뭐 그런 이슈들이 많은데
스타1은 P2P게임이기 때문입니다.
P2P의 또 다른 문제는 해킹에 취약하다는 점인데요.
그래서 요즘은 대부분 CS 모델로 갑니다.
CS(Client-Server) 모델로 간다면,
[매치메이킹 서버]와 [게임 서버 N개]를 띄워서 계속 통신을 합니다.
매치메이킹 서버로 매치된 유저들한테 접속할 게임 서버의 주소/포트를 알려주고
그쪽에 접속을 시킨 다음에 모든 유저가 접속하면 게임을 시작하는 것이죠.
LOL을 생각하시면 됩니다.
결과적으로 MMO가 아닌 다른 장르도 그 나름의 고충이 있으며
LOL/배그처럼 아주 많은 동접자가 몰리고 또 많은 방을 파야 하는 게임은
그 자체도 정말 골치 아픈 일들이 많습니다.
0
0
포트는 그냥 내부적으로 패킷 목적지
구별용일 뿐 포트를 굳이 다르게 할 이유는 없습니다.
그리고 게임 서버 N개라 함은 정말 물리적으로 컴퓨터 N개에서 띄우는 것을 얘기합니다.
서버 프로그램 1개당 게임 1개를 관제할 수도 있고,
경우에 따라 1개의 서버에서 다수의 게임을 관제할 수도 있습니다.