게임 개발 실무 영어 표현

게임 개발을 하다 보면 소통으로 영어를 사용하게 되는 경우가 있다.

코드 자체보다도 더 자주 보는 게 있다.
GitHub Issue, PR, Slack, Jira, 문서에 적혀 있는 짧은 영어 표현들이다.

처음에는 하나하나 번역해서 읽었는데, 계속 보다 보니 자주 쓰는 표현은 어느 정도 정해져 있었다.

특히 게임 개발에서는 일반적인 소프트웨어 개발 영어에 더해서 Client, Server, Gameplay, Animation, Network, Build, QA와 관련된 표현을 자주 사용한다.

이번에는 게임 개발하면서 실제로 써먹기 좋은 표현들을 정리해봤다.

Gameplay

게임플레이 구현에서는 특정 기능의 상태나 동작을 설명하는 일이 많다.

The player can't move while attacking.

공격 중에는 플레이어가 움직일 수 없다.

The attack animation is not playing.

공격 애니메이션이 재생되지 않는다.

The input is being ignored.

입력이 무시되고 있다.

The state isn't being updated correctly.

상태가 제대로 갱신되지 않고 있다.

This behavior is intentional.

이 동작은 의도된 것이다.

This should only happen once.

이 동작은 한 번만 발생해야 한다.

This can be triggered multiple times.

이 동작은 여러 번 발생할 수 있다.

게임 로직에서 조건을 설명할 때도 이런 표현을 많이 사용한다.

This only happens when the player is grounded.

플레이어가 지면에 있을 때만 발생한다.

This happens when the player enters the trigger.

플레이어가 Trigger에 들어왔을 때 발생한다.

We need to reset the state here.

여기서 상태를 초기화해야 한다.

Client / Server

멀티플레이어 게임에서는 클라이언트와 서버의 책임을 구분해서 이야기하는 경우가 많다.

This should be handled on the server.

이것은 서버에서 처리해야 한다.

The server should be authoritative.

서버가 권위 있는 상태를 가져야 한다.

The client is predicting the movement.

클라이언트가 이동을 예측하고 있다.

The client state is out of sync.

클라이언트 상태가 동기화되지 않았다.

The server state looks correct.

서버 상태는 정상으로 보인다.

The client is receiving stale data.

클라이언트가 오래된 데이터를 받고 있다.

We're sending too many requests.

요청을 너무 많이 보내고 있다.

We should reduce the network traffic.

네트워크 트래픽을 줄여야 한다.

특히 게임에서는 단순히 “버그가 있다”보다 어느 쪽의 상태가 잘못됐는지를 설명하는 것이 중요하다.

Client -> Server -> State -> Synchronization

이 흐름을 기준으로 생각하면 문제를 설명하기도 쉬워진다.

Network

네트워크 문제는 게임에서 자주 발생하기 때문에 관련 표현도 익혀두면 좋다.

The connection was lost.

연결이 끊겼다.

The connection was dropped.

연결이 끊겼다.

We're seeing high latency.

높은 지연 시간이 발생하고 있다.

The packet was dropped.

패킷이 유실됐다.

The request timed out.

요청이 시간 초과됐다.

The response is delayed.

응답이 지연되고 있다.

The client is out of sync.

클라이언트가 동기화되지 않았다.

We're getting duplicate messages.

중복된 메시지를 받고 있다.

The server is not responding.

서버가 응답하지 않는다.

네트워크 동기화 문제를 확인할 때는 다음과 같이 이야기할 수도 있다.

Can you check the server logs?

서버 로그를 확인해 줄 수 있나요?

Can you check the network traffic?

네트워크 트래픽을 확인해 줄 수 있나요?

Can you reproduce this with a high-latency connection?

높은 지연 환경에서 재현해 볼 수 있나요?

Animation

게임 개발에서는 애니메이션 관련 커뮤니케이션도 상당히 많다.

The animation isn't playing.

애니메이션이 재생되지 않는다.

The animation is being interrupted.

애니메이션이 중간에 끊기고 있다.

The transition feels too slow.

Transition이 너무 느리게 느껴진다.

The transition is too abrupt.

Transition이 너무 갑작스럽다.

The character is snapping to the target.

캐릭터가 목표 위치로 순간적으로 붙는다.

The character isn't aligned with the target.

캐릭터가 목표와 정렬되지 않는다.

We need to blend these animations.

이 애니메이션들을 Blend해야 한다.

The animation should start when the player gets close enough.

플레이어가 충분히 가까워졌을 때 애니메이션이 시작되어야 한다.

두 캐릭터가 함께 행동하는 상호작용이라면:

The two animations need to be synchronized.

두 애니메이션을 동기화해야 한다.

게임에서는 애니메이션 자체보다 게임 로직과 애니메이션의 연결을 설명해야 하는 경우가 많다.

The animation should be driven by the gameplay state.

애니메이션은 Gameplay 상태에 의해 제어되어야 한다.

Physics

물리 관련 문제를 이야기할 때도 자주 사용하는 표현이 있다.

The collision isn't working correctly.

충돌이 제대로 작동하지 않는다.

