3. 30초짜리 세계에서 우리는 무엇을 선택했나 (3)

공유지의 비극을 게임과 실험으로 다시 묻다

by 대치동 중학생

3장. 이론을 게임으로 번역하는 방법 - 30초짜리 세계의 제작기

2장에서 공유지의 비극은 인간 본성의 비극이 아니라, 규칙과 권리, 그리고 실패의 정의가 만든 비극일 수 있다는 사실을 따라왔다. 그렇다면 다음 질문은 자연스럽다. 그 규칙을, 교실 안의 30초짜리 세계로 옮기려면 무엇이 필요할까?

이 장은 그 번역의 과정이다. 책에서 읽은 개념들을 “설명”으로 끝내지 않고, 버튼과 시간, 디스플레이와 불확실성 같은 구체적인 물건들로 바꾸는 과정. 말하자면 이론을 문장에서 장치로 옮기는 작업이다. 규칙은 인간의 마음을 묘사하지 않는다. 규칙은 인간의 행동을 조립한다. 그래서 게임 설계는 단지 재미의 문제가 아니라, 어떤 사회를 아주 작게 만들어내는 사회적 장치(device)를 만드는 일에 가깝다.

1. 번역의 목표: 탐욕을 없애지 않고, 결말을 바꾸기

이 게임의 목표는 ‘착한 플레이어’를 만드는 것이 아니다. 오히려 중학생의 게임 환경에서 가장 자연스럽게 등장하는 것-경쟁심, 의심, 한 번 더 누르고 싶은 마음-을 그대로 둔다. 다만 그 마음이 곧장 파국으로 수렴하지 않도록 패배의 구조를 바꾼다.
하딘의 서사에서 비극은 ‘과잉 채취’의 결과다.
하지만 이 게임에서 비극은 ‘누군가가 기준 아래로 떨어지는 결과’로 정의된다.
이 작은 차이가 중요하다. 사람은 최대 이익보다, 어떤 경우에는 최악의 실패를 더 크게 의식한다. ‘최약자 기준 공멸’은 바로 그 감각을 규칙으로 고정해, 탐욕을 도덕적으로 단속하기보다 탐욕이 작동하는 방향을 바꿔 보려는 시도다.


2. 규칙을 정리하기: 작은 세계의 물리법칙

게임이론을 교실로 옮길 때 중요한 것은 복잡한 모델이 아니다. 핵심은 몇 가지 조건을 아주 단단하게 고정하는 일이다. 그래서 이 게임은 다음과 같은 제한된 조건을 전제로 한다.

- 플레이어는 3명이다.
- 플레이어는 가능한 많은 공유 자원을 채굴하고 싶어 한다. (최다 채굴자가 승리 후보)
- 버튼을 누르는 행위 자체에는 제한이 없다. (누를 수 있으면 누른다)
- 각 플레이어는 자기 채굴량은 알 수 있지만, 다른 플레이어의 채굴량과 공유 자원의 잔여량은 알 수 없다.
- 시작 시점에 공유 자원이 일정 정도 존재하며(초기 10), 시간에 따라 서서히 증가한다(초당 +1).
- 게임은 자원이 0이 되는 순간(자원 고갈) 또는 30초가 지나는 순간(시간 제한) 종료한다.
- 종료 시점에 최약자가 일정 기준(6)에 미달하면 전원 패배한다.

여기서 중요한 것은 “승리 조건”이 아니라 “패배 조건”이다. 이 세계에서는 1등이 되려면 많이 캐야 하지만, 많이 캐는 속도가 너무 빠르면 세계가 일찍 끝나고, 그 결과 누군가가 기준 미달이 되어 나까지 함께 패배할 수 있다. 즉 이 게임은 “더 많이”라는 단순한 욕망을, “너무 빠르면 함께 무너진다”는 구조적 위험으로 되돌려 놓는다.


3. ‘보이지 않게 하기’의 기술: 정보 비대칭을 물리로 만드는 법

