둠(Doom) 개발 비화: 1993년, 모든 바이트가 중요했던 시절

by DD
1개월 전
조회수 36

둠(Doom)은 1993년 출시되어 FPS 장르를 대중화했으며, 당시 PC 하드웨어의 한계를 극복하기 위한 기술적 노력을 보여줌

486 DX2 CPU, 8KB 캐시, ISA 버스 등 당시 주요 하드웨어 제약과 DOS 메모리 한계 극복을 위한 DOS 익스텐더(Extender) 기술 소개

둠(Doom)은 존 메모리 매니저(Zone Memory Manager), 컬럼 렌더러(Column Renderer), 락스텝 네트워크 모델(Lockstep Network Model) 등 하드웨어 제약 속에서 최적의 성능을 내기 위한 독창적인 기술을 사용

둠(Doom)의 성공은 당시 PC 하드웨어의 한계를 극복한 개발자들의 창의적인 노력제약 속에서 피어난 기술 혁신의 결과

486 DX2 CPU와 파이프라인 최적화

1993년 당시 주류 CPU였던 486 DX2는 386에 비해 2.5배 빠른 성능을 제공했다. 이는 향상된 명령어 파이프라인(Instruction Pipeline)과 온칩(On-chip) 캐시 메모리(Cache Memory) 덕분이다. 486은 5단계 파이프라인을 도입하여 명령어 처리 속도를 높였지만, 파이프라인이 자주 비워지는 경우 성능 저하의 위험도 있었다. 486의 4-way set associative cache는 캐시 충돌(Cache Miss)을 줄이는 데 기여했다.

DOS 메모리 한계와 DOS 익스텐더(Extender)

DOS 운영체제의 640KB 메모리 제한은 둠(Doom) 개발에 큰 제약으로 작용했다. 이를 해결하기 위해 DOS 익스텐더(Extender) 기술이 사용되었는데, 이는 386의 Protected Mode를 활용하여 1MB 이상의 메모리를 사용할 수 있게 해주는 기술이다. DOS 익스텐더는 애플리케이션을 Protected Mode로 실행하고, DOS 시스템 콜(System Call)을 호출할 때 Real Mode로 전환하여 16비트에서 32비트로 변환하는 복잡한 과정을 거쳤다. 이러한 기술은 당시 개발자들에게 상당한 어려움을 안겨주었다.

둠(Doom)의 메모리 관리 기법

둠(Doom)은 메모리 단편화(Memory Fragmentation) 문제를 해결하기 위해 자체적인 존 기반 메모리 관리자(Zone-based Memory Manager)를 사용했다. 레벨의 모든 에셋(Asset)을 동일한 존(Zone)에 할당하여, 레벨 종료 시 해당 존을 한 번에 해제함으로써 메모리 단편화를 방지했다. 이러한 방식은 메모리 할당 및 해제 속도를 높여 게임의 성능을 향상시키는 데 기여했다. 또한, 둠(Doom)은 VGA의 한계를 극복하기 위해 트리플 버퍼링(Triple Buffering) 기술을 활용했다.

VGA의 한계와 둠(Doom)의 혁신적인 그래픽 기술

둠(Doom)은 VGA의 ISA 버스(ISA Bus) 대역폭 제한으로 인해 그래픽 성능에 제약이 있었다. 둠(Doom) 개발자들은 이러한 한계를 극복하기 위해 VGA의 4개의 메모리 뱅크(Memory Bank)를 활용하는 독창적인 기술을 개발했다. 또한, 트리플 버퍼링(Triple Buffering)을 통해 화면 찢김(Screen Tearing) 현상을 제거하고, 35fps의 부드러운 화면을 구현했다. 이러한 기술은 당시 하드웨어 제약 속에서도 둠(Doom)이 뛰어난 그래픽 성능을 낼 수 있었던 핵심 요인이다.

둠(Doom)의 사운드 기술과 사운드 카드

둠(Doom)은 사운드 효과를 위해 사운드블라스터(SoundBlaster)와 같은 사운드 카드를 사용했다. 사운드블라스터는 FM 신시사이저(FM Synthesis)를 사용하여 음악을 생성했으며, 둠(Doom)은 최대 8개의 사운드 효과를 혼합하여 재생했다. Gravis UltraSound(GUS)는 웨이브테이블 신시사이저(Wavetable Synthesis)를 사용하여 더 나은 음질을 제공했지만, 사운드블라스터와의 호환성 문제로 인해 널리 사용되지는 못했다. 둠(Doom)은 다양한 사운드 카드를 지원하기 위해 I_sndArbitrateCards 함수를 사용하여 각 사운드 카드의 설정을 관리했다.

Computing in the Era of Doom: What Were PCs Like in 1993?

댓글 0

첫 번째 댓글을 남겨보세요!