과거에 게임 회사에 다닐 때 게임 리플레이 기능을 만들어야 한다는 지시가 내려왔습니다.
그 당시는 지금처럼 비디오 스트리밍이라는게 생소한 때여서,
리플레이 하면 스타크래프트 2의 리플레이지 하면서
개발팀은 열심히 스타2를 모델삼아 리플레이 기능을 개발하기 시작했습니다.
그런데, 해당 게임은 스타2와는 다르게, 리플레이 기능은 아예 코드의 기반을 흔드는 작업이었습니다.
개발이 지지부진했죠.
그러다가 처음으로 컴퓨터 화면을 소프트웨어만으로 녹화하는 프로그램이 나왔는데,
(당시에는 캡처보드라고 몇십만원 하는 하드웨어를 사야 가능하던 때)
그 프로그램 덕분에 게임 플레이를 녹화해 올리는 유저들이 늘어나기 시작했습니다.
1년이 지났나...회의 때,, 어떤 개발자가 질문을 했습니다.
"유저들이 비디오로 녹화 떠서 잘 공유하고 있는데,, 리플레이 기능을 꼭 개발해야 하는 건가요?"
그 질문을 듣고 다들 멍해졌죠.
리플레이 기능을 코드에 넣어야 겠다고만 생각에 매몰되서,
리플레이를 넣으려고 했던 이유를 다들 잊어버렸던 거에요.
"유저가 자신의 게임 플레이를 다시 볼수가 없다" 라는 문제는
비디오로 뜨든, 게임 내 이벤트를 기록하는 리플레이 시스템을 만들든 여러 방법에 의해 해결될 수 있는 문제였는데
리플레이 = 게임 내 이벤트를 기록하는거 라는 생각에 매몰된거죠.
프로그래머로 살다 보면 참 많은 방법론을 만나게 돼요.
그리고 원래 문제가 뭐였는지는 질문하지 않고, 방법론이 진리인 것마냥 매몰돼버리죠.
방법론에 숙달될 수록, 원래 문제를 잊어버리기 쉽상입니다.
리얼 플레이와 다른 가치가 리플레이에 있다면 그 자체가 의미가 있죠
스타로 예를 들면 내가 멀티 까는 동안 남이 뭘 했는지를 본다던가
아마 그런 게임은 아니셨던 모양이죠?
배그보면 핵을 증명하거나 매우 특이한 케이스를 확인하거나 할 때 필요하긴 하더라구요 .
그래서 "의미에 대한 정의" 를 잘해야 합니다 .
원래 목적을 잃어버리는 일들이 간혹 있죠..