맥주 게임기에 블랙잭을 꽂았다 — 게임기가 플랫폼이 되는 순간
비싼 장비로 게임 하나는 아깝다
1부에서 만든 맥주 게임기는 이제 책상 옆에서 잘 돌아간다. 그런데 잘 돌아가는 기계를 보고 있으면 자꾸 아까운 생각이 든다. 산업용 컨트롤러에 터치 패널에 실물 레버까지 붙여 놓고, 게임은 딱 하나라니. 이만한 장비면 게임기 한 대가 아니라 오락실 하나는 돌려야 하는 것 아닌가.
마침 요즘 유튜버들이 Gamble With Your Friends를 하는 걸 재밌게 봤다. 친구들끼리 한 통장을 공유하며 카지노 게임으로 빚을 갚는 그 게임 말이다. 그 안의 여러 종목 중 눈에 들어온 건 역시 블랙잭 — 딜러와 나, 21을 향한 눈치 싸움. “저건 우리 게임기로도 되겠는데?” 싶었다.

영감을 준 원작 〈Gamble With Your Friends〉. 친구들과 한 통장을 공유하며 여러 카지노 게임으로 빚을 갚는 게임이고, 그중 블랙잭이 이 프로젝트의 출발점이 됐다. © TEAM GWYF / TENSTACK · Steam
그래서 타이틀 화면을 게임 선택 메뉴로 바꾸고, 두 번째 게임으로 블랙잭을 꽂기로 했다. 로고도 “BEER POUR GAME”에서 **“ARCADE GAME”**으로 바꿨다. 이제 맥주는 여러 게임 중 하나고, 이 비싼 장비도 조금은 덜 아깝다.

로고를 “ARCADE GAME”으로 바꾸고, 타이틀을 게임 선택 메뉴로. 이제 맥주 따르기와 블랙잭 중 고른다. 위쪽엔 각 게임의 최고 점수(맥주 BEST 909 · 블랙잭 BEST 1200)가 뜬다.
buttons: 4, inputs: 4
블랙잭 조작은 터치가 아니라 물리 버튼으로 하고 싶었다. 히트냐 스테이냐를 고민하다 버튼을 탕 치는 그 맛은 화면 터치로는 안 나온다.
필요한 버튼을 세어 보니 네 개다 — 플레이(딜 시작) / 히트 / 스테이 / 더블. 그리고 게임기에 이미 붙어 있는 IO 확장 보드의 입력이 정확히 4점이다. 1부에서 램프 출력용으로 달아둔 보드의 입력 단자가 그대로 놀고 있었다. 보드 추가 없이, 배선 네 가닥이면 끝. 이런 우연은 기분이 좋다.
버튼이 눌리는 차례는 화면이 안내한다. 베팅 중엔 PLAY 칩만, 내 턴엔 HIT/STAY/DOUBLE 칩만 제 색으로 켜진다. LED 버튼 대신 화면이 그 역할을 하는 셈이다.
주문한 아케이드 버튼이 오기 전에, 우선 택트 버튼 네 개를 임시로 배선해 입력 로직부터 확인했다.

진짜 아케이드 버튼이 오기 전, 택트 스위치 네 개를 임시 패널에 붙여 IO 확장 보드 입력 4점에 물렸다. 배선 네 가닥으로 플레이·히트·스테이·더블이 그대로 들어온다.
두 번째 게임은 절반의 시간
첫 게임을 만들 때 세운 원칙 — PLC가 로직을 갖고, HMI는 연출만 한다 — 을 그대로 유지했다. 카드 섞기, 에이스를 1로 칠지 11로 칠지, 딜러가 몇에서 멈출지, 칩 정산까지 전부 컨트롤러 안에 산다. 화면은 그 값을 받아 카드를 그릴 뿐이다.
이 구조의 보상은 두 번째 게임에서 왔다. 순위표, 이니셜 입력 키패드, 설정 팝업, 통신 계층 — 전부 맥주 게임 것을 그대로 재사용했다. 새로 만든 건 블랙잭 로직과 테이블 화면뿐. 첫 게임이 하루였다면 두 번째 게임은 체감상 절반이었다.
디테일 하나. 딜러의 뒷면 카드는 공개 전까지 통신에도 실리지 않는다(값 0). 컨트롤러 메모리를 들여다보는 꼼수를 써도 히든 카드는 알 수 없다. 게임기라도 판정의 단일 출처는 지켜야 하니까.
룰 — 아케이드답게
카지노 규칙을 그대로 옮기면 재미가 없다. 이 기계의 손님은 서서 5분 노는 사람이다.

