posted by DGDragon 2015. 4. 2. 16:24

TiDi에 대해 논하기 전에 모든 게임의 병목에 대해 이야기해야 한다.

소프트웨어 공학 기초 사항 중에 복잡도 계산이라는게 있다. 간단하게 얘기해서, 1, 2, 3, 4, 5라는 숫자가 있고 이 숫자가 모두 들어가는 연산을 쓰라고 한다면, 1x2x3x4x5보다는 1+2+3+4+5를 계산하는데 훨씬 적은 수고와 비용과 시간이 들어가기 마련이고, 머신의 연산 성능이 무한이 아닌 이상 모든 프로그래머는 본인이 짜는 프로그램의 복잡도를 최대한 낮추는 방향으로 나가야한다.

이는 게임도 마찬가지인데... 현재 게임의 두 축, PvE와 PvP 중에선 PvP의 복잡도가 월등히 높다. 예를 들어 와우에서 40인 레이드가 있고 10:10 PvP 모드가 있다면, 40인 레이드의 복잡도는 40에 가깝다. 탱커 / 딜러는 몹과만 상호작용하고 소수의 힐러만이 플레이어와 상호작용하기 때문이지(그리고 힐러는 몹과는 상호작용을 안 하지). 그러나 PvP 10:10은 10명이 다른 10명과 상호작용하기 때문에 복잡도는 최고 100이 된다. 서버쪽에선 레이드에 비해 2.5배의 연산을 더 해야하지(또한 레이드는 변수 통제가 더 쉽다. 대신 컨텐츠 수명은 짧지만).

이브는? B-R 전투 4천명의 복잡도는 1명이 있을 때의 1,600만배. 그나마 이브니까 버티지, 와우는 오리지널 때 100:100 필드쟁만 일어나도 서버가 부지기수로 터져나갔다.

두번째, Python.

이브의 서버 프로그래밍은 파이선으로 되어있다. 참 좋은 프로그래밍 언어이기도 하고 장점도 많은데... 세상에 완벽한 언어는 없고 이 녀석에게도 단점이 있다. 언어가 멀티 코어를 지원 안 해. 아무리 성계를 분할하고 실시간 배열을 하고 지랄을 해도, 하나의 그리드는 하나의 코어가 관리할 수 밖에 없다.

이브를 프로그래밍할 땐 다른 장점이 두드러졌으니 이걸 썼겠지. 하지만 지금은 2015년이고 수백명끼리 붙는 전투는 일상적이다. 그동안 CCP도 파이선을 연구하고(CCP는 파이썬 재단의 정식 후원자다) 백방으로 노력했지만, 한계에 도달했다.

대규모 전투가 터질 때마다 서버가 터져나갈 때, 몇가지 방법이 있다.

1. 서버 프로그래밍 언어를 멀티 코어를 지원하는 걸로 바꾼다.

...그걸 성공하면 장담컨데 전세계의 컴퓨터과학 역사에 길이 이름을 남길 거다. 보통은 걍 서버 뒈지고 서비스 접는다고 보면 됨. 가능하면 벌써 했겠지.

2. 하드웨어 사양을 올린다

지금도 CCP의 서버 하드웨어 사양은 세계에서도 탑클래스 중에서도 탑을 달린다. CPU는 물론이고 저장매체는 기본적으로 SSD라, 동접 몇만명이 활동하는 서버의 데이터가 3TB에 가까운데 그걸 30분안에 백업하고 점검하고 리부팅까지 끝내는 게임 또 없다.

정말 획기적으로 SF에나 등장하는 컴퓨터나 아니면 대학에서 연구 중이고 실패 중인 리버스 하이퍼스레딩 기술의 실용화 외에는 답이 없음.

3. TiDi

대규모 전투가 벌어졌을때 튕기는 이유가 서버가 연산을 감당못하기 때문이다. 그러므로 감당할 수 정도까지 시간의 흐름을 늦춰버린다. 물론 미봉책이지만, 서버가 죽어서 다 튕기는 것보단 낫지.

4. 대규모 전투 방지

게임 디자인 자체를 바꿔서 수천명이 모일 필요가 없게 한다. 수천명을 모아 전투하는 건 모아서 전투하는 입장에서도 골치아프고 스트레스 쌓이는 일이지만, 그래야 승리하기 때문에, 그렇게 해서 승리할 필요가 있기 때문에 그렇게 하는 거다. 따라서 그 이유 자체를 해소해버리면 된다.

다만 알아둬야 할 점은 CCP가 포이베 패치에서 점프 피로도 패치를 한 거나 이번에 엔토시스 링크를 패치하는 이유는, 단순히 TiDi 문제의 우회적 해소가 아니라 지금까지 몇년간 커뮤니티에서 계속 지적되어온 파워 프로젝션 문제를 비롯한 여러 문제를 근본적인 디자인 철학의 변경과 그 반영을 통해 해결하고자 함이고, TiDi 문제 해결은 그 부수적인 결과 중의 하나일 거라는 것이다.

결론: TiDi는 파이선이 야기한 하드웨어적인 문제에 가까운거라 개선이고 자시고가 없음. TiDi가 나아지길 바란다면 갓-인텔이 외계인 고문을 더 강렬하고 자극적으로 하도록 기도해라. 단일 CPU 파워가 조금씩 올라갈수록 TiDi 문제는 약해짐. 하지만 CCP가 여름에 소버린 개선 패치를 했을 때 그 결과가 CCP의 의도에 맞다면 전투의 양상이 바뀌어 상당부분 괜찮아질거임(한곳에서 힘싸움이 아니라 전투 자체가 산개 양상을 띨 테니까).