테크레시피

게임 속에 32비트 컴퓨터를 만들었다?

테라리아(Terraria)는 광활한 필드를 탐색하면서 적과 싸우거나 아이템을 만들고 건물을 만드는 등 높은 자유도를 지원하는 샌드박스 2D 액션 게임이다. 이런 테라리아에서 다양한 소재를 사용해 회로를 만들 수 있지만 방대한 회로를 구축해 32비트 컴퓨터를 재현해 게임을 프로그래밍하거나 3D 모델을 렌더링하는 영상이 공개되어 눈길을 끈다.

테라리아에는 회로를 작동시키는 신호를 출력하는 스위치, 신호를 전달하는 와이어, 신호를 받아 작동하는 도어와 조명 등 아이템이 준비되어 있어 거점을 만들고 위에서 다양한 아이템 거동을 자동화할 수 있다.

이 구조를 이용해 스위치 온오프 상태를 0이나 1로 보고 논리 연산이 가능하다고 말하는 게 이번 32비트 컴퓨터를 테라리라에서 재현한 것이다. 3개월에 걸쳐 회로를 연결한 결과 작성자는 디지털 로직과 CPU 설계에 대한 방대한 양을 테라리아를 통해 배울 수 있었다고 한다. 이 회로를 실제로 시험하는데 있어 고생한 건 디버그였다고 한다. 회로는 모두 테라리아 아이템으로 만들어져 있기 때문에 외형이 번잡스럽고 어딘가에서 연결 실수가 생기면 실수를 찾는데 상당히 고생했다고 한다.

와이어 종류를 1개 잘못하는 것만으로 회로 전체가 작동하지 않는 경우도 있다. 이 작업은 건초더미에서 건초 외형을 가진 바늘을 찾는 것과 같았다고 밝혔다. 더구나 테라리아가 광활한 월드에 최적화되어 있지 않은 것에 의한 문제도 발생했다고 한다. 이 문제는 너무 긴 와이어 신호 전송 속도가 느려지는 형태로 나타났다고 한다. 와이어 신호 전달 구조는 이렇게 신호를 받은 와이어는 먼저 인접한 픽셀을 체크하고 어떤 픽셀에 신호를 전달할 수 있는 객체가 있으면 전달을 실행한다는 움직임을 한다.

1픽셀씩 신호를 전달하는 구조상 와이어가 길어질수록 신호 전달 속도도 저하되어 버린다. 이를 개선하기 위해선 와이어를 짧게 다시 연결할 수밖에 없었다고 한다. 작성자가 테라리아 내에서 프로그래밍한 게 초기 컴퓨터 게임으로 유명한 폰이다. 테라리아 위에서 캐릭터를 움직이면 테라리아 위에 배치한 디스플레이로 폰을 놀 수 있었다. XYZ 좌표를 지정해 3D 세계를 렌더링하는 시스템도 만들었다. 이 역시 동작 속도는 느려 1프레임을 렌더링할 때마다 45초 걸린다고 한다.

개발자는 테라리아 안에서 테라리아를 실행하는 걸 목표로 개발을 계속하고 있다. 이 프로젝트 저장소는 깃허브에 게시된다. 관련 내용은 이곳에서 확인할 수 있다.

추천기사