제퍼넷 로고

Age of Empires 개발자는 Starcraft와 같은 경쟁사보다 '픽셀이 두 배나 많았음에도 불구하고' 화면을 스크롤하고 스프라이트로 채울 수 있었기 때문에 게임이 대부분 하위 수준 어셈블리 코드로 작성되었음을 확인했습니다.

시간

게임에 관한 가장 훌륭한 이야기 ​​중 일부는 단순히 개발자가 게임을 작동시키는 방법에 관한 것입니다. 개발자에게 가장 좋아하는 해결 방법을 물어보면 거대한 트램이 실제로 어떻게 작동하는지에 대해 밤새도록 즐거운 시간을 보낼 수 있습니다. 모자를 쓴 NPC, 또는 토끼가 실제로 어떤지 무엇이 아제로스를 작동하게 만드는가, 등등.

이것은 그런 내용은 아니지만 최근 Reddit 사용자는 Chris Sawyer가 Rollercoaster Tycoon 1과 2를 어셈블리 언어로 작성했으며 Age of Empires도 동일하다고 언급했습니다. "AoE는 어셈블리로 작성되었습니다. 이것이 실제로 사실인가요?!" 전체 게임이 이런 방식으로 하드 코딩된다면 여전히 꽤 놀라운 일이겠지만, 당시에는 이것이 드문 일이 아니었다는 점을 기억하는 것이 중요합니다. 가능한 한 간략하게 어셈블리 언어는 C++와 같은 고급 언어보다 컴퓨터 아키텍처와 더 직접적으로 통신하는 하위 수준 코딩 언어입니다.

Age of Empires가 어셈블리 언어로 코딩되었는지에 대한 질문 답글에서 금을 얻으세요 Ensemble Studios의 창립 멤버 중 한 명이자 처음부터 시리즈의 코딩 리더였던 Matt Pritchard에게 감사드립니다.

Pritchard는 “Age of Empires와 Age of Kings 및 해당 게임의 다른 많은 부분에 사용된 모든 어셈블리 코드를 작성했기 때문에 이를 명확히 할 수 있다고 생각합니다.”라고 말합니다. "전체적으로 약 13,000줄의 x86 32비트 어셈블리 코드가 작성되었습니다."

Pritchard는 계속해서 이 중 대부분이 Microsoft Macro Assembler 6.1에 의해 .obj 파일로 컴파일되고 다른 경우에는 Visual C++로 컴파일된 "드로잉 코어"에 있다고 설명합니다. 쉽게 말해서 이것은 게임이 스프라이트를 그리는 매우 효율적인 방법이었으며, Pritchard는 이 방법이 표준 C++ 구현보다 약 10배 더 빠르다고 평가했습니다.

"AoE의 드로잉 코어는 StarCraft와 같은 경쟁사보다 눈에 띄게 빨랐습니다. 이것이 바로 AoE의 '기본' 해상도가 800x600이었던 이유입니다. 거의 모든 경쟁사가 640x480 해상도였을 때 말이죠."라고 Pritchard는 말합니다. "게임 세계 영역에 두 배나 많은 픽셀이 있었음에도 불구하고 화면을 스크롤하고 스프라이트로 채울 수 있었습니다."

어셈블리 코드는 Age of Kings: HD 에디션(32비트 게임) 시대에도 계속 사용되었지만 Pritchard는 “두 Definitive 에디션 모두 64비트 프로그램이고 인라인이기 때문에 어셈블리 기능을 C++로 다시 작성했습니다. 어셈블리는 64비트 C++ 컴파일러에서 지원되지 않았으며 크게 개선된 레지스터 세트와 컴파일러 최적화로 인해 어셈블리가 불필요해졌습니다. 또한 최종 버전의 스프라이트 드로잉은 멀티 스레드이며 해당 작업에만 최대 4개의 코어를 사용합니다."

이러한 해결 방법이 필요한 이유 중 하나는 두 게임 모두 독립형 3D 카드가 흔하지 않았던 시기에 개발되고 있었기 때문입니다. "최첨단 기술은 Voodoo 2 및 3와 같은 별도의 1D 카드를 사용하는 2D였습니다."라고 Pritchard는 말합니다. 그는 대부분의 Ensemble 개발자가 사용하고 있던 컴퓨터의 Pentium 166 CPU가 "총 16K의 캐시를 가졌습니다"라고 언급하면서 당시의 기술적 제한에 대해 자세히 설명합니다. 또는 더 쉽게 표현하면 "당신은 아마도 내가 AoE를 개발한 PC의 총계보다 더 많은 CPU 캐시 메모리를 갖춘 PC에서 작업하고 있을 것입니다." 

Pritchard는 상당한 경력을 갖고 있었지만 분명히 Age of Empires에 대한 실질적인 친밀감을 갖고 있으며 HD 에디션(Definitive Edition과 혼동하지 말 것)이 어떻게 탄생했는지 언급합니다. “HD 에디션은 제가 누군가의 관심을 끌기 위해 몇 년 동안 Microsoft를 방문하고 Hidden Path(제가 당시 있던 곳에서 이전 고용주인 Valve를 위해 CS:GO 작업을 하고 있었음)와 계약을 맺은 후에 나왔습니다. 다소 작았습니다.”라고 Pritchard는 말합니다.

“Microsoft는 2년대부터 1990D 게임의 전체 디지털 다운로드 버전에 큰 관심이 없다고 생각했습니다(원래 게임의 CD-ROM 버전은 불과 5~XNUMX년 전에도 매장 진열대에 있었습니다). HD는 HPE의 훌륭한 팀이 적은 예산(~XNUMX명, ~ XNUMX년 미만)으로 수행했기 때문에 더 열망적인 Definitive Edition이 아닌 '절대적으로 필요한' 영역에 대한 변경 사항이 유지되었습니다."

게임의 다양한 콘솔 포트에 대한 재미있는 세부 정보도 있습니다. “Ensemble은 PS2 포트와 아무 관련이 없습니다.”라고 Pritchard는 말합니다. “Microsoft는 자체적으로 거래를 협상하고 CD에 코드와 자산 드롭을 제공하고 '해내세요'라고 말했습니다. Dreamcast 포트의 경우에도 거의 동일합니다. 하지만 그 경우에는 화이트보드에 그림을 그리고 그래픽 세부 사항을 설명하려고 노력하는 데 한 시간을 보냈습니다. 코나미 엔지니어는 영어도 할 수 없었고 저는 일본어도 할 수 없었습니다.”

Pritchard는 다음과 같이 말하며 마무리합니다. “1996년의 시작과 제작부터 2010-11년 부활의 원동력이 되어 현대에 이르기까지 이러한 게임에서 큰 역할을 하게 된 것은 매우 행운이며 내 자신의 여정을 마무리했습니다. 2019년에 DE가 출시되자 이를 사용했습니다.

“나는 그 창조의 일부가 된 것을 매우 행운으로 여기고 그것이 사람들에게 가져온 모든 즐거움과 그 이상에 대해 오늘날까지 겸손해졌습니다. 그 게임의 모든 팬과 지지자들이 없었다면 저는 결코 게임 개발 분야에서 훌륭한 경력을 쌓을 수 없었을 것입니다.”

spot_img

최신 인텔리전스

spot_img