작성
·
508
0
안녕하세요 루키스님 동영상을 녹화하면서 몇번이나 돌려보고 복습하고 완변하게는 아니지만 그래도 어디가서 게임이 대충 이런식으로 만들어진다. 라고 자신있게 말할 수 있게 되었습니다. 이제 배운것들을 이용해서 직접 fps 게임을 만들고 거기다가 서버를 붙여서 온라인게임으로 사업을 하고 싶습니다. 제가 여태 들은 강의는 주로 내부 네트워크를 이용해서 진짜 다른 컴퓨터가 내가 만든 서버에 접속하여 작동하는 모습을 보지 못해 여태 서버 배운것들이 깊이 와 닿지는 않네요.... 막연한 질문 이겠지만 여기서 진짜 온라인 서버를 만들려면 무엇을 더 배워야 할까요?
마지막으로 리니지, 메이플 프리서버 같이 불법 사설 서버들은 어떠한 방식으로 서버를 운영하는 건가요? 지난번 어렴풋이 루키스 강사님께서 서버를 열어 무슨 사업적인 활동을 하는것은 불법이라고 이해했습니다. 그럼에도 불구하고 불법 사설 서버들은 자신의 집에있는 컴퓨터를 이용하여 서버를 구축하고 온라인게임을 만들었는데 그것이 가능하게 하려면 어떤 방시으로 한 걸까요?
질문이 너무 막연하고 터무니없는 거 같아, 죄송합니다. 하지만 저는 정말 궁금합니다. 주변에 물어볼 사람도 없고, 오죽 답답한 마음을 풀지 못해 전문가 분께 여쭙게 되었습니다.
답변 2
1
안녕하세요 루키스님 우연히 크래프톤을 조사 하게 되다가 그곳이 배틀그라운드를 만든 회사라는 것을 알게 되었습니다. (충격... 정말 많이 놀랐습니다.) 그리고 크래프톤에서 근무하신 경력도 있으셔서 궁금한게 있어서 질문 올리게 되었습니다. 배틀그라운드 같은 서버는 유저가 100명 있는 방을 여러개 만들어서 하는 것 같은데 그럼 그만큼 방을 많이 만들어서 모든 방의 연산을 한대의 서버 컴퓨터가 처리하는게 가능한건가요? 아니면 방마다. 컴퓨터가 한 대씩 맡는 건가요? 마지막으로 이런것을 만들거나 공부하기 위해서 어떤쪽을 찾아보면 좋을까요?
1
1.
FPS 게임을 만들거라면, 직접 서버를 만드는 쪽은 비효율적입니다.
물리 공식을 서버에서 정밀하게 판별해야 하는데,
그럴라면 서버도 고정 프레임으로 연산하는게 좋고
애당초 MMO와 구조가 다릅니다.
언리얼 엔진을 사용하면 100명 이하의 온라인 게임을 손쉽게 만들 수 있는데
그런 쪽으로 공부를 하는게 좋습니다. (물론 반대로 언리얼 데디 서버로 MMO는 불가능)
2.
그건 퍼블리싱 단계에서 서버 바이너리가 유출된 경우입니다.
특히 해외쪽 퍼블리싱 할 때, 그쪽 사람들이 돈을 받고 몰래 서버 실행 파일을를 빼내서
그걸 이용해서 멋대로 설정해서 운영하는 것이죠.
물론 서버 패치나 업그레이드는 안되지만 그래도 사설 서버를 운영하기엔 충분합니다.
배그는 기본적으로 언리얼 데디 서버를 사용합니다.
언리얼 엔진은 FPS 게임에 특화되어 있어서 그런 쪽으로 아주 넘사벽인데요.
쉽게 말하면 MMO처럼 클라/서버를 각각 만들어서 둘을 합체시키는게 아니라,
클라를 한 번 만들고 거기다가 if else로 (서버가 실행할 코드 / 클라만 실행할 코드)를
분류해주기만 하면, 언리얼 엔진 차원에서
자동으로 서버 빌드와 클라 빌드가 구분되어 결과물이 나옵니다. (WOW!!)
대충 100명 까지는 괜찮게 돌아가는데 멀티쓰레드 서버는 아니다보니 그 이상은 힘듭니다.
다만 이렇게 구현된 하나의 서버 결과물이 있다고 바로 끝나는건 아니고
MMO와는 다른 방향으로 귀찮고 어려운 부분이 있는데요.
MMO는 서버가 소수라 직접 머신을 설정해서 띄우는게 합리적이지만,
LOL이나 배그 같은 게임은 방이 1~2개가 아니라
유저수에 비례해서 계속 방이 생성되고~ 끝나면 닫히고 해야 하다보니
AWS를 이용해서 서버를 아주 많이 띄우고 죽이고 하면서
중앙에서 관리하는 시스템을 만들어줘야 합니다.
결과적으로 그런 웹/플랫폼 기반 기술이 필요합니다.
물론 사람들의 요청에 따라 방을 잡아주는
매칭 서버는 기존처럼 바이너리 서버로 만들어도 괜찮긴 하겠죠.
제가 여태 들은 강의는 주로 내부 네트워크를 이용해서 진짜 다른 컴퓨터가 내가 만든 서버에 접속하여 작동하는 모습을 보지 못해 여태 서버 배운것들이 깊이 와 닿지는 않네요.... 막연한 질문 이겠지만 여기서 진짜 온라인 서버를 만들려면 무엇을 더 배워야 할까요?
그리고 이 질문에 대한 대답도, AWS나 Azure를 이용해
간단한 서버를 띄워보고 클라에서 접속할 수 있게 설정 연습을 해보시면 됩니다.