처리중입니다. 잠시만 기다려주세요.
TTJ 코딩클래스
정규반 단과 자료실 테크 뉴스 코딩 퀴즈
테크 뉴스
Hacker News 2026.07.29 34

1998년작 하프라이프, 28년 만에 Mac OS 9에 이식됐어요 — 취소됐던 포팅을 되살린 집념

Hacker News 원문 보기

취소됐던 포팅이 드디어 완성됐어요

밸브(Valve)의 전설적인 FPS 게임 하프라이프(Half-Life)가 Mac OS 9에서 돌아가게 됐어요. '요즘 맥에서 옛날 게임이 돌아가는 게 뭐가 신기하지?' 싶으실 텐데, 이야기가 반대예요. 지금의 macOS가 아니라, 20년도 더 전에 역사 속으로 사라진 클래식 Mac OS 9에서 1998년 게임을 돌린 거거든요. 여기엔 사연이 있어요. 하프라이프는 원래 1999년에 공식 맥 버전이 개발되고 있었어요. 그런데 발매를 앞두고 프로젝트가 통째로 취소됐죠. 당시 맥 게이머들에게는 오랫동안 묵은 한(恨) 같은 사건이었는데, 한 개발자가 그 미완의 포팅을 취미로 직접 완성해버린 거예요.

Mac OS 9에서 게임 돌리기가 왜 어렵냐면요

포팅이 뭐냐면, 한 플랫폼용으로 만들어진 프로그램을 다른 플랫폼에서 돌아가게 옮기는 작업이에요. 그런데 Mac OS 9로의 포팅은 난이도가 차원이 달라요. 첫째, CPU 아키텍처가 달라요. 하프라이프는 인텔 x86용으로 만들어졌는데, 당시 맥은 PowerPC라는 완전히 다른 CPU를 썼어요. 명령어 체계 자체가 다르니 소스 코드를 PowerPC용 컴파일러로 다시 빌드해야 하고요. 둘째, 바이트 순서(엔디언) 문제가 있어요. x86은 리틀 엔디언, PowerPC는 빅 엔디언이라 숫자를 메모리에 저장하는 순서가 서로 반대거든요. 게임이 맵 파일이나 텍스처를 읽을 때 바이트 순서를 일일이 뒤집어주지 않으면 데이터가 전부 깨져서 나와요.

셋째가 진짜 큰 산인데, 운영체제가 제공하는 기반이 완전히 달라요. Mac OS 9는 지금 우리가 당연하게 여기는 보호 메모리도, 선점형 멀티태스킹도 없는 운영체제였어요. 프로그램 하나가 잘못되면 시스템 전체가 같이 죽는 환경이죠. 그래픽도 마찬가지예요. 요즘처럼 표준화된 그래픽 환경을 기대할 수 없어서, 그 시절 맥의 그래픽 가속 방식에 맞춰 렌더링 경로를 손봐야 해요. 사운드, 입력 장치, 네트워크까지 전부 클래식 맥의 고유한 API로 다시 연결해야 하고요. 그것도 현대적인 개발 도구의 도움 없이, 그 시절의 툴체인과 씨름하면서요.

이런 걸 대체 왜 하는 걸까요

솔직히 실용성은 없어요. 하프라이프는 스팀에서 몇천 원이면 살 수 있고 요즘 컴퓨터에서 훨씬 잘 돌아가요. 그런데 레트로 컴퓨팅 커뮤니티에서 이런 프로젝트가 갖는 의미는 따로 있어요. 하나는 '역사의 복원'이에요. 취소된 공식 포팅은 게임 역사의 빈 페이지인데, 그걸 채워 넣는 작업인 거죠. 또 하나는 순수한 엔지니어링 도전이에요. 제약이 심한 환경에서 문제를 푸는 경험은 편한 환경에서는 절대 배울 수 없는 것들을 가르쳐주거든요. 메모리가 부족하면 자료구조를 다시 고민하게 되고, 좋은 프로파일러가 없으면 성능 문제를 눈과 감으로 잡아야 해요.

비슷한 사례로는 둠(Doom)을 임신 테스트기나 냉장고에서 돌리는 유서 깊은 밈이 있고, 슈퍼 마리오 64가 PC로 역컴파일되어 온갖 기기로 이식된 흐름도 있었죠. 오래된 게임 엔진을 현대에 되살리는 '소스 포트' 문화는 소프트웨어 보존이라는 관점에서도 점점 중요해지고 있어요. 게임은 문화유산인데, 돌릴 수 있는 기계가 사라지면 유산도 같이 사라지니까요.

한국 개발자에게도 남는 게 있어요

이런 프로젝트에서 배울 점은 의외로 실무적이에요. 첫째, 크로스 플랫폼 이슈의 본질을 알게 돼요. 엔디언, 메모리 정렬, 컴파일러 차이 같은 저수준 문제는 지금도 임베디드나 게임 개발에서 그대로 만나는 문제거든요. 둘째, 이식성 있는 코드가 왜 중요한지 체감하게 돼요. 하프라이프의 GoldSrc 엔진을 옮기는 게 가능했던 건, 렌더링 같은 플랫폼 의존 코드가 어느 정도 분리돼 있었기 때문이에요. 요즘 우리가 인터페이스 분리나 추상화 계층을 강조하는 이유가 바로 이거죠. 셋째, 오래된 코드를 읽는 근육이 생겨요. 실무의 절반은 남이 짠 오래된 코드와 싸우는 일이잖아요.

한 줄 정리하면, 28년 묵은 미완성 포팅을 취미로 완성해낸 집념의 엔지니어링이에요. 여러분에게 시간과 실력이 무한하다면 되살려보고 싶은 '추억의 소프트웨어'는 뭔가요?


🔗 출처: Hacker News

이 뉴스가 유용했나요?

TTJ 코딩클래스 정규반

월급 외 수입,
코딩으로 만들 수 있습니다

17가지 수익 모델을 직접 실습하고, 1,300만원 상당의 자동화 도구와 소스코드를 받아가세요.

144+실전 강의
17개수익 모델
4.9수강생 평점
정규반 자세히 보기

"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"

실제 수강생 후기
  • 비전공자도 6개월이면 첫 수익
  • 20년 경력 개발자 직강
  • 자동화 프로그램 + 소스코드 제공

매일 AI·개발 뉴스를 받아보세요

주요 테크 뉴스를 매일 아침 이메일로 전해드립니다.

스팸 없이, 언제든 구독 취소 가능합니다.