TECH 으로 돌아가기
TECH HACKER NEWS 1주 전 6분 읽기 25 READS

플레이스테이션도 없던 1993년, 16비트 게임기에서 3D 슈팅을 해낸 비결 — 세가 CD 실피드 기술 분석

플레이스테이션이 세상에 나오기 1년 전인 1993년, 세가 CD로 발매된 슈팅 게임 '실피드(Silpheed)'는 당시 게이머들에게 충격이었어요. 화면 가득 3D 폴리곤 우주 전장이 펼쳐지는데, 이걸 돌리는 기계는 겨우 16비트 게임기였거든요. 게임 엔진 분석서 '게임 엔진 블랙북'으로 유명한 프로그래머 파비앙 상글라르(Fabien Sanglard)가 이 게임이 어떻게 만들어졌는지를 파헤친 글을 공개했는데, 30년 전 엔지니어링이라고는 믿기지 않을 만큼 기발한 아이디어가 가득해요.

당시 하드웨어로는 불가능했던 3D

먼저 무대가 된 하드웨어를 볼게요. 메가드라이브(제네시스)는 7.6MHz짜리 모토로라 68000 CPU를 쓰는 2D 게임기예요. 여기에 확장 기기인 세가 CD를 붙이면 12.5MHz 68000 CPU가 하나 더 생기고, CD-ROM이라는 당시로선 어마어마한 저장 공간(카트리지의 수백 배)이 열리죠. 그래도 CPU 두 개를 다 합쳐봐야 화면을 가득 채우는 3D 장면을 실시간으로 계산하는 건 무리였어요. 3D 렌더링이 뭐냐면, 3차원 좌표로 정의된 물체를 매 프레임마다 수학 계산으로 2D 화면에 투영해서 그리는 작업인데, 이 계산량이 당시 CPU에게는 너무 컸거든요.

실피드의 트릭: 미리 계산해서 CD에서 흘려보내기

개발사 게임아츠(Game Arts)가 찾은 답은 발상의 전환이었어요. '실시간으로 계산할 수 없다면, 미리 다 계산해두면 되잖아?'라는 거죠. 배경으로 흐르는 거대한 3D 장면들은 개발 단계에서 계산을 전부 끝내서 CD에 담아두고, 게임 중에는 그 데이터를 CD에서 순서대로 읽어오기만 하는 거예요. 저장 공간이 빠듯한 카트리지에서는 꿈도 못 꿀 방법인데, CD라는 대용량 매체가 생기면서 비로소 가능해진 접근이죠.

여기서 흔한 오해 하나를 짚고 가면요, '그럼 그냥 동영상 틀어놓은 거 아니야?'라고 생각하기 쉬운데 그게 아니에요. 픽셀로 된 영상을 스트리밍한 게 아니라, 폴리곤을 그리기 위한 도형 데이터를 스트리밍해서 게임기가 매 프레임 직접 그린 거거든요. 덕분에 당시 FMV(동영상 재생) 게임 특유의 뭉개지고 얼룩덜룩한 화질 대신, 선명하고 깨끗한 그래픽이 나올 수 있었어요. 같은 용량으로 훨씬 좋은 결과물을 낸 셈이니, 일종의 도메인 특화 압축이라고 볼 수도 있죠.

그리고 배경 위에서 움직이는 플레이어 기체와 적, 총알 같은 것들은 진짜 실시간으로 계산해서 그렸어요. 미리 구워둔 배경과 실시간 오브젝트를 자연스럽게 합성한 거죠. 두 개의 68000 CPU가 역할을 나눠서 한쪽은 CD에서 데이터를 읽어 배경을 처리하고, 다른 쪽은 게임 로직과 전경 렌더링을 맡는 분업도 이뤄졌고요.

같은 문제, 다른 해법들

재미있는 건 같은 시기에 닌텐도도 똑같은 고민을 했다는 거예요. 1993년의 스타폭스는 슈퍼패미컴 카트리지 안에 Super FX라는 보조 연산 칩을 아예 박아 넣는, 하드웨어로 정면 돌파하는 해법을 택했죠. 실피드는 반대로 소프트웨어 아이디어와 CD라는 매체의 특성으로 우회한 거고요. 2년 뒤 플레이스테이션이 등장하면서 진짜 실시간 3D 시대가 열리지만, '미리 계산해두기'라는 아이디어는 죽지 않았어요. 파이널 판타지 7의 프리렌더 배경, 요즘 게임의 베이크드 라이팅(조명 계산을 미리 해서 텍스처에 구워두는 기법)까지 쭉 이어지는 계보거든요.

한국 개발자에게 주는 시사점

이 이야기가 게임 개발자만의 교훈은 아니에요. '실시간에 못 하면 미리 해둔다'는 원칙은 지금 우리가 매일 쓰는 기술의 뼈대거든요. 캐싱, CDN, 정적 사이트 생성(SSG), DB의 구체화 뷰까지 전부 같은 철학이에요. 비싼 계산을 요청 시점이 아니라 미리 해두고, 실행 시점에는 결과만 빠르게 가져다 쓰는 거죠. 하드웨어가 풍족해진 시대에도 이 사고방식은 여전히 성능 문제를 푸는 첫 번째 열쇠고요. 상글라르의 원문은 하드웨어 구조 그림과 함께 차근차근 설명해줘서, 저수준 최적화에 관심 있는 분이라면 정독할 가치가 충분해요.

정리하면, 실피드는 부족한 하드웨어를 아이디어로 이긴 고전적인 사례예요. 여러분이 최근에 마주친 성능 문제 중에, 실시간 계산 대신 사전 계산으로 풀 수 있었던 건 없었나요?


🔗 출처: Hacker News

SOURCE · HACKER NEWS
원문 전체 보기 → https://fabiensanglard.net/silpheed/index.html
SHARE
처리 중...