실제 블랙잭 화면. 딜러는 앞면 7♣ + 뒷면 한 장(?), 나는 2♥·4♥로 6. 오른쪽에 판(1/10)·칩·베팅, 아래에 PLAY·HIT·STAY·DOUBLE 버튼. 카드는 이미지가 아니라 코드로 그린다 — 자세한 건 아래에서.
- 1,000칩으로 시작, 10판 승부. 끝났을 때 칩이 점수 — 많이 딴 사람이 명예의 전당에 이니셜을 새긴다. 파산하면 그 자리에서 끝.
- 베팅은 100 단위, 올인 버튼 있음. 마지막 판 올인 역전이 이 게임의 꽃이다.
- 더블다운은 표준대로 — 베팅을 2배로 걸고 딱 한 장만 더 받는다.
- 그리고 하나를 비틀었다.
교대 딜 — 내가 받으면 딜러도 받는다
일반 블랙잭은 내가 다 끝난 뒤에 딜러가 카드를 몰아서 뽑는다. 결과가 한꺼번에 쏟아지니 아케이드에선 심심하다. 그래서 내가 히트할 때마다 딜러도 한 장씩 받는 변형 룰을 넣었다 (딜러 합이 17 미만일 때만).
내 카드가 늘 때마다 딜러 쪽에도 앞면 카드가 쌓인다. 뒷면 한 장은 끝까지 숨어 있으니, “보이는 게 벌써 14인데 뒷면까지 하면…” 하는 계산이 매 턴 이어진다. 히트 버튼이 갑자기 무거워진다.
카드 52장을 그리지 않는 법
화면에서 제일 걱정했던 건 카드였다. 트럼프 카드 52장 이미지를 만들 생각을 하니 아득했는데, 결론은 한 장도 안 그렸다. 카드는 흰 라운드 사각형에 랭크와 무늬 문자를 얹어 코드로 렌더링한다. 에셋 제작 0분, 그리고 어떤 해상도에서도 선명하다.
물론 공짜는 아니었다. 소소한 사건 셋:
- 투명 잉크 사건 — 카드는 그려지는데 글자가 안 보였다. 색상 코드의 알파 자리를 착각해서 글자를 13% 투명도로 칠하고 있었던 것. 흰 카드 위의 투명한 글자라니, 완벽한 위장이었다.
- 다이아가 깨졌다 — ♠♥♣는 멀쩡한데 다이아만 네모(□)로 나왔다. 쓰던 한글 폰트에 카드 전용 다이아 문자(♦)가 없었던 것. 도형 문자 ◆로 바꾸니 해결. 폰트에 어떤 글자가 들어 있는지는 폰트만 안다.
- 딜러가 파업했다 — 스테이를 눌렀는데 딜러가 뒷면만 까고 멈춰 섰다. 범인은 PLC의 고전, 스캔 순서. 딜러의 카드 연출용 0.5초 펄스를 만드는 타이머가, 펄스를 세는 로직보다 앞에 있어서 완료되는 순간 자기가 먼저 펄스를 지워버리고 있었다. 두 룽의 순서를 바꾸는 것으로 끝 — 코드 한 줄 안 고치고 위치만 바꿔서 고치는 버그는 PLC에서만 맛볼 수 있는 별미다.
정산은 색상 배지로 보여준다. WIN은 초록, LOSE와 BUST는 빨강, BLACKJACK!은 앰버, PUSH는 회색 — 카드 사이에 큼직하게 뜨니 술자리에서 어깨 너머로 봐도 승패를 안다.
버튼에도 케이스를 — 이번엔 펜으로 설계를 고쳤다
임시 버튼은 부품함에서 나온 택트 스위치 4개를 판에 납땜한 물건이다. 동작은 하는데, 새끼손톱만 한 스위치를 손끝으로 콕콕 찌르는 건 도저히 “블랙잭 치는 맛”이 아니었다. 그래서 2부의 레버처럼 Blender로 3D 프린트 버튼 케이스를 설계했다.

구조는 기계식 키보드에서 훔쳐 왔다. 큼직한 직사각 캡(32×24mm) 아랫면에 원형 소켓이 있어서 키캡처럼 스위치 플런저에 쏙 끼워진다. 스프링은 없다 — 탈락 방지 플랜지가 캡을 잡아주고, 복귀는 스위치 자체 반발력이 한다. 캡 윗면엔 PLAY/HIT/STAY/DOUBLE을 음각으로 새겼다. 사각 캡이라 돌아가지 않으니 글자가 항상 바로 보인다.
이번 설계의 재미는 수정 방식이었다. 스위치들을 잇는 공통(COM) 배선이 지나갈 통로를 깜빡했는데, 이번엔 말로 설명하는 대신 3D 모델 위에 주석 펜으로 슥슥 표시했다. AI가 그 펜 자국의 좌표를 읽어 정확히 그 세 자리에 배선 채널을 뚫었다. 도면에 빨간 펜 긋던 그 감각 그대로다.

교훈도 2부 그대로 반복됐다. 스위치 데이터시트를 확인하기 전의 추정 설계는 플런저 높이가 3mm나 달랐다 — 그대로 출력했으면 캡이 스위치를 상시 누른 채 조립되는 물건이 나올 뻔했다. 부품의 치수는 부품(의 데이터시트)에게 물어볼 것. 마지막으로 캡 속 소켓을 깊게 파서 플런저를 캡 안으로 삼키게 하는 다이어트로 케이스 높이를 처음 설계보다 7mm 넘게 깎았다.
남은 것
버튼 케이스를 출력해서 씌우면, 화면 속 안내 칩과 손끝의 버튼이 제대로 만난다. 그때가 이 시리즈의 다음 이야기다 (2부에서 실패한 진동 레버의 복수전도 함께).
첫 게임을 만들 때는 “게임기 하나 만들었다”였는데, 두 번째 게임을 꽂고 나니 문장이 바뀐다. “게임 플랫폼이 하나 생겼다.” 세 번째 게임은 뭐가 좋을까 — 이미 버튼도 레버도 다 있는데.
▶️ 4부: 화면에 생명 불어넣기 — 그리고 AI가 AI에게 그림을 시켰다
🍺 이전 편: 1부 — 크랭크를 진짜 레버로 · 2부 — 레버 깎기와 진동 이식 실패기
댓글
로그인 없이 이름만 적고 남기실 수 있어요. 남긴 댓글은 바로 게시됩니다.
댓글을 불러오는 중…