TECH 으로 돌아가기
TECH HACKER NEWS 오늘 7분 읽기 29 READS

1MHz CPU로 3D 오픈월드를? 코모도어 64 ‘머서너리’가 보여준 극한 최적화

1985년, 64KB 메모리에서 돌아간 3D 세계

요즘은 게임 하나 설치하는 데 100GB가 드는 일도 흔하잖아요. 그런데 1985년에 나온 코모도어 64(C64)용 게임 머서너리(Mercenary: Escape from Targ) 는 64KB 메모리와 약 1MHz짜리 8비트 CPU로 자유롭게 돌아다닐 수 있는 3D 세계를 보여줬어요. 영국 개발자 Paul Woakes가 만들고 Novagen이 펴낸 게임이에요. 플레이어는 타르그라는 행성에 불시착한 용병이 돼서 도시를 걸어 다니고, 비행체를 타고 날아다니고, 건물 안에 들어가 보면서 탈출할 방법을 찾아요. 정해진 레일을 따라가는 대신 어디든 갈 수 있으니까, 요즘 말로 하면 ‘오픈월드’의 조상 같은 게임이죠.

이번에 소개할 글은 옛 게임이 기술적으로 어떻게 돌아갔는지 뜯어보는 Games Explained 시리즈의 머서너리 편이에요. 레트로 게임 이야기처럼 보여도 사실은 극한의 제약 속에서 성능을 어떻게 짜내는가를 다루는 글이라서, 요즘 개발자도 배울 게 많거든요.

곱셈조차 비싼 CPU에서 3D를 그린다는 것

C64의 CPU인 6502 계열(정확히는 6510)은 요즘 기준으로 보면 정말 단순해요. 범용 레지스터가 사실상 3개뿐이고, 곱셈·나눗셈 명령어가 아예 없어요. 3D 그래픽은 결국 점의 좌표를 회전시키고(삼각함수와 곱셈), 원근감을 주려고 거리로 나누는(나눗셈) 작업을 끝없이 반복하는 일이에요. 그런데 이 기본 연산부터 소프트웨어로 직접 만들어야 했던 거죠.

그래서 이 시대 3D 엔진들은 몇 가지 트릭을 공통으로 썼어요.

머서너리는 이런 제약 속에서도 당시로서는 꽤 부드럽게 움직이는 3D 화면을 만들어내서 지금까지 회자되고 있어요. 구체적으로 어떤 루틴을 어떻게 짰는지는 원문에서 화면 예시와 함께 자세히 볼 수 있어요.

요즘 기술과 연결해보면

“그건 옛날 얘기 아니야?” 싶겠지만, 의외로 지금도 같은 고민이 반복되고 있어요. FPU(부동소수점 연산 장치)가 없는 MCU를 다루는 임베디드·IoT 개발에서 고정소수점은 여전히 현역이에요. 룩업 테이블도 GPU 셰이더나 오디오 처리에서 계속 쓰이고요. AI 모델 양자화(모델의 숫자를 더 적은 비트로 줄이는 기법)도 발상은 비슷해요. ‘정확도를 조금 내주고 속도를 얻는다’는 트레이드오프의 원조가 바로 이런 기법들인 셈이죠.

같은 시대 영국에서 나온 엘리트(Elite, 1984) 도 8비트 머신에 와이어프레임 3D 우주를 구현한 걸로 유명해요. 두 게임을 비교해 보면, 한정된 자원을 어디에 쓸지 고르는 설계 판단이 게임의 개성을 만든다는 걸 알 수 있어요. 엘리트는 절차적 생성(규칙으로 콘텐츠를 자동으로 만들어내는 방식)으로 수천 개의 행성을 몇 KB에 담았어요. 머서너리는 걸어 다니고 탈것에 올라타는 일관된 세계를 만드는 데 집중했고요.

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

우리는 성능 문제가 생기면 보통 서버를 늘리거나 더 좋은 라이브러리를 찾아요. 그것도 맞는 방법이지만, 레트로 게임 분석 글을 읽다 보면 “이 연산이 정말 필요한가? 미리 계산해둘 수는 없나? 정확도를 조금 낮춰도 되지 않나?” 같은 근본적인 질문을 던지는 연습이 돼요. 알고리즘 문제를 풀 때 누적합이나 메모이제이션 같은 전처리를 쓰는 것과 같은 사고방식이에요.

주니어라면 6502 어셈블리까지 배우지는 않더라도, 이런 글을 천천히 읽으면서 CPU가 실제로 무슨 일을 하는지 감을 잡는 데 큰 도움이 될 거예요. VICE 같은 에뮬레이터로 게임을 직접 돌려보는 것도 재밌는 주말 프로젝트가 될 수 있어요.

마무리

제약이 창의성을 만든다. 머서너리는 64KB 안에서도 세계 하나를 만들 수 있다는 걸 보여줬어요. 여러분이 해본 가장 극단적인 최적화는 뭐였나요? 룩업 테이블이나 고정소수점을 실무에서 써본 적이 있다면 댓글로 공유해주세요!


🔗 출처: Hacker News

SOURCE · HACKER NEWS
원문 전체 보기 → https://gamesexplained.com/c64/mercenary/
SHARE
NEXT · CHOOSE

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

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

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