The object is passing through the collider.

오브젝트가 Collider를 통과한다.

The character is getting stuck.

캐릭터가 끼고 있다.

The rigidbody isn't responding as expected.

Rigidbody가 예상대로 동작하지 않는다.

The object is moving too fast.

오브젝트가 너무 빠르게 움직인다.

We need to adjust the collision layer.

Collision Layer를 조정해야 한다.

The physics behavior is inconsistent.

물리 동작이 일관되지 않다.

Performance

게임 개발에서 성능 이야기를 할 때는 FPS, CPU, GPU, Memory, Draw Call 등의 표현이 자주 등장한다.

We're dropping frames here.

여기서 프레임이 떨어지고 있다.

The frame rate drops when there are many enemies.

적이 많아지면 프레임이 떨어진다.

CPU usage is too high.

CPU 사용량이 너무 높다.

GPU usage is too high.

GPU 사용량이 너무 높다.

We're seeing a memory spike.

메모리 사용량이 급증하고 있다.

We're seeing a memory leak.

메모리 누수가 발생하고 있다.

This is causing unnecessary allocations.

불필요한 메모리 할당을 발생시키고 있다.

This is a performance bottleneck.

이 부분이 성능 병목이다.

We should profile this first.

먼저 프로파일링해야 한다.

We can optimize this later.

이 부분은 나중에 최적화할 수 있다.

Unity를 사용한다면 실제 대화에서는 이런 식으로도 말할 수 있다.

We're generating too many garbage collections.

GC가 너무 많이 발생하고 있다.

The draw calls are too high.

Draw Call이 너무 높다.

We should reduce the number of draw calls.

Draw Call을 줄여야 한다.

Build / QA

게임 개발에서는 구현이 끝났다고 바로 끝나는 게 아니다.

빌드하고 QA를 거쳐야 한다.

The build is ready.

빌드가 준비됐다.

The build failed.

빌드가 실패했다.

The build is broken.

빌드가 깨졌다.

Ready for QA.

QA 준비가 됐다.

Could you test this build?

이 빌드를 테스트해 줄 수 있나요?

This issue is fixed in the latest build.

최신 빌드에서 이 문제가 수정됐다.

I couldn't reproduce the issue in the latest build.

최신 빌드에서는 해당 문제를 재현하지 못했다.

QA에서 문제가 다시 발견됐다면:

The issue is still reproducible.

아직 문제가 재현된다.

The fix didn't work as expected.

수정 사항이 예상대로 동작하지 않는다.

Git / PR

게임 개발에서도 결국 Git을 계속 사용한다.

I pushed the changes.

변경 사항을 Push했다.

I pushed a fix.

수정 사항을 Push했다.

This PR is ready for review.

이 PR은 리뷰할 준비가 됐다.

Could you review this PR?

이 PR을 리뷰해 줄 수 있나요?

I addressed your comments.

리뷰 의견을 반영했다.

There are merge conflicts.

Merge Conflict가 발생했다.

I'll resolve the conflicts.

충돌을 해결하겠다.

This commit can be reverted.

이 커밋은 되돌릴 수 있다.

리뷰에서 문제가 없다면 역시 가장 간단한 표현을 사용하면 된다.

LGTM.

Looks Good To Me.

개발자끼리는 굳이 긴 문장을 만들지 않는다.

실제 Slack에서는 더 짧다

개인적으로 개발자 영어에서 가장 익숙해져야 할 부분은 이런 짧은 표현이라고 생각한다.

Looking into it.

확인 중.

On it.

처리 중.

Fixed.

수정 완료.

Reproduced.

재현 완료.

Can't reproduce.

재현 불가.

Pushed a fix.

수정 사항 Push 완료.

Ready for QA.

QA 준비 완료.

Deployed.

배포 완료.

Merged.

Merge 완료.

Blocked by the server issue.

서버 문제 때문에 막혀 있음.

이런 표현들은 문법적으로 완전한 문장을 만들지 않아도 된다.

개발자 사이에서는 현재 상태가 무엇인지 바로 이해할 수 있으면 된다.

마무리

게임 개발에서 영어는 별도의 언어처럼 느껴질 때가 있지만, 실제로 사용하는 표현은 생각보다 제한적이다.

특히 반복해서 사용하는 패턴이 있다.

Reproduce -> Investigate -> Fix -> Review -> QA -> Deploy

게임 개발에서는 여기에 조금 더 구체적으로

Client -> Server -> Network -> Gameplay -> Animation -> Physics -> Performance

같은 단어들이 붙는다.

결국 중요한 것은 영어 문장을 잘 만드는 것이 아니라 지금 게임에서 무슨 일이 발생했고, 누가 무엇을 해야 하는지를 정확하게 전달하는 것이다.

처음부터 모든 표현을 외우려고 할 필요는 없다.

I'll look into it.
Issue reproduced.
I found the root cause.
Pushed a fix.
Ready for QA.
LGTM.

이 정도부터 익숙하게 사용할 수 있으면 실제 개발 환경에서 상당히 많은 상황을 커버할 수 있다.