Playto PLAYTO / 게임 번역이 어려운 이유

품질에 대하여

플레이하면서 게임을 번역하는 건 정말로 어렵다

실행 중인 게임 화면을 읽고 그 자리에서 번역하는 것은 어려운 엔지니어링 문제입니다 — 겉보기보다 훨씬 어렵고, Playto가 정면으로 다루고 있는 문제이기도 합니다. 「해결이 끝난 항목에 체크 표시만 남았다」는 척을 하기보다, 왜 어려운지를 솔직하게 이야기하고 싶습니다. 어떤 화면이 잘못 읽힌다면 대개는 아래 이유 중 하나 때문이지 대충 만들어서가 아니며, 그 하나하나가 저희가 계속 손대고 있는 대상입니다. 이 페이지는 내부 구현은 건드리지 않고, 그 뒤에 있는 엔지니어링을 설명한 글입니다.

1 · 번역

번역하기 전에, 먼저 화면을 읽어야 한다

웹페이지는 번역기에 깨끗한 텍스트를 건네줍니다. 게임이 건네주는 것은 이미지입니다 — 텍스트는 픽셀로 그려져 있고, 그 아래에는 읽을 수 있는 문자열이 없습니다. 그래서 모든 번역은 그림 속에서 글자를 다시 읽어 내는 것부터 시작되고, 그 뒤의 모든 과정은 이 첫 단계의 오류를 그대로 물려받습니다.

게임 텍스트는 이 읽기 단계에서 거의 최악의 케이스에 가깝습니다:

  • 가독성보다 분위기를 우선한 장식 폰트나 손글씨풍 폰트.
  • 움직이는 애니메이션 배경 위에 겹쳐진 낮은 대비의 글자.
  • 아주 작은 UI 라벨, 그리고 아트워크에 그대로 박혀 있는 글자.

글자 하나를 잘못 읽으면 의미가 뒤집힐 수 있는데, 이를 잡아 줄 맞춤법 검사는 없습니다 — 그 단어가 흔히 고유명사이거나 게임이 만들어 낸 독자적인 용어이기 때문입니다. 그다음 번역 자체가 두 번째 문제와 마주합니다. 게임 텍스트는 조각글로 들어옵니다. 두 단어짜리 메뉴 라벨. HUD의 숫자. 아직 한 글자씩 타이핑되는 중인 한 줄. 번역 모델은 완전한 문장에서 가장 좋은 성능을 내지만, 게임이 건네는 것은 순서도 뒤섞이고 주변 맥락도 없이, 범용 모델이 한 번도 본 적 없는 어휘로 이루어진 파편입니다.

그리고 이 모든 것이 게임이 실행되는 중인 당신의 컴퓨터 위에서 돌아가야 합니다. 클라우드 서비스라면 문장 하나에 세상에서 가장 큰 모델을 통째로 던질 수 있습니다. 실시간 오버레이는 당신이 플레이하는 게임과 메모리와 GPU를 함께 씁니다 — 그래서 핵심 기술의 상당 부분은 가장 큰 모델을 찾는 것이 아니라, 게임 옆에 나란히 앉을 수 있을 만큼 작은 모델에서 좋은 결과를 끌어내는 데 쓰입니다.

2 · 오버레이

가만히 있지 않는 게임 위에 그리기

화면에 글자를 얹는 것 자체는 쉽습니다. 실행 중인 게임 위에, 방해가 되지 않게 얹는 것은 쉽지 않습니다.

번역을 어디에 둘 것인가? 텍스트는 예측할 수 없는 곳에 나타납니다 — 아래쪽의 대사, 오른쪽의 아이템 설명, 커서 위치의 툴팁, 화면 가운데의 시스템 메시지. 잘못된 순간에 잘못된 것을 가리면, 오버레이가 오히려 자신이 풀려고 했던 문제 그 자체가 되어 버립니다.

화면은 계속 움직인다. 대사 한 줄은 스크롤되거나 페이드되거나 한 글자씩 타이핑되는 동안 수십 프레임에 걸쳐 존재합니다. 오버레이는 아래 픽셀이 매 프레임 조금씩 바뀌더라도 「이건 내가 이미 보여 주고 있는 그 줄이다」라고 계속 알아차려야 합니다 — 그렇지 않으면 계속 깜빡이며 다시 그려집니다. 이걸 잘못하면 화면이 떨리는 것처럼 보이고, 잘 해내면 아래 그림이 결코 완전히 멈추지 않는 와중에도 번역을 흔들림 없이 유지할 수 있습니다.

그리고 그 어느 것도 게임을 희생시켜서는 안 됩니다. 캡처와 렌더링은 게임 자체의 스레드와 분리되어 동작하므로 프레임 타임을 빼앗지 않고, 게임에는 아무것도 주입되지 않습니다 — Playto는 화면 녹화 소프트웨어와 같은 방식으로, 바깥에서 화면을 읽습니다.

3 · 로깅

실제로 무엇을 읽었는지 아는 것

이것은 조용한 문제이지만, 어떤 의미로는 가장 어려운 문제입니다. Playto가 하는 일 중 하나는 당신이 마주친 문장과 단어를 기억해 두는 것 — 플레이한 게임을 나중에 복습할 수 있는 무언가로 바꾸는 것입니다. 단순한 기록처럼 들리지만, 그렇지 않습니다 — 게임 텍스트는 뚜렷이 구분되는 줄들의 깔끔한 목록이 아니기 때문입니다.

  • 같은 문장이 한 글자씩 타이핑되는 동안 수많은 프레임에 걸쳐 나타난다.
  • 가만히 멈춰 있는 화면이 캡처할 때마다 다시 나타난다.
  • 변하지 않은 같은 텍스트가 프레임마다 조금씩 다르게 읽힌다.

