핵심 요약
- 우주 게임 'SEEDS' 개발진이 인게임 단말기 시스템을 단순 연출이 아닌 실제 알파인 리눅스가 돌아가는 64비트 RISC-V 가상 머신으로 구현했다고 공개했습니다.
- 단순 텍스트 흉내가 아니라 CPU, 스토리지, 레트로 사운드카드까지 풀 가상화했으며, 게임 구동 시 백그라운드에서 실제 리눅스 커널이 부팅됩니다.
- 오브젝트 파스칼로 자체 개발한 이 에뮬레이터 'PasRISCV'는 zlib 라이선스의 오픈소스로 전면 무료 공개되었습니다.
요약 인디 우주 게임 'SEEDS'의 개발팀이 게임 내 인게임 컴퓨터 시스템을 구현하기 위해 리눅스가 통째로 구동되는 자체 가상 머신 에뮬레이터를 탑재했다고 밝혀 게이머들과 개발자들 사이에서 화제를 모으고 있습니다.
개발팀의 설명에 따르면, 플레이어가 게임 내 기지 컴퓨터를 통해 행성 개요나 스탯을 확인하는 프로그램들은 단순한 게임 UI 연출이 아니라 실제 알파인 리눅스(Alpine Linux) 환경에서 실행되는 네이티브 ELF 바이너리 앱입니다. 유저가 윈도우 PC에서 게임을 돌리더라도, 게임 내부에서는 64비트 RISC-V 가상 시스템이 백그라운드에서 부팅되어 이 프로그램들을 직접 구동하는 방식입니다.
이를 위해 개발팀은 오브젝트 파스칼(Object Pascal) 언어로 작성된 자체 오픈소스 RISC-V 에뮬레이터 'PasRISCV'를 개발했습니다. 단순히 사용자 영역(유저스페이스)만 흉내 내는 수준이 아니라 디스플레이, 스토리지, 인터럽트까지 하드웨어 전반을 온전히 가상화한 풀 시스템 VM 형태를 취했습니다. x86-64 호스트를 위한 트레이싱 JIT 컴파일러와 인터프리터를 결합한 하이브리드 CPU 에뮬레이션을 적용해 명령어의 약 99%를 JIT로 처리합니다.
또한 게임을 시작하거나 세이브를 불러오는 즉시 백그라운드에서 OpenSBI와 U-Boot를 거쳐 커널이 부팅되며, VirtIO 블록 장치나 PCIe 기반 NVMe 스토리지 에뮬레이션을 통해 시스템 디스크를 연결합니다. 게임 업데이트 시 교체되는 읽기 전용 루트 파티션과 미니게임 점수 등이 기록되는 유저 파티션을 분리해 관리하고 있으며, 호스트 디렉터리를 가상 머신에 바로 공유(VirtIO-9P/VirtIO-FS)할 수 있어 게임 재부팅 없이 코드를 수정·테스트할 수 있는 개발 편의성도 확보했습니다.
그래픽 출력은 심플 프레임버퍼(SimpleFB) 장치와 커스텀 MMIO 버퍼를 통해 인게임 화면 셰이더로 전달되며, 이를 통해 80~90년대 레트로 모니터 특유의 주사선(스캔라인)과 형광 잔상 효과를 구현했습니다. 사운드 역시 CMI8738, FM801 같은 레트로 사운드카드와 야마하 OPL2/OPL3 FM 신디사이저 에뮬레이션을 지원해 고전 PC 감성을 그대로 살려냈습니다. 개발진은 해당 에뮬레이터를 오픈소스(zlib 라이선스)로 전체 공개했습니다.
Sponsored · 광고