게임에서 가장 중요한 장치는 사실 버튼이 아니라 시야다. 협력과 배신의 긴장은 “알 수 없음”에서 생기기 때문이다. 이 게임은 그 알 수 없음을 단순한 설정이 아니라, 실제 장치로 강제한다.

- 플레이어는 자기 점수만 본다.
- 공유 자원 잔여량은 오직 관전자만 본다.
- 플레이어는 서로의 점수를 알 수 없다.

이 구조는 세 가지 효과를 만든다.

(1) 타인의 행동은 추론의 대상이 된다.
(2) 추론은 종종 최악을 가정하게 만든다.
(3) 최악 가정은 ‘선제적 채굴’을 정당화한다.

즉 정보 비대칭은 협력을 어렵게 할 뿐 아니라, 협력이라는 언어가 나오기 전에 선택을 공격적으로 시작하게 만든다. 이 때문에 ‘30초 단판’이라는 조건이 더 날카롭게 작동한다. 장기적 평판도, 충분한 대화도 없는 상황에서 사람들은 신뢰보다 의심을 먼저 배운다.

관전자가 잔여 자원을 본다는 설정도 단순한 장식이 아니다. “전체를 볼 수 있는 자”와 “손에 쥔 것만 볼 수 있는 자”가 분리될 때, 현실에서처럼 ‘외부자 시선’이 생긴다. 중요한 점은 관전자가 정보를 안다고 해서 문제가 해결되지 않는다는 사실이다. 정보를 아는 존재가 있어도, 선택을 바꾸는 것은 결국 플레이어의 손과 타이밍이다. 이 무력감은 공유지의 비극이 현실에서 반복되는 방식과도 닮아 있다.

4. 아두이노 게임기 제작: 규칙을 ‘몸’으로 바꾸는 단계

이론을 규칙으로 쓰는 것만으로는 충분하지 않았다. 규칙이 사람에게 작동하려면, 그 규칙이 사람의 손끝에서 반사적으로 실행되어야 한다. 그래서 나는 이 게임을 화면 속이 아니라 테이블 위에 올려놓고 싶었다. 버튼은 충동을 빠르게 만들고, 디스플레이는 불안을 시각화하며, 소리는 시간의 흐름을 몸에 각인시킨다. 작은 사회가 되려면, 작은 기계가 먼저 필요했다.

(1) 장치 구성: 누가 무엇을 보게 할 것인가

아두이노 기반 게임기의 기본 구조는 다음과 같다.

- 플레이어 3명: 버튼 3개(각자 채굴 버튼 1개)
- 점수 표시: 플레이어별 디스플레이 3개(각자 자기 채굴량만 표시)
- 자원 표시: 관전자용 디스플레이 1개(공유 자원 잔여량 표시)
- 결과 표시: 플레이어별 LED(승리/패배) + 부저(시작/종료/자원 재생 신호)

“보지 못하게 한다”는 규칙은 말로는 쉬운데, 실제로는 어려운 규칙이다. 관전자용 디스플레이는 플레이어의 시야에서 가려야 하고, 플레이어 디스플레이는 서로의 화면을 엿보기 어렵게 배치해야 한다. 필요하면 간단한 가림막이나 각도 조정 같은 물리적 장치가 들어간다. 이 지점에서 게임 설계는 단순한 룰북이 아니라 공간 설계가 된다.

(2) 피드백 설계: 불안과 리듬을 만드는 신호들

또 하나 중요한 것은, 선택이 선택으로 느껴지도록 만드는 것이다. 그래서 나는 기계가 매번 반응하도록 했다.

- 버튼을 누르면 짧은 소리(채굴 성공)
- 1초마다 자원이 재생될 때 다른 소리(세계가 아직 살아 있음)
- 종료 후 LED로 결과 표시(승자/패자, 혹은 전원 패배)

이런 신호는 게임의 감정을 만든다. 규칙만으로는 만들어지지 않는 초조함, 억울함, ‘설마’ 같은 의심이 물리적 피드백을 통해 쉽게 솟아오른다. 장치는 단순한 도구가 아니라, 짧은 시간 동안 분위기를 생산하는 정서적 인프라가 된다.


