일만 하고 살 순 없습니다. 저도 놀아야죠.
그리고 제가 쉬는 방식은 당연히 게임 컬렉션을 소프트웨어 프로젝트로 만드는 것입니다. Steam 게임, 에뮬레이터, PC 이식, 디컴파일, 팬 게임, 모드 팩까지 전부 AI 에이전트가 Ansible 저장소 하나에서 설치하고 설정하고 문서로 남깁니다. 모두 컨테이너 안에서 돌기 때문에 제 Omarchy 데스크톱은 의존성을 하나도 보지 않습니다. 그 위에는 제가 만든 런처가 있어서 전체가 콘솔처럼 느껴집니다.
Fun to Drive: 새 테슬라 로드스터로 달리는 80년대 아케이드 레이싱
AI 에이전트와 바이브 코딩으로 만든 작은 게임입니다. 새로 발표된 테슬라 로드스터가 콜드에어 추진기와 점프를 달고, 80년대 장난감 대시보드 화면 속 아웃런 스타일 도로를 달립니다. Playmates Fun-to-Drive나 Tectoy의 Turbo Video Driver 같은 장난감입니다.
- 2분, 6분, 10분 중 하나를 골라 시간이 끝나기 전에 최대한 많은 차를 추월하세요. 매 레이스는 내 시계의 계절과 시간대에서 시작합니다.
- 콜드에어 충전 세 개를 모으면 추진기를 쏠 수 있고, Jump Kick으로 차들을 뛰어넘을 수 있습니다. 차 위에 착지하지만 않으면요.
- 책상 위 장난감도 반응합니다. 핸들이 돌고, 기어 레버가 움직이고, 부딪히면 대시보드 전체가 흔들립니다.
- 맑은 하늘, 비와 눈, 벚꽃부터 앙상한 겨울나무까지 계절마다 바뀌는 길가 풍경, 네온의 도쿄부터 파리까지 이어지는 배경. 드문 이벤트도 있습니다. 차를 날려 버리는 허리케인, 밤의 UFO 납치, 그리고 시속 88마일을 유지하면 타임머신입니다.
- 키보드, 진동 게임패드, 터치로 즐길 수 있습니다. Rust와 Bevy로 만들고 WebAssembly로 컴파일해 브라우저에서 돌아갑니다.
오래된 레이싱 게임, 다시 플레이 가능하게
제가 좋아하는 레이싱 게임 중 몇몇은 abandonware입니다. 어느 스토어에서도 팔지 않고, 오후 내내 꼼수를 쓰지 않으면 요즘 PC에서 돌아가지 않습니다. 그래서 코딩 에이전트와 제 리버스 엔지니어링 도구 REA로 게임마다 런처를 하나씩 만들었습니다. 원본 게임은 그대로 둡니다. 런처는 그래픽, 컨트롤러, 화면, 레지스트리처럼 주변에서 낡은 부분을 고치고, 그다음 요즘 PC가 할 수 있는 것을 더합니다.
각 게임은 본인 소유의 사본이 필요합니다. 게임 파일을 담은 런처는 없습니다.
1995Screamer 3부작
이전 MS-DOS 게임 세 편입니다. GOG판 Screamer 2에는 DOS에서 동작하지 않는 Windows용 Glide 스텁이 들어 있고, 에뮬레이터를 최고 속도로 돌리면 아날로그 입력이 전혀 먹히지 않습니다.
- 진짜 3dfx Glide, 에뮬레이션한 Voodoo가 두 배 해상도로 그림
- FSR 업스케일, Hor+ 와이드스크린, 더 긴 드로우 디스턴스
- 아날로그 조작과 CD 음악
- 100fps 실험적 프레임 생성
1998Colin McRae Rally
이전 Windows 95용으로 만든 게임입니다. 제 환경에서는 레지스트리 키, XP 호환 모드, 800x600에 고정한 화면, 게임패드용 키보드 브리지가 필요했고, 그래도 800x600의 4:3으로만 돌아갔습니다.
- 4K, Hor+ 와이드스크린, 60fps. 물리는 원래의 25Hz 그대로
- HUD, 메뉴, 하늘, 표지판, 차량을 AI로 다시 그린 HD 아트
- 최대 세 배의 드로우 디스턴스
- 트리거를 페달로, 진동 지원
2003Colin McRae Rally 3
이전 물 빠진 듯한 화면, 그리고 디스크 복사 방지에 묶인 공식 1.1 실행 파일.
- SilentPatch로 어떤 화면비든 와이드스크린, 4K HD 인터페이스
- 1.1 실행 파일을 재발매판의 DRM 없는 실행 파일로 변환
- 최대 16x 비등방성 필터링과 조절 가능한 시야각
- Linux에서 선택 가능한 색상·감마 보정
2004Colin McRae Rally 04
이전 16:9로 해도 보이는 풍경이 넓어지지 않고, 그래픽 메뉴는 2048x1536에서 멈춘 채 다운되며, Alt+F4도 먹히지 않습니다.
- dgVoodoo를 통한 올바른 지오메트리의 16:9
- 가로 모니터를 골라 주고, 창 닫기도 동작
- 아날로그 트리거와 미리 설정된 컨트롤러
- 선택 가능한 fps 제한과 vsync
2004Colin McRae Rally 2005
이전 Wine에서 실행하자마자 다운되고, GOG 설치 프로그램도 거기서 멈춥니다. DVD판은 StarForce를 써서 지원하지 않습니다.
- GOG 설치 파일에서 바로 설치
- 게임 자체의 와이드 화면으로 16:9
- Linux의 DXVK: 약 20fps였던 스테이지가 이제 1,000fps를 넘음
- 세이브는 전용 폴더에
2006OutRun 2006: Coast 2 Coast
이전 PC판은 커뮤니티 패치와 디스크 DRM 제거가 필요하고, "Rush a Difficulty"의 첫 2초가 빠져 있습니다.
- 고정된 검증 버전의 OutRun2006Tweaks를 자동 설치
- 4K, 16x 비등방성 필터링, 더 긴 드로우 디스턴스
- 잘린 데 없는 "Rush a Difficulty"
- 선택형 HD 텍스처, 진동, 트리거 완전 지원
2007Colin McRae: DiRT
이전 스레드가 많은 CPU에서는 어떤 레이스를 불러와도 다운되고, 커뮤니티 패치는 그래픽 설정을 전부 초기화합니다.
- 다중 스레드 크래시를 자체 수정, 설정은 그대로
- Large Address Aware로 2GB 넘는 메모리 사용
- 9GB를 두 번 복사하지 않고 하드 링크로 처리
- 4K Ultra 프리셋과 네이티브 XInput
2007Sega Rally Revo
이전 패치 4.060에 들어간 두 가지 타이밍 버그로 인한 상시 마이크로 스터터, GPU가 두 개인 PC에서의 검은 화면, 그리고 Wine에서 실패하는 설정 도구.
- 클린룸 방식의 스터터 수정: 99.9%의 프레임에서 레이스 시계가 실제 시간과 1ms 이내로 유지
- 4K, Ultra 품질, 21:9와 32:9
- 60 또는 120fps 제한
- 네이티브 XInput과 진동
2015DiRT Rally
이전 Feral이 2017년에 낸 Linux판은 Ryzen 5000 이후 CPU에서 실행하자마자 다운되고, 요즘 Linux에서 빠진 라이브러리가 필요하며, 2022년에 판매가 중단되었습니다.
- Rust로 만든 작은 라이브러리가 게임을 건드리지 않고 크래시를 수정
- 옛 라이브러리를 게임에만 제공
- Feral의 실행 전 창을 건너뛰고 4K로 시작
- 8BitDo 같은 컨트롤러가 게임 자체 목록에 표시
모두 실험 단계입니다. Linux에서 RTX 5090과 Xbox 스타일 컨트롤러로 하나씩 처음부터 끝까지 테스트했습니다. 네이티브 Windows에서는 아직 하나도 테스트하지 않았으니, 직접 해 보신다면 실행 파일의 SHA-256과 로그를 붙여 이슈를 열어 주세요.
그리고 레시피는 SDK가 되었다
런처는 모두 이전 런처를 복사해서 시작했고, 복사본마다 제각각의 버그를 안고 갈라져 나갔습니다. 그래서 늘 권하던 순서를 따랐습니다. 앱이 먼저, 프레임워크는 나중입니다. rea-launcher-sdk에는 런처들의 공통 부분이 담겨 있고, 코딩 에이전트가 다루도록 작성되었습니다.
제가 따른 순서
- 같은 종류의 프로젝트를 여러 개 만들고, 각각 자기 실제 문제를 풉니다.
- 그것들을 나란히 놓고 비교합니다.
- 모두 같은 기반 위에 설 때까지 리팩터링합니다.
- 그다음에야 공통 부분을 프레임워크로 추출합니다.
- 9
- 이 SDK로 만든 런처, 게임 11개
- 1,223
- SDK와 런처 전체의 테스트, 모두 통과
- 95%
- SDK 자체 코드의 라인 커버리지, 테스트 310개
- ~4
- SDK로 만든 런처 하나에 든 시간, 이전에는 8~18시간
2026년 11월 2일 블로그 글 기준입니다.
내 게임의 런처 만들기
SDK를 클론하고, 에이전트에 REA를 추가한 뒤, 설치된 게임을 가리키면 됩니다. 에이전트가 커뮤니티 패치를 조사하고, 리버스 엔지니어링을 하고, 코드를 작성합니다. 네 번의 체크포인트에서 멈춰 결정을 기다리며, 승인 없이는 아무것도 공개하지 않습니다. Claude Code, Codex, opencode, Cursor에서 동작합니다.
cd ~/Projectsgit clone https://github.com/akitaonrails/rea-launcher-sdk# REA, the reverse engineering MCPnpx rea-agents setup# Claude Code onlyrea-launcher-sdk/scripts/install-skills~/Projects/rea-launcher-sdk에 있는 SDK로 Need for Speed: Porsche Unleashed(PC, 2000)용 새 rea 런처를 만들어 줘. AGENTS.md, docs/STANDARDS.md, docs/playbooks/new-launcher.md를 읽고 플레이북을 단계별로 따라 줘. 게임은 /mnt/games/NFSPU에 설치되어 있어(읽기 전용, 절대 저장소에 복사하지 마). 먼저 커뮤니티 패치를 조사하고, 코드를 쓰기 전에 찾은 것을 보여 줘. 나에게 묻지 않고 push하거나 공개하지 마.
SDK의 README를 바탕으로 한 프롬프트 예시입니다.
AI와 함께하는 레트로 게이밍

