게임개발부 다섯 명이 하는 부루마블, 부루마카이브 제작기
블루 아카이브 게임개발부 다섯 명(모모이·미도리·아리스·케이·유즈)이 키보토스 땅을 사고파는 부루마블. 규칙서부터 쓰고, 화면 없는 규칙 엔진과 테스트를 만들고, Unity 도트 화면·Blender 판·컷인·대사·모노폴리 규칙까지 이틀 동안 만든 과정.
한 줄 요약: 블루 아카이브 게임개발부 다섯 명이 키보토스 땅을 사고파는 부루마블 부루마카이브를 이틀 동안 만들었습니다. 규칙서를 먼저 쓰고, 화면 없는 규칙 엔진을 테스트로 굳힌 뒤, 그 위에 도트 화면과 3D로 렌더한 판, 컷인과 대사를 올렸습니다.
개인적으로 즐기려고 만든 팬 게임입니다. 게임에서 꺼낸 그림·음성·음악이 들어 있어 공개 배포는 하지 않습니다.
라운드 5. 칸 바닥 색과 동그란 얼굴이 그 땅의 주인입니다. 통행료를 낸 케이(오른쪽 위)는 프로필 표정이 바뀌었습니다.
어떤 게임인가
어릴 때 하던 부루마블을 키보토스로 옮겼습니다. 말은 게임개발부 다섯 명 — 모모이, 미도리, 아리스, 케이, 유즈입니다. 사람은 한 명을 고르고, 나머지 네 명은 AI가 맡습니다.
| 내용 | |
|---|---|
| 판 | 40칸. 도시 23칸을 학원 8개(아비도스 → D.U.)로 묶음. 관광지 3, 교통 3, 황금카드 6, 특수 5 |
| 돈 | 단위는 청휘석. 시작 100,000, 출발(샬레)을 지나면 “선생님 용돈” 6,700 |
| 이기는 법 | 혼자 남기 · 학원 세 곳 독점(트리플 독점) · 20라운드가 끝났을 때 자산 1위 |
| 특수 칸 | 샬레(출발), 코우사기 공원(무인도), 게임개발부(개발비 내는 곳), 갓겜 출시(개발비 받는 곳), 하이랜더 철도(원하는 칸으로 여행) |
원판의 “사회복지기금”은 게임개발부 개발비로 바꿨습니다. 낸 돈이 쌓였다가 “갓겜 출시” 칸을 밟은 사람이 다 가져갑니다.
코드보다 규칙서 먼저
부루마블은 규칙이 집집마다 다릅니다. 그래서 코드를 쓰기 전에 규칙서부터 썼습니다. 원판 부루마블, 모두의마블, 모노폴리 규칙을 놓고, 갈리는 곳마다 결정 번호를 붙였습니다.
| # | 결정 | 고른 것 |
|---|---|---|
| D1 | 칸 수 | 40 (원판) |
| D5 | 건물 단계 | 땅 → 1 → 2 → 3단계, 랜드마크 없음 |
| D8 | 더블 3번 연속 | 무인도로 (모노폴리) |
| D9 | 출발에 딱 도착 | 용돈 2배 |
| D20 | 아리스 | 용돈을 더 받음 |
지금은 D1부터 D25까지 있습니다. 규칙을 바꿀 때는 늘 규칙서 → 수치 표 → 설정 값 → 코드·테스트 순서로 고칩니다. 규칙서에는 수치를 적지 않고 설정 키 이름만 적어서, 숫자는 한 곳에만 있습니다.
1차: 화면 없는 규칙 엔진
엔진은 Unity 6, 언어는 C#입니다. 처음엔 HTML과 Firebase로 만들 생각이었다가 Unity로 정했습니다.
첫날 만든 것은 화면이 하나도 없는 규칙 엔진입니다.
- 규칙 코드는 Unity를 전혀 참조하지 않는 순수 C#입니다. Unity 없이도 컴파일되고 테스트가 돕니다.
- 게임은
apply_action(상태, 행동) → 새 상태하나로만 진행됩니다. 주사위도 정해진 씨앗에서 나오므로, 같은 행동 기록을 다시 넣으면 같은 판이 나옵니다. 나중에 온라인 대전을 붙일 때 행동 기록만 주고받으면 됩니다. - AI도 같은 엔진 위에서 “지금 고를 수 있는 행동” 중 하나를 고를 뿐입니다.
첫 커밋 때 테스트가 79개였고, 지금은 148개입니다. AI 다섯 명끼리 끝까지 두는 자동 대국도 테스트에 들어 있어서, 규칙을 고칠 때마다 판이 멈추지 않고 끝나는지 확인합니다.
2차: 도트 화면
규칙이 돌아가자 화면을 올렸습니다. 화면은 가상 해상도 640×360 위에 그리고, 화면 크기에 맞춰 정수 배로 키웁니다. 버튼·글·칸은 Unity 에디터에서 손으로 배치하지 않고 전부 코드로 만듭니다. 글꼴은 도트 글꼴 Galmuri(본문·제목)와 Neo둥근모(칸 이름)입니다. 칸 이름은 처음에 Galmuri7이었는데, 판 위에서 너무 작아 읽히지 않아 바꿨습니다.
캐릭터 고르기는 격투 게임 선택 화면처럼 만들었습니다. 색 타일 위 초상화, 번호, 고른 칸에는 1P, 나머지에는 AI가 붙습니다.
캐릭터 고르기. 고른 한 명만 사람이고 나머지 넷은 AI입니다.
판: 마름모로 기울이고, Blender로 렌더
처음 판은 위에서 내려다본 평평한 네모였습니다. 돌아가긴 했지만 심심해서, 모두의마블처럼 마름모로 기울인 판으로 바꿨습니다. 왼쪽에 프로필 카드 3장, 오른쪽에 2장을 둡니다.
판 그림은 Blender에서 디오라마로 만들어 한 장으로 렌더했습니다. 블루 아카이브의 학원 지도 그림 17장을 보며, 판 안쪽을 학원 구역으로 나눴습니다. 붉은겨울은 눈 덮인 궁전, 백귀야행은 탑과 도리이, 아비도스는 모래사막, D.U.는 파란 유리 빌딩 숲입니다.
Blender로 렌더한 판 디오라마 (1280×720).
게임 화면의 칸 위치와 그림이 딱 맞아야 하므로, Blender 카메라를 게임이 칸 좌표를 마름모로 바꾸는 식과 똑같은 정사영(원근 없는) 카메라로 맞췄습니다. 게임의 판은 가로 반폭 264, 세로 반폭 172(가상 픽셀)인 마름모라서, 카메라는 sin⁻¹(172/264) ≈ 40.7° 높이에서 내려다봅니다.
건물도 Blender에서 코드로 만들었습니다. 처음엔 게임에서 꺼낸 전투 맵 벽과 카페 가구로 지어 봤는데 영 어울리지 않아서, 샬레 빌딩과 생텀 타워를 본뜬 건물을 직접 만들었습니다. 단계 이름은 주택 · 오피스텔 · 빌딩입니다.
왼쪽부터 주택, 오피스텔(샬레 모티브), 빌딩(생텀 타워 모티브).
이 건물은 판 위에 32×64픽셀 도트 그림으로 서고, 지을 때는 땅에서 솟았다가 찌그러지며 먼지가 이는 24장짜리 애니메이션이 나옵니다.
케이가 유즈와 거래해 붉은겨울을 독점하고 오피스텔을 올린 장면.
판 위에는 장식도 있습니다. 하늘에는 만마전 비행선이 떠다니고, 칸 고리 안쪽 수로에는 철로를 깔아 하이랜더 철도 칸에서 기차를 타면 말이 기차를 타고 목적지까지 갑니다. 황금카드 칸에는 카드가 모서리로 서서 천천히 돕니다.
말: 64픽셀 도트
말은 블루 아카이브 3D 모델을 Blender에서 8방향으로 렌더해 64픽셀 도트로 만든 것입니다. 조명 없이 색만 칠하고, 윤곽선을 두릅니다.
위부터 모모이, 미도리, 아리스, 케이, 유즈. 서 있는 자세 8방향.
서 있기·걷기 말고도 기뻐하기, 당황하기, 쓰러지기 동작이 있습니다. 통행료를 받으면 기뻐하고, 내면 당황합니다.
연출: 턴, 주사위, 황금카드
부루마블의 재미는 남의 땅을 밟을 때의 비명이라, 연출에 시간을 가장 많이 썼습니다.
턴 시작. 차례가 오면 “○○ 턴” 띠가 화면을 가로지르고 1.6초 뒤에 주사위를 굴립니다. 주사위는 화면 아래 그릇 안에서 구릅니다.
더블 컷인. 더블이 나오면 캐릭터별 컷인이 나옵니다. 그림은 캐릭터마다 다르고, 모모이 컷인은 만화 두 칸짜리입니다. 유즈는 1·1과 6·6 컷인이 따로 있습니다.
모모이 컷인 원본. 게임에서는 두 칸으로 잘라 차례로 보여 줍니다.
황금카드. 황금카드 칸에 서면 부루마블 카드처럼 띠·이름·그림·설명이 있는 카드가 뒤집힙니다. “유우카의 회계 감사”를 뽑으면 영수증 값을 개발비로 내야 합니다.
모모이가 “유우카의 회계 감사”를 뽑았습니다. 말풍선: “유우카한테 걸렸다!”
카드마다, 캐릭터마다 대사가 다릅니다. “선생님 특별 용돈” 카드는 다섯 명 모두 그림이 따로 있습니다.
대사와 음성. 통행료를 받을 때, 낼 때, 무인도에 갇힐 때 등 상황마다 말풍선 대사가 뜨고, 블루 아카이브 한국어 음성 원음이 나옵니다. 처음엔 블루 아카이브 한국어 더빙으로 학습한 TTS로 대사를 읽혀 봤는데 기계음이 심해서 원음으로 바꿨습니다. 단 하나, 아리스가 1·1 더블을 굴렸을 때의 “똥겜입니다!”만은 원음에 없는 말이라 TTS로 만들었습니다.
표정. 돈을 뺏기거나 나쁜 카드를 뽑으면 프로필 초상화가 우는 얼굴, 화난 얼굴로 바뀌고, 다음 사람 턴이 될 때까지 그대로 있습니다. 표정 그림은 게임의 Spine 캐릭터 데이터에서 표정 애니메이션을 한 장씩 렌더해 얻었습니다.
배경음악은 게임개발부 곡인 OST “Pixel Time”입니다.
모노폴리 규칙 7개
원판 규칙만으로 AI끼리 두게 하니 판이 단조로웠습니다. 땅을 안 사면 그냥 지나가고, 돈이 모자라면 바로 팔기만 합니다. 그래서 모노폴리 규칙 7개를 들여왔습니다.
| 규칙 | 내용 |
|---|---|
| 경매 | 주인 없는 땅을 안 사면 은행 경매. 모두 한 번씩 비공개 입찰 |
| 저당 | 땅을 은행에 맡기고 돈을 빌림 |
| 교통 배수 | 비행선·선박·철도를 많이 가질수록 통행료가 커짐 |
| 보석금 | 무인도에서 돈을 내고 바로 나옴 |
| 파산 땅 | 파산하면 땅을 빚진 상대에게 넘김 |
| 균등 건설 | 학원 하나를 다 가져야 건물을 지을 수 있고, 칸끼리 한 단계씩 고르게 |
| 거래 | 땅과 돈을 서로 바꿈 |
건설·저당·거래·보석금은 주사위를 굴리기 전 관리 단계에서만 합니다.
AI가 너무 잘 거래했다
거래를 넣고 AI끼리 100판을 두게 하자, 100판 중 68판이 트리플 독점으로 끝났습니다. AI들이 서로 독점이 되는 거래를 너무 쉽게 받아 줬기 때문입니다.
그래서 AI가 거래를 받는 기준을 깐깐하게 했습니다. 상대가 이미 가진 독점 하나마다 요구하는 값을 1배씩 올리고, AI는 상대가 받아들일 만한 제안만 하게 했습니다.
| 고치기 전 | 고친 뒤 | |
|---|---|---|
| 트리플 독점으로 끝난 판 | 68 / 100 | 24 / 100 |
고친 뒤에는 100판 중 74판이 20라운드 제한까지 갔고, 한 판은 평균 18.6라운드였습니다.
숫자로 본 이틀
- 기간: 2026-10-24 ~ 10-25
- C# 코드: 약 14,100줄 (테스트 포함), 테스트 148개
- 그림·소리를 만들고 옮기는 Python·Blender 스크립트: 33개
- 대사 음성 파일: 89개
다음 할 일
지금은 한 컴퓨터에서 사람 한 명과 AI 넷이 둡니다. 규칙 엔진을 처음부터 “행동 기록을 다시 넣으면 같은 판”이 되게 만들었으니, 다음은 친구들과 같이 두는 온라인 대전입니다.


