본문 바로가기

IT & AI

송재경의 OpenMMO, 인간과 AI가 같은 서버에 접속하는 게임 실험

728x90

송재경의 OpenMMO, 인간과 AI가 같은 서버에 접속하는 게임 실험

AI 뉴스 썸네일
AI 뉴스 썸네일

'바람의나라', '리니지', '아키에이지'를 만든 송재경 개발자가 오픈소스 MMORPG OpenMMO를 공개했어요. 사람과 AI 에이전트가 같은 WebSocket 프로토콜로 접속하고 같은 규칙으로 움직이는 게임이에요. AI로 게임을 만드는 방식과 게임 안에서 AI를 다루는 방식이 한 프로젝트에 함께 담겼어요. 1

핵심 요약

구분핵심왜 볼 만한가요
접속 구조사람과 AI 에이전트가 같은 WebSocket 인터페이스로 접속해요AI 전용 권한 없이 같은 세계와 규칙을 공유하는 실험이에요
개발 방식구현 작업의 많은 부분을 AI 코딩 도구에 맡기고 설계와 판단에 집중했어요숙련 개발자의 역할이 코드 작성에서 작업 지시와 검토로 옮겨가는 사례예요
구현 범위32km × 32km 절차 생성 월드와 다층 건물, 강과 바다, 전투 시스템을 갖췄어요1인 개발 프로젝트가 어디까지 커질 수 있는지 확인할 수 있어요
남은 한계3차원 공간과 계단, 물 표현에서는 긴 디버깅이 필요했어요언어 생성에 강한 AI도 공간 추론과 복합 상태 처리에서는 사람이 개입해야 해요

1. 사람과 AI를 구분하지 않는 MMORPG를 만들었어요

OpenMMO의 출발점은 접속자에게 서로 다른 권한을 주지 않는 설계예요. 사람과 AI 에이전트가 같은 세계에 들어오고, 같은 WebSocket 프로토콜로 이동하고 대화해요. 에이전트만 쓸 수 있는 별도 API나 전용 엔드포인트가 없어서 서버는 접속자가 사람인지 AI인지 구분하지 못해요. 사람이 할 수 있는 행동은 에이전트도 같은 규칙 아래에서 시도할 수 있어요. 2

이 구조는 NPC에 대화 모델을 붙이는 방식보다 범위가 넓어요. AI가 정해진 대사만 생성하는 캐릭터에 머물지 않고, 사람과 같은 클라이언트 규칙을 따르는 참여자가 돼요. 공식 플레이 페이지의 업데이트 내역에도 에이전트 클라이언트 개선과 에이전트의 던전 상자 상호작용이 이어지고 있어요. 3

게임 세계도 작은 기술 데모 수준에 머물지 않아요. 저장소 문서에는 32km × 32km 절차 생성 월드, 쿼터뷰 3D 환경, 실시간 멀티플레이, 다층 주택, 낮과 밤, 두 개의 달, 전투와 장비 시스템이 정리돼 있어요. 클라이언트는 Svelte와 TypeScript, Three.js 계열의 Threlte를 사용해요. 서버와 에이전트 클라이언트는 Rust로 작성됐어요. 2

AI로 만든 범위가 넓어질수록 개발자의 판단이 더 중요해요

송재경 개발자는 프로젝트를 약 7개월 동안 실제로 작업했다고 설명했어요. 초기에는 AI가 작성한 코드를 직접 읽고 수정 방향을 지시했지만, 최근에는 코드 검토도 다른 LLM에 맡기는 경우가 늘었다고 해요. 직접 코드를 입력하는 시간은 줄었고, 어떤 기능을 만들지 정하고 결과를 확인하는 시간이 많아졌어요. 4

이 변화는 경험 많은 개발자가 AI 코딩 도구를 어떻게 쓰는지 보여줘요. 개발 지식이 필요 없어졌다기보다 지식을 쓰는 위치가 달라졌어요. 기능의 범위를 정하고, 결과가 의도와 맞는지 확인하고, 실패한 구현의 원인을 좁히는 일은 여전히 개발자가 맡아요. 저장소에는 게임 서버, 클라이언트, 에이전트 클라이언트, 월드 생성과 배포 문서가 함께 공개돼 있어서 인터뷰 속 설명을 실제 코드 구조와 비교해 볼 수 있어요. 2