호스트는 깨끗하게
에뮬레이터와 Windows 게임은 32비트 라이브러리, Wine 빌드, AUR 패키지, 서로 충돌하는 런타임 버전을 끌고 들어옵니다. 그중 어느 것도 제 데스크톱에 닿지 않습니다. Steam까지 포함해 전부 gaming이라는 Arch Linux distrobox 하나에 들어 있고, 호스트에는 데스크톱에 필요한 것만 남습니다.

- Steam은 박스 안에서 돌고, 라이브러리와 Proton 프리픽스는 별도 디스크에 있습니다
- NVIDIA 드라이버는 그대로 전달하고, 32비트 라이브러리 예외 하나는 호스트가 아닌 런처에서 고칩니다
- 박스가 데스크톱 항목을 만들면 호스트의 작은 스크립트가 검증해서 설치하고, 사라진 앱의 항목은 지웁니다
- 세이브는 NAS에 미러링하고 필요할 때 복원하므로 박스를 지워도 잃는 게 없습니다
멱등이라 마음껏 부숩니다
에뮬레이터, 설정, 패치, 모드 세트가 모두 Ansible 롤입니다. 플레이북을 두 번 돌려도 바뀌는 게 없으니, 마음대로 실험하고, 에뮬레이터 하나의 설정만 초기화하거나, 박스 전체를 처음부터 다시 만들어도 같은 머신이 돌아옵니다.
ansible-playbook site.yml # the whole box, from scratchansible-playbook site.yml # again: nothing changesansible-playbook reset-configs.yml --tags esde # reset one frontendansible-playbook backup.yml && ansible-playbook restore.ymlansible-playbook site.yml --tags verify # post-setup checks- 96
- docs/의 노트, 게임, 이식작, 수정마다 하나씩
- 497
- 2026년 4월 11일 이후 커밋
조사는 AI가 하고, 기록도 남깁니다
이식작, 리컴파일, 말 안 듣는 Windows 게임마다 에이전트가 자료를 조사하고 Ansible 롤을 쓰고, 어디서 구하는지, 어떻게 설정하는지, 무엇이 안 됐는지를 노트로 남겼습니다. Steam 게임은 Proton용 호환성 데이터베이스가 따로 있고, 로컬 수정마다 출처가 달려 있습니다.
사용 방법
가장 쉬운 방법은 에이전트에게 맡기는 것입니다. 저장소를 클론하고, 그 안에서 Claude Code를 연 다음, 원하는 컨테이너와 게임을 말하면 됩니다. 플레이북과 노트가 바로 그 용도로 쓰여 있습니다.
git clone https://github.com/akitaonrails/distrobox-gamingcd distrobox-gamingclaudeES-DE, Dolphin, PCSX2가 들어간 gaming 컨테이너를 설정해 줘. ROM과 BIOS 파일은 /path/to/your/games에 있어.
저장소에는 게임, ROM, BIOS 등 바이너리가 들어 있지 않습니다. 직접 준비하고 그 위치를 에이전트에게 알려 주세요.
박스 안에 든 것
에뮬레이터
프런트엔드는 ES-DE이고, 단독 실행형 shadPS4, Dolphin, PCSX2, DuckStation, Flycast, xemu, RPCS3, PPSSPP, Azahar, Eden, Cemu, Supermodel, 그리고 코어를 갖춘 RetroArch가 있습니다.
이식작, 디컴프, 리컴프
Ship of Harkinian, 2Ship2Harkinian, Starship, SpaghettiKart, Render96ex, Unleashed Recompiled 같은 네이티브 빌드.
Windows 게임
Metal Gear Master Collection 같은 게임을 Wine으로 관리하며 설치하고 고칩니다. 오래된 레이싱 게임은 이제 위에서 소개한 제 런처로 들어옵니다.
모드도 재현 가능하게
게임별 NexusMods 모드 세트, PS3와 Switch용 DLC 및 패치 설치, 게임별 RPCS3 설정.
Omarchy용으로 직접 만든 런처
omarchy-games-menu는 Omarchy와 Hyprland용 Steam 스타일 전체 화면 런처입니다. gaming 저장소가 내보내는 데스크톱 항목을 읽기 때문에 새 게임은 알아서 나타나고, 모든 게 단축키 하나 거리에 있습니다.

- Rust CLI인 ogm이 스캔, 카탈로그, 저장을 맡고, QuickShell 오버레이가 그리드를 그립니다
- 커버 아트와 메타데이터는 SteamGridDB에서 가져오고, 이식작과 리컴프는 GitHub에서 새 릴리스를 확인합니다
- 많이 플레이한 순, 이름, 추가한 날짜, 출시일로 정렬하고, 아무 데서나 입력하면 필터링됩니다
- Hyprland 모니터 설정에 맞춰 크기가 바뀌고, Super+G 같은 키 하나로 열리며, 게임은 전용 워크스페이스에서 전체 화면으로 열립니다
yay -S omarchy-games-menu-binogm scan && ogm refreshgames-menu # or bind it: bind = SUPER, G, exec, games-menu