1. 다들 알다시피 이브온라인은 파이썬이라고 하는 전 세계에서 가장 잘나가는 프로그래밍 언어 중 하나 (구글의 3대 주력 언어)로 만들어졌음.
2. 정확히는 파이썬이라는 언어가 가진 태생적인 한계로 인해(CPU의 코어를 하나만 쓸 수 있음), 엄청나게 뜯어고친 “스택이 없는 파이썬” (Stackless Python)을 사용함.
3. 컴 전공자가 아닌 사람들을 위해 설명하자면, 패치든 뭐든 다중 코어를 사용하게끔하는 것은 현재 파이썬을 기반으로 하는 서버 프로그램으로는 불가능함. 파이썬을 새로 만들어야하는데, 구글의 3대 주력언어 중 하나인 파이썬의 현재 위상을 볼 때 새로 만드는 건 불가능함. 개인적인 의견으로는 차라리 PyPy 같은 걸 활용하는게 더 나을 수도 있음.
4. 이브 서버 성능향상의 유일한 방법은 서버 코어 프로그램을 다시 만드는 것임.
5. 또한, 참고로 중소기업 기술이라니 뭐니하는 사람들이 있던데, CCP는 꽤 많은 기술적인 사항을 상당히 많이 공개하는 회사이고 전세계 온갖 컴쟁이들이 포럼에서 개발자들 잡아먹을듯 불러서 난리치기 때문에 CCP의 서버 관리 기술이라던가 하는 점에 대해서는 그래도 상당히 괜찮은 수준임. CCP 개발자가 포럼에서 유저랑 DX11 레이어에 대해서 토론할 정도이며, 현직 DBA에 프로그래머에 IT업계 없는 분야가 없을 정도로 이브 유저들은 무서운 사람들임 (다른 얘기이지만, 이니셔티브의 간부급인 Brisc Rubal은 미국 버지니아주 상원의원이었으며 선거관리 위원회 소속이었고, 군스웜 수장은 뉴욕 현직 변호사).
6. 이브 서버는 총 100대가 넘지않는 수준인데, 사실 이 정도면 꽤 괜찮은거 아닌가? 내가 게임 개발자는 아니라서 잘 모르겠네.
7. 이브온라인 개발 당시에는 개발자들이 원대한 꿈을 갖고있었고, 당시 기준으로는 그래도 꽤 잘 설계된 게임이었음.개인의견 – 일부 사람들이 저번 갤럭시팩 세일 때 플렉스가 엄청나게 풀리면서 이브2가 나올거다 하면서 추측하던데, CCP의 회사 규모나 CCP가 게임개발에 의지하고 있는 파이썬 위주의 개발방향을 보면 그럴 일은 애초에 불가능하고, 오히려 아래에 언급했지만 서버의 코어 프로그램을 재작성해서 성능향상을 이루는 것이 훨씬 쉽고 싸게 먹힘.
8. 서버의 코어 시스템은 많은 유저가 알고있는 2007년도에 작성된 것이 아니라, 15년 동안 2번 재작성됨.
9. Dust 514가 망한 또 다른 이유는, FPS게임인데 대규모전에서 프레임이 떨어진다는 것이었음.
10. 게임 핵만 오랫동안 만들어온 한 개발자는 다른 문제를 제기했는데, 사실 이브는 봇(핵)을 만들기가 매우 쉬운 게임이라고 함 – 2가지 방법이 가능하다고 함: OCR 기반 텍스트 인식, 파이썬 인젝션
11. 오버뷰를 기반으로 하는 텍스트 정보가 위주이므로 화면을 인식하는데 복잡한 알고리즘이 필요없고
12. CCP는 봇을 탐지하는 시스템에 대해 심각하게 아무런 조치가 없고, 앞으로도 봇을 인식하는 기능을 넣을 생각도 없다고 함. 뭐 이유는 다들 알테고…
13. 러시아와 중국 쪽에서 일부가 여전히 비밀리에 만들어진 봇을 사용하는 것으로 추측되는데, 당시에는 파이썬 코드를 삽입(인젝션)하는 기능이 있었으며(지금은 막힘) 심지어 어떤 봇은 2006년에 만들어진 봇이 아직도 잘 작동한다고 함.
14. 실제로 구글에서 eve online python 라고 치면 injection이 연관 검색어로 나옴.
15. Carbon라고 불리우는 유저인터페이스(UI)와 Michelle이라고 불리우는 렌더링엔진/네트워킹 라이브러리/물리엔진으로 구성된 이브 클라이언트는 C++(혹은 C)에 파이썬이 임베드 되어있어서, 이걸 불러올 수만 있으면 뭐든 다 할 수 있다 함. – 예를 들어, TryLockTarget xxx 하면 락온을 하고, CmdLaunchFavoriteDrones 와 CmdDronesEngage를 실행하면 드론이 출격해서 공격을 함. – 위에꺼 실제 EVE 클라이언트 내부 파이썬 함수라고 함.
16. 다시 말하지만, CCP는 봇에 대해 딱히 제재를 하고있지 않는데, 그 이유는 생각하나마나 다들 잘 알고있으리라 생각되며, 심지어 봇을 사냥함으로서 생기는 이브 내 경제적인 이득도 적지않음.
17. CCP는 현재 무급 인턴쉽만 받고있는데, 사실 CCP 월급이 그닥 좋지않다고 함.다만-개인적인 의견이지만-일부 사람들이 플렉스 세일할 때마다 CCP 재정상태가 좋지않아서 그렇다고 추측하는데, 추측과는 다르게 CCP의 재무재표를 보면 돈은 아주 잘 벌고 있음 (그러니까 프로젝트를 이것저것 많이 벌림). 2017년도 재무재표가 공개된 곳이 없어서 2017년도는 확실히 모름. 그렇다고 CCP에 메일 보내서 재무재표 보내달라고 하기도 좀 그렇고. 아마도 이브 게임 내 경제 상황을 제어하기 위함으로 추측됨.
18. 현재 CCP 개발팀에는 코어를 재작성할 여력이 없음. 이브 클라이언트의 코드는 의욕적으로 개발이 되고있다기보단, 계속해서 보완만 이루어지고 있음. 아마도 이것저것 벌려놓은 프로젝트들 때문에 그런듯.
19. 저번 팬페스트 당시, 모인 사람들 사이에서 대규모전 발발시 걸리는 타이다이(TiDi) 때문에 불만이 많았음 (특히 군스웜 출신들).
20. 하지만 일부 사람들은 “오, 3천명 밖에 안모였는데 서버가 존나 느리네?” 라는 식의 불만은 좀 자제하자고 함.
21. 포럼 대부분의 유저들도 타이다이에서 생기는 불만은 트롤 취급함.
22. 결국 현재로서는 그나마 타이다이가 가장 나은 대안임.
23. 대규모전 발발시 타이다이가 걸리는 또 다른 원인은 데이터베이스에서의 심각한 성능저하 때문.
24. 5월 5일에 있었던 예정에 없던 서버 다운 역시 DB가 멈췄기 때문.
25. 이 DB문제 때문에 얼마 전 XML 기반 API가 싸그리 교체된 원인이기도 함.
26. 사실 이브에서 DB는 굉장히 중요한 부분 중 하나인데, 이브 게임을 수십만명의 직원을 가진 대기업의 디비라고 상상하면 이해하는데 도움이 됨.
27. 물론 타이다이의 진짜 원인은 GIL로 인한 싱글 쓰레드의 싱글코어 사용.
28. 싱글 코어로 인한 랙의 영향은 사실 굉장히 광범위한데, 함선을 언독하거나 게이트에서 점프하거나, 스킬큐 올리고 내리거나 할 때 느린 이유가 바로 그것.
29. 2018년 초, CCP는 30억원 정도를 들여 서버를 업그레이드함 – 텍3트랭퀼리티라고 부름 (Tranquility Tech III)
30. 이브 서버들은 IBM 블레이드 서버를 클러스터로 묶은 시스템.
31. 사실 CCP는 IBM 측에서 서버를 대여해서 꽤 오랫동안 서버의 새로운 프로토타입에 대해 연구해옴. 거기서 나온 결과물 중 하나가 채팅 서버 분리하게된 IIRC 서버.
32. 카더라 소문에 의하면, CCP는 향후 몇 년 이내에 서버 코드를 재작성할 계획인데, 사실 코드 재작성이 PHP 게시판 짜듯 말처럼 쉬운게 아니라서, 현재 CCP에 근무하는 실제 프로그래머의 규모로 봤을 때 전체 코드 재작성시 5년 이상 걸릴 것으로 추측된다고 함.
33. IT업계 종사하는 일부 이브 유저들은, 다음번 대규모 업그레이드를 하게된다면, 클라이언트는 필수적으로 뜯어고쳐야할 것이라고 얘기함.
34. 2015년 말에 올라온 거긴 하지만, 컴잘알이나 IT업계 종사자라면 상당히 관심있을 자료임: https://www.eveonline.com/article/tranquility-tech-3/
Leave a Reply