본문 바로가기
트렌드 이슈 · 토픽

명작 게임 테라리아 속에 32bit 컴퓨터를 만들면 어떻게 될까?

by 두우우부 2023. 6. 30.
반응형

 

광대한 필드를 탐색하면서 적과 싸우거나 아이템을 만들거나 건물을 건축하는 등 높은 자유도를 가진 샌드박스계 2D 액션 게임이 '테라리아'입니다.

이 「테라리아」에서는 다양한 소재를 사용해 회로를 만들 수 있습니다만, 방대한 회로를 구축해 32bit의 컴퓨터를 재현해, 게임을 프로그래밍하거나 3D모델을 렌더링 하는 영상이 공개되었습니다.

I Made a 32-bit Computer Inside Terraria - YouTube

 

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



이러한 장치를 이용하여 스위치의 ON/OFF 상태를 '0' 또는 '1'로 보는 논리 연산이 가능했다고 하는 것이, 32bit 컴퓨터를 테라리아에 재현한 From Scratch 씨입니다.

From Scratch 씨는 테라리아의 본 게임은 뒷전으로 하고,  회로를 사용해 놀고 있었다고 합니다. ㅋㅋ



약 3개월에 걸쳐 회로를 계속 연결한 From Scratch 씨.



증설에 이어 증설



이 과정에서 디지털 로직과 CPU 설계에 대한 방대한 양의 지식을 테라리아를 통해 배웠다고 From Scratch 씨는 말합니다.

이 회로를 실제로 시험하는 데 있어서 고생한 것이 「디버그」였다는 것. 회로는 모두 테라리아의 아이템으로 만들어져 있기 때문에 외형이 번잡하고, 어딘가에서 연결 미스가 있을 경우, 찾는데 매우 고생했다고 합니다.



와이어의 종류를 1개 틀리는 것만으로도 회로 전체가 먹통이 된 경우도 있었습니다. 이 작업을 From Scratch 씨는 "건초 더미에서 건초 모양을 한 바늘 찾기와 같았다"라고 회상했습니다.



게다가 테라리아가 「광대한 월드」에 최적화되어 있지 않은 것에 의한 문제도 발생했다고 합니다. 이 문제는 너무 긴 와이어의 신호 전송은 속도가 느려지는 형태로 나타났다고 합니다.



와이어의 신호 전달 구조는 이렇게 신호를 받은 와이어는 먼저 인접한 픽셀을 체크하고, 어느 픽셀에 신호를 전달할 수 있는 객체가 있으면 전달을 실행하는 움직임을 합니다.



1픽셀씩 신호를 전달하는 구조상, 와이어가 길어질수록 신호 전달 속도도 저하되어 버립니다. 이것을 개선하기 위해서는 와이어를 짧게 다시 연결할 수밖에 없었다고 합니다.



From Scratch 씨가 테라리아 내에서 프로그래밍한 것이, 초기의 컴퓨터 게임으로서 유명한 「폰」입니다. 테라리아 위에서 캐릭터를 움직이면 테라리아 위에 배치한 디스플레이로 폰을 플레이할 수 있었다는 것.



셀이 탄생 · 소멸을 반복하는 시뮬레이션 게임 「라이프 게임」도 만들었습니다. 덧붙여 탄생 · 소멸의 속도는 상당히 느리고, 영상은 240배속이라고 합니다.



X, Y, Z 좌표를 지정하여 3D의 세계를 렌더링 하는 시스템도 작성. 이것도 동작 속도는 느리고, 1 프레임을 렌더링 할 때마다 45초나 걸린다는 것.



From Scratch 씨는 "테라리아 안에서 테라리아를 실행하는 것"을 목표로 개발을 계속하고 있습니다.


이 프로젝트는 GitHub에 공개되어 있습니다.

GitHub - misprit7/computerraria: A fully compliant RISC-V computer made inside the game Terraria
https://github.com/misprit7/computerraria

GitHub - misprit7/computerraria: A fully compliant RISC-V computer made inside the game Terraria

A fully compliant RISC-V computer made inside the game Terraria - GitHub - misprit7/computerraria: A fully compliant RISC-V computer made inside the game Terraria

github.com

반응형