전 한판도 못이기는데.. 여러분들의 피카츄 배구 배구 실력으로 도전해봐주세요
김성수 ai
0:00 / 0:00
전 한판도 못이기는데.. 여러분들의 피카츄 배구 배구 실력으로 도전해봐주세요
3 135 просмотров · 3 нед. назад
김성수 ai
7,51 тыс. подписчиков
3 135 просмотров · 3 нед. назад
▶ 이 AI와 직접 붙어보세요: https://seungsu.com/pikachu (PC 키보드로 플레이합니다. 한 점이라도 내셨다면 몇 대 몇이었는지 댓글로 남겨주세요)
피카츄 배구에는 덕엘엘(DuckLL)이라는 개발자가 만든 아주 센 규칙 봇이 있습니다. 공이 어디로 오면 어디로 뛰고 언제 때리라는 규칙을 사람이 하나하나 적어 넣은 프로그램이라, 아무리 오래 돌려도 스스로 배우지는 않습니다.
저는 반대로 규칙을 하나도 넣지 않았습니다. 점수를 따면 +1점, 잃으면 −1점만 주고, 어떻게 치라는 정답은 한 번도 알려주지 않은 AI를 만들었습니다. 그리고 엔씨소프트가 블레이드 앤 소울 AI를 만들 때 쓴 방법대로, 공격형과 수비형을 따로 키워 제 AI끼리, 그리고 그 AI들의 예전 버전과 계속 대련하게 했습니다.
그렇게 쌓은 게임 시간이 약 2년, 랠리로 약 900만 번입니다. 결과는 규칙 봇 13단계 260판 전승, 그리고 저는 이 AI한테 15:1로 졌습니다.
■ 누구와 연습시켰나 학습 중에 제가 끼어들어 가르치거나 대신 쳐준 적은 없습니다. 제가 고른 건 연습 상대뿐이었습니다. · 원작 컴퓨터 → 12분 만에 열 판 내리 15:0. 너무 약해서 배울 게 없었습니다 · 덕엘엘 규칙 봇 13단계 → 4시간 46분 만에 전부 통과 · 제 AI끼리 대련(블레이드 앤 소울 방식) → 약 9시간 저는 그 사이사이에 직접 붙어서 실력만 재봤습니다.
■ 중간에 AI가 부린 꼼수 · 서브 에이스 하나를 통째로 외웠습니다 → 서브를 양쪽이 번갈아 넣게 하고, 학습할 때만 서는 자리와 공 위치를 조금씩 바꿔 막았습니다 · 레벨 10 규칙 봇을 못 이기자 공을 넘기지 않고 자기 코트에서 튕기며 시간을 끌었습니다 → 안 끝나는 판을 실점과 똑같이 치자 이기러 들어갔습니다
■ 피카츄 배구 코트는 좌우 대칭이 아닙니다 원작 코드에서 공이 벽에 튕기는 조건이 왼쪽과 오른쪽이 다릅니다. 왼쪽 벽은 공 가장자리가 닿으면 튕기는데, 오른쪽 벽은 공 중심이 닿아야 튕깁니다(공 반지름 20픽셀 차이). 그래서 왼쪽에서 배운 AI를 뒤집어 오른쪽에 세우면 제대로 못 칩니다. 오른쪽 AI를 따로 키운 이유입니다.
■ 사람에게는 공격형이 더 무서웠습니다 대련으로 키운 수비형도 엄청 셌지만, 끝없이 받아넘기는 사이 생각할 틈이 있어서 저는 6점을 냈습니다. 최종 공격형은 공을 칠 때 열에 아홉이 강타였고, 딴 점수는 거의 전부 강타 후 2.4초 안에 났습니다. 저는 1점, 2점밖에 못 냈습니다. 블레이드 앤 소울 프로게이머들이 "사람은 쉬어야 하는데 AI는 쉴 틈을 안 줬다"고 한 게 바로 이거였습니다.
■ 밝혀둘 것 · 블레이드 앤 소울 AI는 사람 반응 속도에 맞춰 0.23초 늦게 움직였지만, 제 AI는 늦추지 않았습니다 · 사람 기준은 저 한 명입니다 · 대련만 하면 쉬운 레벨을 잊어서, 마지막 2시간 반은 규칙 봇 13단계를 다시 섞어 다듬었습니다 · 40만 판은 15점 경기로 환산한 숫자입니다(학습은 한 점 단위로 했습니다)
■ 만든 것 · 파이토치로 만든 작은 신경망(입력 35개 → 128 → 128 → 버튼 18가지) · PPO 강화학습 · 게임은 웹판 자바스크립트를 Node.js에서 화면 없이 그대로 돌림 · 결과물은 240KB 파일 하나, 브라우저에서 바로 실행 · 맥북 한 대, 그래픽카드 없음
■ 챕터 0:00 규칙 봇 vs 스스로 배운 AI 0:23 알파고처럼, AI끼리 대련 1:00 규칙 봇 13단계 260판 전승 1:16 그리고 저는 15:1로 졌습니다 1:38 무엇으로 만들었나 (파이토치 · PPO) 2:21 이 게임은 어디서 왔나 — 이규태 님의 리버스 엔지니어링 3:11 제가 한 건 연습 상대 고르기뿐 3:22 원작 컴퓨터는 12분 만에 15:0 4:06 규칙 봇 13단계 사다리 — 레벨 번호는 세기 순서가 아니었다 4:39 꼼수 1 · 서브 에이스 외우기 5:14 꼼수 2 · 레벨 10 앞에서 시간 끌기 5:39 계단마다 걸린 시간 (4시간 46분) 6:05 중간 점검 · 첫 완성본은 제가 이겼습니다 6:42 공격형으로 다시 키우기 7:18 더 센 상대가 없다 7:29 블레이드 앤 소울 AI의 방법 8:13 공격형·수비형, 그리고 예전 버전과 대련 8:34 코트는 좌우 대칭이 아니다 — 공이 튕기는 벽의 비밀 9:31 AI 4개가 돌아가며 대련 9:43 대련 9시간 10:15 최종 AI · 규칙 봇 260판 전승 10:29 대련 전 vs 대련 후 10:56 다시 저 — 최종 AI 긴 랠리 모음 11:56 수비형은 오히려 사람에게 약했다 12:13 쉴 틈을 주지 않는 AI 12:30 밝혀둘 것 12:43 제일 센 AI는 따로 있었다 13:10 정리 13:41 직접 붙어보세요
■ 출처 · 크레딧 · 원작: 対戦ぴかちゅ~ ビーチバレー編 (1997) (C) SACHI SOFT / SAWAYAKAN Programmers, (C) Satoshi Takenouchi · 웹판(리버스 엔지니어링): 이규태(gorisanson) https://github.com/gorisanson/pikachu... · 규칙 봇: DuckLL https://github.com/DuckLL/pikachu-vol... · 논문: Oh et al., "Creating Pro-Level AI for a Real-Time Fighting Game Using Deep Reinforcement Learning" (NCSOFT) https://arxiv.org/abs/1904.03821 · 블레이드 앤 소울 영상: BST 2018 World Championship 이벤트전 블라인드 매치(AI전), OGN 중계 일부 · 이 영상과 대련판은 팬 게임을 이용한 비상업 실험이며, 원작 저작권사와 관련이 없습니다. · 이규태 님께 영상 사용과 온라인 공개를 허락받았습니다.
재미있게 보셨으면 좋아요와 댓글 부탁드립니다. 다음 실험도 보고 싶으시면 구독 눌러주세요.
#피카츄배구 #강화학습 #AI #게임AI #셀프플레이 #블레이드앤소울 #레트로게임 #파이토치