게임 개발에는 많은 인력이 필요하다. 출시 후에도 같다. 라이브 서비스를 위해선 계속해서 별도의 팀이 라이브 옵스를 통해 양질의 서비스를 유지할 필요가 있다. 하지만, 라이브 옵스를 자동화된 시스템을 통해 할 수 있다면 어떨까?
BIC(부산인디커넥트페스티벌) 개막 1일차, 필란드 헬싱키에 위치한 모바일 게임사 '메타코어'에서 근무하는 홍성민 테크 리드가 강연을 진행했다. 홍성민 테크 리드는 적은 인력으로도 게임 라이브 서비스를 유지할 수 있는 자동화 시스템 구현 방법에 대해서 설명했다. /디스이즈게임 김승주 기자
강연자 : 홍성민
소속/직책 : 메타코어 / 테크 리드
발표자 소개
유비소프트, 스마일게이트, 네오위즈 등 다양한 게임사에서 약 13개의 온라인 게임과 8개의 모바일 게임을 출시한 경험이 있습니다.
# 자동화된 시스템이 라이브 서비스에 주는 장점
라이브 서비스의 핵심은 사용자의 게임 이용과 리텐션을 계속해서 유지해 수익을 올리고, 이용자들을 계속해서 서비스에 유지시키는 것에 있다. 서비스 중인 게임의 업데이트, 개선 작업은 라이브 옵스(Live Ops)라고 불린다.
라이브 옵스의 자동화가 필요한 이유는 비용 효율성과 인적 오류 방지, 빠른 처리와 응답, 서비스 품질의 안정화와 유지에 있다. 시스템이 자동화되면 필연적으로 사람이 범하는 실수를 줄일 수 있고, 시스템의 응답 속도가 빨라진다. 응답 속도가 빨라지면 보다 서비스가 안정화돼 전체 서비스에 대한 효율성을 증대시킬 수 있다.
자동화를 할 때 가장 고려해야 할 점은 사용자 경험과 서비스 품질, 비용 효율성을 유지하는 것이다. 다만, 비용 효율성이 금전적 측면만을 의미하지는 않는다. 시스템에 오류가 발생하면 추가 비용이 발생해 오히려 전체 비용이 늘어날 수 있다. 비용 효율성이란 금전적 비용만이 아닌 시간, 노력, 리소스를 포함한 개념이다.
# 자동화 라이브 옵스를 위해 고려해야 할 내용들
홍성민 테크 리드는 시간 관계상 세부적인 내용 설명은 어렵지만, 자동화 라이브 옵스 설계를 위해 고려해야 할 사항을 몇 가지 설명했다.
먼저, 수동 조작 기능에 병렬로 자동화 시스템을 구현해야 한다는 것이다. 자동화라는 이유로 사람이 수동으로 조작할 수 있는 기능을 삭제하거나, 자동 시스템과 수동 시스템을 개별로 분리해 버리면 문제가 생겼을 때 해결이 어려울 수 있다. 비행으로 따지면 '오토 파일럿' 시스템과 비슷하다.
잠재적 위험 요소에 대한 리스트업도 필요하다. 시스템 설계부터 향후 발생할 수 있는 문제에 대한 커버리지를 미리 준비할 필요가 있다.
자동화 시스템 구현은 서비스 디자인, 규칙 정의, 자동화 스케쥴링 세 단계로 나뉜다. 서비스 디자인은 게임만이 아닌, 서비스 전체가 어떻게 유기적으로 돌아가고 사용자에게 제공할 것이냐에 대한 것이다. 사용자들이 보내오는 리뷰나 피드백이 자동적으로 시스템에 주입될 수 있는 기능도 신경 써야 한다.
규칙을 만들 때 가장 중요한 것은 단순화다. 규칙이 복잡해지면 시스템이 복잡해지고, 예상치 못한 결과가 나올 확률이 높다. 무작위 규칙도 고려해야 하는데, 게임은 제조업과는 달리 다양한 상황이 발생하기 때문에 랜덤화된 상황을 규칙에 적용해 놓을 필요가 있다. 이 부분이 시스템 구현 과정에서 가장 어려운 것 중 하나다. 피드백과 리뷰가 자동으로 인식되는 시스템을 위해 모니터링과 보고 시스템도 신경 써야 한다.
두 단계가 완료되면 이를 실제로 구현하는 스케쥴링 단계에 들어선다.
게임 전반적인 라이브 흐름 서비스를 파악하는 것도 중요하다. 전체적인 흐름을 놓친다면, 자동화 시스템의 루프가 연속해서 돌지 않는 상황이 발생할 수 있다. 사용자 피드백이 오면 업데이트와 개선 사항이 기획으로 들어가고, 여기에 게임사가 준비한 새로운 업데이트나 콘텐츠, 외부의 요구사항이 반영돼 다시 구현과 테스트, 서비스 단계를 밟아 나가야 한다.
그렇다면 규칙 구현이 중요하다. 홍성민 테크 리드는 크게 두 가지 규칙으로 나눴다. 반복적 규칙과 조건 기반 규칙이다. 수동 시스템에서는 이 규칙이 수동으로 게임 속 규칙에 반영되지만, 자동화 시스템은 피드백 반영, 데이터 조정, 규칙 갱신에 맞춰 다시 스스로 규칙의 순환을 만들어 낸다.
규칙이 순환할 때는 스케쥴러가 관여한다. 스케쥴러는 한 곳에서 실행되는 것이 좋다. 스케쥴러가 나뉘어 있으면 동기화에 실패했을 때 에러가 발생할 수 있다. 따라서 스케쥴러는 독립적으로 실행되는 것이 좋으며, 스케쥴러를 교체하는 상황에 대비해 단일 인터페이스를 통해 게임 시스템에 접속할 수 있도록 하는 것이 권장된다. 또한, 최대한 작고 단순하게 만드는 것이 중요하다.
홍성민 테크 리드는 실제로 자동화 시스템을 적용했던 게임을 소개하며, 시스템 구현에 7~8개월이 걸렸지만 이를 적용한 이후로는 별도의 라이브 팀 없이 적은 관리 인력만으로도 게임을 운영할 수 있었다고 설명했다.