1993년 세가(SEGA) 사에서 '버추얼 파이터'가 발매되었습니다. 그때 텔레비전으로 이 게임을 처음 봤을 때, “어떻게 이런 게임을 만들 수 있을까!”라고 감탄했습니다. 그리고 그 기술을 배우기 위해 게임 업계에 발을 들여놓게 되었습니다. 당시에는 3D 폴리곤 게임을 만드는 기술이 기업에만 있었고, 지금처럼 참고할 책이 많은 환경도 아니었기 때문입니다. 그로부터 20년쯤 지난 오늘날 3D 게임은 게임 프로그래머에게 당연한 기술이 되었습니다.
2000년에 DirectX가 버전 8로 올라가면서, 3D 표현을 향상시키는 셰이더(shader)가 등장했습니다. 당시 셰이더 프로그래밍을 할 수 있는 사람은 몇 안 되는 기술자뿐이었습니다. 관련 서적도 외국어 책이 몇 권 있는 정도라서 예제 프로그램으로 학습하는 수밖에 없었습니다. 하지만 지금은 셰이더를 다룰 수 있는 프로그래머가 많아졌고, 셰이더를 사용할 수 없는 프로그래머는 시대에 뒤처지고 있습니다.
요즘은 네트워크 인프라가 갖추어져 게임에서도 온라인을 지원합니다. PC, 스마트폰, 가정용 게임기, 휴대용 게임기 등 거의 모든 게임 환경에 네트워크 기능이 있습니다. 환경이 변하면서 온라인이 지원되는 게임을 이제는 당연하게 여기게 되었습니다. 언제 어디서나 온라인 게임을 즐길 수 있게 된 것입니다. 가정용 게임기에서는 초고속 인터넷을 이용한 대규모 온라인 게임도 가능해졌습니다.
이처럼 최근 게임에서는 온라인이 반드시 지원돼야 하지만, 프로그래머 관점에서 보면 기초적인 네트워크 프로그램을 다룰 수 있는 프로그래머는 있어도 온라인 게임 자체를 제작할 수 있는 프로그래머는 극히 적습니다. 비디오 게임이 3D로 전환하기 시작한 무렵이나 셰이더가 등장하기 시작한 무렵처럼 현재 온라인 게임을 만들 수 있는 프로그래머는 여전히 모자란 상황입니다.
3D 그래픽과 셰이더가 걸어온 역사는 네트워크에서도 다시 반복될 것입니다. 온라인 게임을 제작하는 능력이 당연한 시대가 옵니다. 현재는 아직 온라인 게임을 다룬 책이 많지 않습니다. 이 책이 그 부족함을 채우는 데 도움이 되면 좋겠습니다.
- 지은이 서문