정신없이 지나갈 거예요.

**3D 핀볼: 스페이스 캐뎃(Space Cadet)**은 초기 버전의 윈도우에서 볼 수 있었던 대표적인 클래식 게임 중 하나입니다. 이 게임은 원래 Windows 95용 Microsoft Plus!에 처음 등장했으며, 이후 Windows XP까지 운영체제에 기본 탑재되었습니다. 그러나 이 게임을 Windows 95 버전에서 NT 버전으로 이식했던 데이브 플러머(Dave Plummer)는 자신의 유튜브 채널에서 이 게임에 실수로 버그를 추가했으며, 그 결과 이 게임이 궁극적으로 5,000 FPS라는 초고속으로 구동되게 했다고 고백했습니다.
플러머의 공동 진행자는 "마이크로소프트에서 근무하며 실수로 프로그래밍하여 시장에 출시된(wild) 사례를 경험하신 적이 있습니까?"라는 질문을 던졌습니다. 이에 데이브는 많은 실수를 했지만, 그중 가장 기억에 남는 것은 3D 핀볼을 Windows 95에서 NT로 이식했을 때의 일이었다고 답했습니다.
플러머는 "이 게임을 가져와서 비디오 드로잉, 사운드 등을 관리하기 위해 기존 게임 엔진을 기반으로 저만의 엔진을 구축했습니다. 즉, 원본 로직 엔진을 중심으로 제가 독자적인 게임 엔진을 만든 셈입니다"라며, "제 게임 엔진에는 자신이 감당할 수 있는 한 가장 빠른 속도로 프레임을 그려내는 버그가 있었습니다"라고 설명했습니다.
'모든 마이크로소프트 엔지니어는 스톱워치를 들었다.' 윈도우 베테랑 개발자가 회사가 과거에 속도에 초점을 맞추었던 시기를 회상하며 말했습니다.
하지만 당시 데이브가 작업하던 환경은 200MHz로 작동하는 싱글 코어 MIPS R4000 프로세서였습니다. 덕분에 이 게임은 일반적으로 60~90 FPS로 구동되었는데, 이는 당시 기준으로는 충분히 준수한 수치였습니다. 알려진 바로는 그가 해당 타이틀에 프레임 제한(frame limiter)을 두지 않았기 때문에, 2000년대 초중반에 더 현대적인 CPU가 등장하면서 스페이스 캐뎃은 "핀볼을 구동할 때마다 시스템의 전체 코어를 사용하여 끊임없이 핀볼을 플레이하는" 현상이 발생했습니다.
이로 인해 게임은 5,000 FPS라는 엄청난 속도로 구동될 수 있었는데, 이는 당시 프로세서 성능이 플러머가 NT로 이식했을 때 사용했던 수준보다 훨씬 빨랐기 때문입니다. 다행히 플러머의 동료였던 레이먼드 첸(Raymond Chen)이 이 문제를 해결하여 프레임 속도를 100 FPS로 제한했고, 가벼운 게임이 단일 코어를 100%까지 과부하시키는 것을 방지했습니다.
버그는 마이크로소프트에서 심각하게 다루는 문제이지만, 이 게임 버그는 그 피해가 미미하여 관련 프로그래머들이 웃어넘길 수 있었습니다. 이 현상은 컴퓨터에 터보(Turbo) 버튼이 있던 시절에는 큰 문제가 되지 않았겠지만, 대부분의 소프트웨어가 시간 단계를 클럭 속도에 연동시키는 방식을 멈추면서 이 기능은 일반적인 방식에서 제외되었습니다. 플러머는 이러한 변화를 예측할 수는 없었지만, 당시 CPU 코어가 얼마나 빠르게 발전했는지를 고려하면 충분히 이해할 만한 일입니다.
최신 뉴스, 분석, 리뷰를 받아보시려면 Google News에서 Tom's Hardware를 팔로우하거나 즐겨찾기 출처로 추가하세요. '팔로우' 버튼을 클릭하는 것을 잊지 마세요!