TECH 으로 돌아가기
TECH HACKER NEWS 오늘 6분 읽기 47 READS

2026년에 Windows XP용으로 게임을 빌드한다고? ‘레거시 지원’이라는 장인 정신

2026년에 Windows XP용으로 게임을 빌드한다고? ‘레거시 지원’이라는 장인 정신

무슨 이야기냐면요

‘프린키피아(Principia)’라는 물리 기반 샌드박스 게임이 있어요. 블록과 막대, 모터, 바퀴 같은 부품을 조립해서 기계나 장치를 만들고, 그게 실제 물리 법칙대로 움직이는 걸 보는 게임이죠. 레고에 물리 엔진을 붙였다고 생각하면 비슷해요. 그런데 이 게임 개발자가 2026년에 와서 ‘Windows XP에서도 돌아가게 만들었다’는 글을 올렸어요.

잠깐, Windows XP요? 2001년에 나와서 마이크로소프트가 공식 지원을 끊은 지 10년도 더 된 그 운영체제 맞아요. 요즘 같은 시대에 왜 굳이 XP를 챙길까 싶지만, 의외로 전 세계엔 아직도 XP를 쓰는 오래된 PC가 많거든요. 사양이 낮아서 최신 윈도우를 못 돌리는 구형 노트북, 인터넷 카페, 개발도상국의 교육용 컴퓨터 같은 곳이요. 개발자 입장에선 “한 명이라도 더 내 게임을 즐길 수 있다면” 하는 마음으로 이런 작업을 하는 거예요.

근데 이게 왜 어렵냐면요

“그냥 옛날 컴퓨터용으로 컴파일하면 되는 거 아냐?”라고 생각할 수 있는데, 실제로는 꽤 까다로워요. 하나씩 풀어볼게요.

요즘 우리가 쓰는 컴파일러(코드를 컴퓨터가 실행할 수 있는 형태로 번역해주는 프로그램)들은 오래전에 XP 지원을 끊어버렸어요. 예를 들어 마이크로소프트의 비주얼 스튜디오는 최신 버전에서 XP용 프로그램을 못 만들어요. 그래서 ‘v141_xp’ 같은 특별한 옛날 도구 세트를 따로 설치하거나, 아예 구형 컴파일러를 동원해야 해요.

더 골치 아픈 건 ‘API’ 문제예요. API가 뭐냐면, 프로그램이 운영체제한테 “이런 기능 좀 해줘”라고 부탁할 때 쓰는 명령어 목록 같은 거예요. 그런데 XP에는 요즘 윈도우에 있는 명령어들이 아예 없어요. 최신 코드가 무심코 “이 기능 해줘”라고 불렀는데, XP는 “그게 뭔데?” 하고 멈춰버리는 거죠. 그래서 개발자는 코드 곳곳에서 XP에 없는 기능을 찾아내, XP도 알아들을 수 있는 옛날 방식으로 바꾸거나 대체 코드를 직접 짜 넣어야 해요.

여기에 게임이 쓰는 외부 라이브러리(그래픽·사운드·입력 처리 등을 대신 해주는 코드 묶음)들도 전부 XP에서 도는 버전으로 맞춰야 하고, 가능하면 ‘정적 링크(static linking)’라고 해서 필요한 부품을 실행 파일 안에 통째로 넣어버려요. XP에는 요즘 라이브러리가 깔려 있지 않으니까, 게임이 알아서 다 들고 다니게 만드는 거죠.

이런 작업, 업계에선 어떤 위치일까요

사실 최신 기술이 쏟아지는 요즘 분위기에서 ‘XP 지원’은 정반대 방향의 이야기예요. 대부분의 회사는 오히려 “옛날 OS 지원 그만하자, 유지보수만 힘들다”며 과거를 빨리 버리는 쪽이거든요. 크롬, 윈도우, 각종 앱들이 줄줄이 구형 시스템 지원을 끊는 게 요즘 흐름이고요.

그런데 이런 흐름 속에서도 일부러 옛 플랫폼을 챙기는 개발자들이 있어요. 게임 쪽에선 특히 ‘내 작품을 최대한 많은 사람이, 어떤 기계에서든 즐기게 하고 싶다’는 마음으로 이런 호환성 작업을 해요. 한 사람이 만드는 인디 게임이기에 가능한, 효율보다 애정이 앞서는 선택이죠. 레트로 컴퓨팅이나 임베디드(오래된 산업용 기기처럼 사양이 낮고 잘 안 바뀌는 환경) 분야에서도 비슷한 고민을 늘 해요.

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

이 이야기가 멀게 느껴질 수 있지만, ‘하위 호환성(backward compatibility)’은 우리 일상에도 그대로 있어요. 안드로이드 앱 만들 때 “최소 지원 버전을 어디까지 내릴까?”, 웹 만들 때 “구형 브라우저까지 챙길까, 최신 기능을 쓸까?” 하는 고민이 똑같은 결의 문제거든요. 지원 범위를 넓히면 더 많은 사용자를 얻지만 코드는 복잡해지고 새 기능 쓰기가 어려워져요. 반대로 과감히 옛것을 버리면 코드는 깔끔해지지만 일부 사용자를 잃죠.

정답은 없어요. 다만 이 개발자처럼 “왜 이 플랫폼을 지원하는가”를 명확히 알고 결정하는 게 중요해요. 그냥 습관적으로 옛 버전을 끌고 가는 것과, 분명한 사용자층을 위해 의도적으로 챙기는 건 완전히 다르거든요.

정리하면

낡은 플랫폼을 지원한다는 건 단순한 고집이 아니라 ‘누구를 위해 이걸 만드는가’에 대한 답이에요. 여러분은 자신의 프로젝트에서 하위 호환성의 마지노선을 어디로 잡고 계신가요?


🔗 출처: Hacker News

SOURCE · HACKER NEWS
원문 전체 보기 → https://voxelmanip.se/2026/06/28/building-principia-for-wind...
SHARE
처리 중...