상업성을 우선하지 않은 점도 구현 범위에 영향을 줬어요. 다층 건물과 계단, 강과 바다가 만나는 지형처럼 게임 매출과 직접 연결하기 어려운 기능에도 시간을 썼어요. 30년 동안 만들고 싶었지만 회사 프로젝트에서는 우선순위에 올리기 어려웠던 기능을 개인 프로젝트에서 시험한 셈이에요. 4

3차원 공간에서는 AI가 여러 번 막혔어요

인터뷰에서 가장 구체적인 한계는 공간 추론이었어요. 계단을 따라 1층에서 2층으로 이동하고 다시 3층으로 올라가는 기능을 만들 때 계단이 겹치는 문제가 반복됐어요. 보통 기능은 한두 시간 안에 추가됐지만, 이 작업은 1~2주 동안 디버깅이 이어졌다고 해요. 결국 개발자가 코드를 직접 읽고 문제를 이해해야 했어요. 4

바다의 파도와 젖은 모래, 강의 흐름, 강과 바다가 만나는 삼각주 표현도 여러 주에 걸쳐 다듬었어요. 자연어로 원하는 장면을 설명할 수 있어도 좌표와 층, 충돌, 렌더링 상태가 얽힌 문제를 한 번에 풀지는 못했어요. AI 코딩 도구가 빠르게 구현하는 영역과 사람이 다시 내려가 확인해야 하는 영역이 한 프로젝트 안에서 선명하게 나뉘어요.

728x90

공개 저장소라서 주장과 구현을 함께 볼 수 있어요

OpenMMO는 GitHub에서 코드를 공개하고 누구나 플레이할 수 있는 페이지도 운영해요. 저장소에는 에이전트와 사람의 동등한 접속 구조, 월드 생성, 주택, 전투, 성능과 배포 문서가 있어요. 인터뷰의 전망만 읽는 데서 끝나지 않고 어떤 기술로 구현했는지 확인할 수 있어요. 2

다만 개인 프로젝트의 경험을 모든 개발팀에 그대로 적용하기는 어려워요. 프로젝트 목표가 상업 서비스와 다르고, 코드 품질과 운영 안정성에 필요한 기준도 조직마다 달라요. AI가 작성하고 다른 AI가 검토한 코드라도 보안, 데이터 손실, 비용, 장애 대응처럼 책임이 필요한 부분은 사람이 별도로 확인해야 해요. OpenMMO는 AI 코딩이 모든 문제를 해결했다는 증거보다, 숙련 개발자가 AI와 함께 어디까지 만들 수 있고 어디에서 다시 개입하는지 보여주는 공개 사례에 가까워요.

왜 중요한가요

OpenMMO는 게임 속 AI와 게임을 만드는 AI를 동시에 시험해요. AI 에이전트가 사람과 같은 인터페이스를 사용하면 별도 특권에 기대지 않고 이동, 대화, 전투, 거래 같은 행동을 수행해야 해요. 게임 서버는 에이전트가 낸 행동도 사람의 행동처럼 검증해야 해서 권한과 규칙을 더 분명하게 설계하게 돼요. 2

개발 과정은 AI 코딩 도구의 현재 위치도 구체적으로 보여줘요. 반복 구현과 문서화, 코드 검토까지 맡길 수 있는 범위는 넓어졌어요. 반면 3차원 공간처럼 여러 상태가 얽힌 문제에서는 숙련자의 디버깅이 필요했어요. 개발팀이 AI 도구를 도입할 때는 생성한 코드의 양보다 사람이 언제 개입하고 어떤 기준으로 결과를 승인할지 먼저 정하는 편이 좋아요. 4

참고 자료

  1. 송재경, AI와 게임 — GeekNews
  2. Julian-adv/OpenMMO — GitHub
  3. OpenMMO 플레이 페이지 — OpenMMO
  4. 인터뷰, 송재경 AI와 게임 — 인벤
728x90