TECH 으로 돌아가기
TECH HACKER NEWS 어제 6분 읽기 30 READS

1982년산 컴퓨터로 던전 크롤러 만들기 — C64 BASIC 고블린 전투 편

1982년산 컴퓨터로 던전 크롤러 만들기 — C64 BASIC 고블린 전투 편

요즘은 유니티나 언리얼 같은 엔진이 물리 연산부터 렌더링까지 다 해주는 시대인데요. 그 모든 걸 걷어내고, 1982년에 나온 8비트 컴퓨터 코모도어 64에서 BASIC만으로 던전 크롤러를 만들면 어떨까요? RetroGameCoders에서 연재 중인 C64 BASIC 던전 크롤러 시리즈가 어느덧 8편에 도착했는데, 이번 편의 주제는 드디어 '고블린 전투'예요. 지금까지 던전 지도를 그리고 플레이어를 움직이게 만들었다면, 이제 그 던전에 살아 움직이는 적을 풀어놓는 단계인 거죠.

코모도어 64가 뭐냐면요

코모도어 64(C64)는 1982년에 나온 가정용 컴퓨터인데, 단일 모델로는 역사상 가장 많이 팔린 컴퓨터로 기네스북에 올라 있어요. 이름의 64는 메모리가 64KB라는 뜻이에요. 킬로바이트요, 메가도 기가도 아니고요. 요즘 웹페이지에 들어가는 이미지 한 장보다 작은 메모리 안에서 시스템, 프로그램, 게임 데이터가 전부 살아야 했던 거죠. 그리고 전원을 켜면 바로 BASIC 인터프리터가 뜨는데, 당시 아이들은 이 화면에서 잡지에 실린 게임 코드를 직접 타이핑하면서 프로그래밍을 배웠어요. 지금의 파이썬 REPL 같은 역할을 컴퓨터 부팅 화면이 해줬던 셈이에요.

이번 편에서 다루는 것

8편에서는 던전에 고블린을 배치하고, 플레이어와 싸우게 만드는 로직을 짜요. 말은 간단한데 BASIC의 세계에서는 하나하나가 도전이거든요. 적의 위치와 체력은 배열로 관리하고, 플레이어가 움직일 때마다 고블린도 한 턴씩 반응하게 만드는 턴 기반 게임 루프를 구성해요. 화면에 적을 그리는 것도 요즘처럼 스프라이트 객체를 만드는 게 아니라, 화면 메모리 주소에 문자 코드를 직접 POKE로 써넣는 방식이에요. POKE가 뭐냐면, 메모리의 특정 주소에 값을 직접 집어넣는 BASIC 명령어인데요. C64에서는 화면도 그냥 메모리의 한 구역이라서, 그 주소에 값을 쓰면 해당 위치에 글자가 나타나요. 포인터로 메모리를 직접 만지는 C 프로그래밍의 아주 원초적인 형태를 BASIC에서 경험하는 거죠. 전투 판정은 난수를 굴려서 명중과 데미지를 정하는 고전 롤플레잉 방식으로 구현하는데, 줄 번호와 GOTO, GOSUB로 흐름을 제어하다 보면 '구조적 프로그래밍이 왜 발명됐는지'를 몸으로 이해하게 돼요. 스파게티 코드라는 말이 어디서 왔는지도요.

제약이 주는 배움

이런 레트로 프로그래밍이 단순한 향수 놀이만은 아니에요. 64KB 메모리와 1MHz CPU라는 극단적인 제약 아래에서는 변수 하나, 반복문 하나의 비용이 그대로 체감되거든요. 요즘 환경에서는 추상화 계층이 두꺼워서 잘 안 보이는 것들, 그러니까 게임 루프의 본질, 상태 관리, 메모리 배치 같은 개념이 여기서는 맨살로 드러나요. 실제로 임베디드 개발이나 성능 최적화를 하는 분들이 레트로 컴퓨팅을 취미로 즐기는 경우가 많은 것도 이런 이유고요. 비슷한 맥락에서 PICO-8 같은 '가상 레트로 콘솔'도 꾸준히 사랑받고 있어요. 일부러 제약을 걸어두면 오히려 창의력과 기본기가 자라난다는 걸 보여주는 문화죠.

직접 해보고 싶다면

진입 장벽은 생각보다 낮아요. VICE라는 무료 에뮬레이터를 설치하면 맥이든 윈도우든 리눅스든 몇 분 안에 C64 환경이 뜨고, 브라우저에서 바로 도는 에뮬레이터도 있어요. 이 시리즈를 1편부터 따라가면 지도 그리기, 입력 처리, 이동, 그리고 이번 전투까지 게임의 뼈대를 순서대로 쌓아가는 경험을 할 수 있는데요. 주니어 개발자에게는 '게임 엔진이 대신 해주던 일'이 뭐였는지 깨닫는 좋은 교재가 되고, 시니어에게는 주말에 커피 한 잔 놓고 즐기는 힐링 코딩이 되지 않을까 싶어요.

정리하며

40년 전 기계 위에서도 게임 개발의 본질은 지금과 똑같다는 것, 그게 이 시리즈의 매력이에요. 여러분이 처음 코드를 배웠던 환경은 무엇이었나요? 요즘 주니어에게 '제약 속 프로그래밍' 경험을 시켜본다면 어떤 도구를 추천하고 싶은지도 궁금해요.


🔗 출처: Hacker News

SOURCE · HACKER NEWS
원문 전체 보기 → https://retrogamecoders.com/c64-basic-dungeon-part8/
SHARE
처리 중...