Python 3 전환을 시작한 EVE Online

1 week ago 21

EVE Online이 20년 넘게 운영해 온 Python 코드베이스를 Python 3로 단계적으로 전환하며, Singularity에서 검증한 첫 변경 사항을 Tranquility에 배포함 240만 줄·약 2만 개 파일을 먼저 Python 2.7과 Python 3에서 모두 실행할 수 있게 만든 뒤, 버전에 따라 동작이 달라지는 코드를 사람이 검토하는 방식으로 진행함 초기 검사 결과 파일의 95.9% 가 양쪽 버전에서 컴파일됐으며, Python 3가 거부하는 구문은 약 3,300줄에 그침 두 버전에서 컴파일되지만 결과가 달라지는 코드는 약 2만 줄이며, 나눗셈 결과가 피해량·ISK·좌표에 영향을 줄 수 있어 자동 변환 대신 개별 판단이 필요함 단기적으로 플레이어가 체감할 변화는 없어야 하지만, 장기적으로 더 빠른 인터프리터와 현대적인 개발 도구를 활용해 버그 수정과 기능 개발 속도를 높일 기반이 됨 20년 넘게 이어진 Python 코드베이스 EVE Online은 2003년 Stackless Python 기반으로 출시됐으며, 가벼운 태스크릿(tasklet)을 이용해 단일 서버 노드에서 수천 명의 플레이어를 처리해 왔음 Fenris Creations는 Stackless를 도입하는 데 그치지 않고 주요 기여자 중 하나가 됐음 Python 버전은 2007년 Stackless Python 2.5를 거쳐 2010년 Stackless Python 2.7로 올라간 뒤 16년 동안 유지됐음 Python 2.7은 2020년 공식 지원이 종료됐지만, 기존 환경의 신뢰성이 높아 규모가 크고 위험할 수 있는 마이그레이션을 감수할 필요가 충분하지 않았음 Carbon 엔진도 그동안 발전했으며, 현재는 현대적인 Python 3에서 EVE Frontier를 구동하고 있음 지금 Python 3로 옮기는 이유 최근 Python 3 릴리스는 언어 역사상 큰 폭의 성능 향상을 제공해 장기적으로 EVE의 실행 속도를 높일 가능성을 열어 줌 게임에 구체적으로 어떤 변화가 생길지는 아직 판단하기 이름 현대적인 라이브러리, 디버거, 프로파일러는 Python 3를 중심으로 개발됨 Python 2에 머무를수록 사용할 수 없는 도구가 늘고, 게임 개선 대신 내부 도구를 직접 유지해야 하는 부담이 커짐 더 나은 도구를 활용하면 문제를 더 빠르게 발견하고 수정할 수 있음 Python 3는 언어의 여러 핵심 요소를 단순화함 텍스트를 일관된 단일 문자열 타입으로 처리해 ...

Read Entire Article