그래서 「이건 저장할 가치가 있는 새 줄이다」와 「이건 이미 가지고 있다」를 구분하는 것은 진짜 판단이 필요한 일이고, 초당 여러 번 내려야 합니다. 한쪽으로 기울면 로그가 같은 문장의 중복으로 가득 차고, 다른 쪽으로 기울면 원했던 줄을 조용히 놓치게 됩니다. 줄이 언제 끝났는지 아는 것도 그 나름의 난제입니다 — 아직 한 글자씩 드러나는 중인 문장은 짧고 완결된 문장과 아주 비슷해 보이기 때문입니다.

이 모든 것은 잘 동작할 때는 전혀 보이지 않습니다. 당신에게는 그저 읽은 것들의 깔끔한 목록만 보일 뿐입니다. 그 「보이지 않음」이야말로 작업 대부분을 차지합니다.

어디서나 통하는 만능 설정이 없는 이유

게임마다 어려운 지점이 다르기 때문에, 모든 게임에 맞는 단 하나의 동작 방식은 없습니다 — 그래서 Playto는 몇 가지 선택지를 제공합니다. 읽기 모드(빠른 텍스트 인식부터 장식 폰트를 위한 완전한 이미지 인식까지)와 캡처 모드(커서 따라가기, 고정 영역, 창 전체)는 특정 게임이 깨지는 방식에 도구를 맞추기 위해 존재합니다. 이들이 어떻게 맞물리는지는 오버레이 페이지에서 볼 수 있습니다.

그리고 계속 나아지고 있습니다. 이것은 저희가 끊임없이 손보고 있는 튜닝입니다 — 읽기, 오버레이의 안정성, 로그까지. 어떤 게임에서 잘 읽히지 않는다면 데모는 무료이고, 어떤 게임에서 무엇이 잘못됐는지 알려 주시는 것이 가장 큰 도움이 됩니다. 실제 사람의 손으로 플레이한 실제 게임이야말로 저희가 개선의 기준으로 삼는 신호입니다.

자주 묻는 질문

게임 번역이 가끔 부정확한 이유는 무엇인가요?

게임은 텍스트를 「읽을 수 있는 문자열」이 아니라 「픽셀(이미지)」로 그립니다. 그래서 모든 번역은 먼저 이미지에서 글자를 다시 읽어 내는 것(OCR)부터 시작되고, 이 첫 단계의 오류가 그대로 번역까지 이어집니다. 장식 폰트, 움직이는 배경 위의 낮은 대비, 아주 작은 UI 텍스트가 이 읽기 단계를 어렵게 만들고, 글자 하나를 잘못 읽으면 의미가 바뀌어 버립니다. 게임 텍스트는 맥락이 거의 없는 조각글로 들어오고, 범용 모델이 본 적 없는 게임 고유의 용어도 쓰입니다. 이는 본질적으로 어려운 문제이며, 저희가 품질을 「완성된 것」이 아니라 「계속 진행 중인 작업」으로 다루는 이유입니다.

번역 품질은 시간이 지나면서 좋아지나요?

네 — 읽기와 오버레이 동작은 계속 튜닝하고 있고, 업데이트도 정기적으로 배포합니다. 게임마다 깨지는 방식이 다르기 때문에, 실제 게임에서 얻는 신호가 가장 값집니다. 특정 게임에서 읽기가 잘 안 된다면 무료 데모로 확인할 수 있고, 알려 주시면 개선에 큰 도움이 됩니다.

왜 가장 크고 정확한 AI 모델을 쓰지 않나요?

클라우드 서비스라면 문장 하나에 거대한 모델을 통째로 붙일 수 있습니다. 하지만 실시간 오버레이는 게임이 실행 중인 바로 그 PC에서 돌아가며 메모리와 GPU를 게임과 함께 씁니다 — 그래서 핵심 기술은 가장 큰 모델을 고르는 것이 아니라, 게임과 공존할 수 있을 만큼 작은 모델에서 좋은 결과를 끌어내는 데 있습니다. 원한다면 자신의 클라우드 API 키를 연결할 수도 있지만, 개발 역량의 대부분은 로컬 쪽에 투입하고 있습니다.

장식 폰트나 손글씨풍 게임 글꼴도 읽을 수 있나요?

표준적인 인쇄체 텍스트는 빠르고 확실하게 읽습니다. 장식이 강하거나 손글씨풍인 글꼴은 일반 텍스트 인식의 약점이라서, 그런 글자를 직접 읽어 내는 이미지 인식 모드를 따로 두고 있습니다 — 게임이 텍스트를 어떻게 그리는지에 맞춰 모드를 고르면 됩니다. 이미지 인식은 느리고 부하도 큰 실제 트레이드오프가 있어서, 항상 켜 두기보다는 필요한 글꼴에만 쓰도록 되어 있습니다.

내가 플레이하는 게임에서 직접 확인해 보세요

무료 데모가 가장 솔직한 테스트입니다 — 실제로 플레이하는 게임에서 어떻게 읽히는지 확인하고, 잘 안 되는 부분을 알려 주세요. 그 피드백이 저희가 튜닝의 기준으로 삼는 것입니다.