(3) 바이브코딩: 설계와 구현의 간격을 줄이기

코딩은 완벽할 필요가 없었다. 내 목표는 최적화된 시스템이 아니라, 작동하는 세계였다. 그래서 GPT를 이용한 바이브코딩으로 빠르게 프로토타입을 만들고, 손으로 만져보면서 규칙을 조정했다. 이 과정에서 한 가지가 분명해졌다. 코드는 구현이 아니라, 규칙의 해석이다. 그리고 그 해석은 때로 규칙을 바꿔버리는 힘을 갖는다. 실험에서 “버그”는 단지 실수가 아니라, 세계의 법칙이 의도치 않게 달라지는 사건이 된다.

5. 코드가 만든 세계: 공유 자원, 시간, 종료 조건

내가 사용한 코드(부록에 전문을 붙인다)는 이 게임의 세계가 어떤 물리법칙으로 움직이는지를 그대로 보여준다.

- `sharedResource`: 공유 풀(세계의 저수지)
- `playerResources`: 각자의 채굴량(서로는 모름)
- 30초 제한 + 자원 고갈 시 즉시 종료: 시간과 자원이 서로를 압박하는 구조
- 디스플레이 분리: 관전자는 잔여 자원을, 플레이어는 자기 점수를 본다
- `minResources < 6`이면 전원 패배: 최약자 기준 공멸 조건의 구현

이 코드에서 “세계의 법칙”을 구성하는 핵심은 결국 세 가지다.

1. 자원의 법칙: 자원은 줄어들고(채굴), 다시 늘어난다(초당 +1).
2. 시간의 법칙: 30초가 끝나면 세계도 끝난다. 다만 자원이 먼저 바닥나면 세계는 더 빨리 끝난다.
3. 패배의 법칙: 누군가 기준 아래로 떨어지면, 누구도 승리할 수 없다.

이 셋이 결합될 때 게임의 질문이 만들어진다.
“나는 얼마나 누를 것인가?”가 아니라,
“나는 얼마나 세계의 끝을 앞당길 것인가?”라는 질문.

6. 이 세계에서 무엇을 측정할 것인가

설계가 실험이 되기 직전, 마지막으로 필요한 것은 기록의 틀이다. 다음 장에서 중요한 것은 “누가 이겼나”보다, “어떤 패턴이 반복되나”다. 그래서 최소한 다음은 남겨야 한다.

- 게임 종료 유형: 30초 완주 vs 자원 고갈 조기 종료
- 각 플레이어 최종 채굴량
- 종료 시 잔여 자원
- 전원 패배 발생 여부(최약자 기준 미달)
- 가능하다면 초 단위 이벤트(누가 언제 눌렀는지)
- 사후 인터뷰(“왜 그 타이밍에 눌렀는지”, “무엇이 불안했는지”)

숫자는 결과를 보여주고, 인터뷰는 이유를 보여준다. 사람들은 종종 “합리적으로 했다”라고 말하지만, 실제로는 눈치, 분위기, 자기 이미지 같은 요소가 선택을 밀어붙이는 경우가 많다. 이때 게임은 단순한 규칙이 아니라, 30초 동안 형성되었다가 사라지는 작은 사회가 된다.

7. 설계에서 실험으로

이제 세계는 준비됐다. 다음 장에서는 이 세계를 두 번 돌린다.

- 친구들과 실제로 수행한 게임: 웃음, 농담, 경쟁심, 의심 같은 사회적 소음이 섞여 들어간다.
- GPT를 통한 가상 실험: 사회적 소음을 줄이고, 규칙 자체의 힘을 더 차갑게 관찰한다.

같은 규칙, 다른 존재.
이 대비는 결국 하나의 질문으로 돌아온다.

협력은 사람의 마음에서 오는가,
아니면 규칙의 문장에서 오는가?

작가의 이전글2. 30초짜리 세계에서 우리는 무엇을 선택했나 (2)