TECH 으로 돌아가기
TECH HACKER NEWS 2026.10.29 03:59 7분 읽기 35 READS

20년 넘은 경영 게임을 뜯어보며 배우는 2D 렌더링 원리, Fast Food Tycoon 2 디컴파일 이야기

옛날 게임은 화면을 어떻게 그렸을까

어릴 때 롤러코스터 타이쿤이나 심시티 같은 경영 시뮬레이션 게임 해보신 분 많을 거예요. 작은 손님들이 가게 앞을 오가고 건물이 하나씩 늘어나던 그 화면이요. 그런데 그 시절 컴퓨터는 지금 스마트폰보다도 훨씬 느렸거든요. 그런 성능으로 어떻게 그 많은 걸 매끄럽게 그렸을까요?

healeycodes 블로그에 올라온 이번 글은 2000년대 초쯤 나온 PC 경영 게임 Fast Food Tycoon 2를 디컴파일하면서, 이 게임이 ‘세계를 화면에 그리는 방식’을 거꾸로 따라가는 이야기예요. 소스 코드가 없는 상용 게임이라 실행 파일과 데이터 파일만 들고 퍼즐을 맞춰야 하는데요, 그 과정이 2D 그래픽 기본기를 배우기에 정말 좋은 교재가 돼요.

디컴파일이 뭐냐면

C나 C++로 짠 코드는 컴파일러를 거치면 CPU가 바로 읽는 기계어로 바뀌어요. 이때 변수 이름, 함수 이름, 주석처럼 ‘사람을 위한 정보’는 대부분 사라지고요. 디컴파일은 이 과정을 거꾸로 돌려서 기계어를 사람이 읽을 수 있는 C 비슷한 코드로 되살리는 작업이에요.

비유하자면 다 끓인 김치찌개를 맛보고 레시피를 거꾸로 짐작하는 것과 비슷해요. 요즘은 미국 NSA가 오픈소스로 공개한 Ghidra나 상용 도구인 IDA Pro가 1차 복원을 해주는데요, 결과물을 열어보면 FUN_00401a30, local_1c 같은 아무 의미 없는 이름이 가득해요. 진짜 일은 여기서부터예요. “이 함수는 좌표 두 개를 받아서 메모리에 뭘 쓰네? 아, 스프라이트 그리는 함수구나” 하면서 이름을 하나씩 붙여 나가는 탐정 놀이가 시작되거든요.

‘세계를 그린다’는 건 구체적으로 뭘까

2000년 즈음의 2D 게임은 요즘처럼 GPU 셰이더에 맡기지 않고 CPU가 픽셀을 직접 메모리에 찍는 경우가 많았어요. 그래서 디컴파일한 코드에서 렌더링 로직이 꽤 또렷하게 보이는데요, 이런 게임을 뜯어보면 보통 다음 요소들을 만나게 돼요.

데이터 파일을 해독할 때는 헥스 에디터로 바이트를 들여다보며 헤더 구조를 짐작하고, 작은 뷰어를 직접 만들어 이미지를 뽑아보는 식으로 검증해요. 짐작한 포맷대로 그렸더니 햄버거 가게 그림이 멀쩡하게 나오면 맞은 거고, 줄무늬 노이즈가 나오면 어딘가 틀린 거죠. 이렇게 ‘직접 그려보고 확인하는’ 반복이 역공학의 가장 큰 재미예요.

업계 맥락: 디컴파일은 게임 보존 도구예요

이런 작업이 개인 취미로만 끝나지는 않아요. 트랜스포트 타이쿤 디럭스를 역공학하면서 시작된 OpenTTD, 롤러코스터 타이쿤 2를 조금씩 다시 구현한 OpenRCT2가 대표적이에요. 원작 데이터 파일만 있으면 최신 OS에서 고해상도로 즐길 수 있게 해줬죠. 슈퍼 마리오 64처럼 원본과 바이트 단위까지 똑같은 바이너리가 나오도록 코드를 되살린 ‘매칭 디컴파일’ 프로젝트도 있었고요. 요즘은 LLM으로 디컴파일 결과를 읽기 좋게 다듬는 연구도 활발해서, 이 분야에 들어오는 문턱이 점점 낮아지고 있어요.

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

첫째, 렌더링의 밑바닥을 이해하는 데 이만한 공부가 없어요. 유니티, 언리얼, 웹 Canvas는 이런 걸 다 감춰주지만, 웹 UI에서 z-index가 꼬이는 문제나 게임에서 정렬 버그가 생기는 원리는 결국 같은 이야기거든요.

둘째, 바이너리 분석 역량은 보안 직군에서 특히 쓸모가 커요. 악성코드 분석이나 CTF 리버싱 문제에 쓰는 Ghidra를 부담 없는 옛날 게임으로 연습할 수 있으니까요. 리틀 엔디언(숫자를 낮은 자리 바이트부터 저장하는 방식) 같은 개념도 손으로 한 번 해보면 잊히지 않아요.

다만 저작권은 꼭 챙기세요. 우리 저작권법도 프로그램 역분석을 호환성 확보 같은 목적에 한해서만 제한적으로 허용하고 있어서, 개인 학습을 넘어 원작 에셋을 배포하는 건 전혀 다른 문제가 될 수 있어요.

마무리

한 줄 정리: 오래된 게임 하나를 끝까지 뜯어보면 그래픽스와 역공학을 한꺼번에, 그것도 제일 재미있게 배울 수 있어요.

어릴 때 했던 게임 중에 ‘이건 대체 어떻게 만든 거지?’ 싶어서 뜯어보고 싶은 게임이 있으신가요? 데이터 파일을 직접 열어본 경험이 있다면 댓글로 나눠주세요!


🔗 출처: Hacker News

SOURCE · HACKER NEWS
원문 전체 보기 → https://healeycodes.com/decompiling-fast-food-tycoon-2-drawi...
SHARE
NEXT · CHOOSE

변화를 읽었다면,
내가 만들 수익 구조를 고릅니다.

정보를 더 모으는 데서 멈추지 않고, 광고·외주·판매·중개·구독 중 내 상황에 맞는 출발점을 정해보세요.

21가지 수익 구조 살펴보기 →
처리 중...