요약
옛 RuneScape 서버를 AI 에이전트의 시험장으로 삼은 RuneScape Bench 발표 영상입니다.
개발자 맥스 비트커가 MMO(수많은 이용자가 한 세계에 동시 접속하는 온라인 게임)인 RuneScape에서 AI 에이전트를 움직이는 프로젝트를 소개한 영상입니다. 원문을 읽지 못했습니다. 그래서 제목과 HN 글, 작성자 댓글만으로 정리했습니다. 프로젝트는 그랜드 익스체인지(게임 안 거래소)가 생기기 전의 RuneScape를 되살린 오픈소스 서버 Lost City를 바탕으로 합니다. 작성자는 HN 댓글에서 에이전트에게 rs-sdk 저장소와 목표를 주면 누구나 직접 해 볼 수 있다고 소개했습니다. 또 에이전트 무리를 풀어 자원을 직접 모으는 편이 쉬워서 서버를 연 뒤 몇 달 동안 거래가 수십 건에 그쳤다고 밝혔습니다.
HN 반응
- 어릴 때 SCAR 같은 도구로 RuneScape 봇을 짜거나 사설 서버를 돌리며 프로그래밍에 입문했다는 경험담이 줄을 이었습니다.
- 이런 게임이 모델 훈련 환경으로 쓸 만하다는 기대에, 보상이 드문 환경에서는 바깥에서 목표를 주지 않으면 에이전트가 별일을 하지 않는다는 경험담이 맞섰습니다.
정말 멋진 발표였습니다. 저도 어릴 때 프로그래밍에 처음 입문한 계기가 런스케이프 봇 만들기였습니다. SCAR [1]라는 델파이 기반 도구를 썼고, 카운터 스트라이크 1.6 서버용 플러그인도 AMX Mod X로 같이 만들었습니다. 바로우 은행에서 시작해서 마법사 오두막으로 가고, 대화 선택지를 고르고, 텔레포트하고, 현재 위치를 확인하고, 캐고, 캐고, 또 캐다가, 텔레포트로 돌아와 은행에 맡기고, 다시 처음부터 반복하는 식이었습니다.
제가 만든 에센스 채굴 봇은 꽤 대단한 물건이었는데, 런스케이프가 모든 색상을 조금씩 무작위로 바꾸기 시작하자 처참하게 망가졌습니다. 에센스를 팔아 푼돈이나마 벌어 본 뒤의 일이었습니다.
[1] https://scar-divi.com/
고등학생 때 학교 뒷골목에서 사람들을 만나곤 했는데, 그 사람들이 저한테 현금 뭉치를 쥐여 주면서 사 간 게... 제가 봇으로 모은 런스케이프 골드였어요.
SCAR도 조금 만져 봤지만 주로 쓴 건 Powerbot이었습니다. 그쪽 옛날 포럼에서 계정이며 스크립트, 포토샵으로 만든 서명을 사고팔면서 노는 게 참 좋았어요.
저도 이 바닥에서 프로그래밍에 입문했습니다. 조금 더 늦은 2008년쯤 irc.rizon.net의 #rsbotjava에서였어요. 코딩은 이미 조금 하고 있었지만 쓸 만한 프로젝트 아이디어가 없었습니다. 게임 말고는요. 게임은 아티스트를 알지도 못했고 온라인으로 협업하는 법도 몰라서 늘 흐지부지됐거든요. RS 씬은 흥미로운 프로그래밍 과제, 대부분 십대였던 꽤 큰 규모의 또래 커뮤니티, 그리고 내 프로그램이 "진짜"(아니, 가상이긴 하죠, ㅎㅎ) 세계에서 돌아가는 걸 보는 재미까지 모두 갖춘 완벽한 조합이었습니다. 그 덕에 JVM 내부 구조, 컴파일러 기법, IDE, Swing으로 하는 GUI 프로그래밍, 버전 관리까지 배웠어요...... 이 게임과 그 주변 커뮤니티가 없었다면 제가 CS를 전공으로 고르고 프로그래머로 일하게 됐을지 모르겠습니다.
네, 저도 SCAR로 프로그래밍을 시작했고 srl-forums의 SRL도 같이 썼어요. 정말 재밌었죠.
저도요, 다만 저는 Kaitnieks/Sythe였어요. 2004~2007년쯤 그 커뮤니티들은 정말 애틋한 추억입니다.
그 커뮤니티들이 어땠고 얼마나 흥미로웠는지를 온라인에 글로 남긴 사람은 아무도 없는 것 같아요. 제가 한번 써 봐야겠네요!
꼭 써 주세요! 저는 10년도 더 전에 우연히 Sythe를 알게 됐지만 참여한 적은 없거든요.
와, 잊고 있던 것들이 떠오르네요. SCAR, Simba, Villavu 포럼.
SCAR로 봇을 만들면서 SVN이라는 걸 처음 접했고, 다른 사람이 만든 라이브러리를 가져다 쓴다는 개념도 그때 알았습니다.
단순했던 시절이었죠. 행복했던 시절이기도 하고요.
용기 내서 한번 물어볼게요.
혹시 "We are the hunted"라는 제목의 글을 기억하는 분 계신가요? 현재 페이지든 아카이브든 어디서도 찾지 못했습니다.
요약하면, 그런 커뮤니티 중 하나(제가 있을 때는 Simba였습니다)의 철학에 관한 글이었어요. 머리 벗겨진 레벨 3 봇을 대량으로 뿌리는 게 아니라 주변에 섞여 들어서 사실상 탐지되지 않는 것이 목표였고, 목적은 어설픈 돈벌이가 아니라 다른 무엇이라는 내용이었습니다.
저도 어렴풋이 기억나요. 아카이브에 없는 이유는 아마 srl-forums에서 로그인해야 볼 수 있는 글이어서일 거예요.
제가 한번 찾아보고 알려 드릴게요.
찾은 건 "we are the hunted"가 예전에 그 사이트의 슬로건이자 태그라인이었다는 것뿐이에요!
우리만의 작은 유실 미디어(lost media)가 되겠네요.
감사합니다, HN 작성자입니다. 궁금한 점 있으면 답해 드릴게요!
이 글에 영감을 받으셨다면, 에이전트에게 이 저장소를 알려 주고 목표를 하나 던져 보세요.
https://github.com/MaxBittker/rs-sdk
서버의 실시간 활동은 여기서 볼 수 있습니다. https://maxbittker.github.io/rs-world/
만들어 주셔서 감사합니다. 예전에 누군가(아마 본인이셨을 거예요)가 이게 재미있는 방치형 게임이 되겠다고 말한 게 기억나요. 그 얘기를 하려고 댓글을 달 생각이었는데, 열어 보니 바로 그 프로젝트였더군요.
서버의 경제에 대해 질문이 있습니다.
Lost City는 그랜드 익스체인지가 생기기 전 시절을 재현한 거니까, 특히 에이전트가 경제를 주도하는 지금 거래와 상업이 실제로 어떻게 돌아가는지 궁금합니다. 아직 접속은 못 해 봤는데, 어릴 때 F2P 유저였던 저는 99레벨을 찍는 것보다 골드를 최대한 많이 버는 데 집착했거든요.
대체로 값싼 자동화가 거래 의욕을 크게 꺾는 것 같아요. 에이전트 팀을 풀어서 자원을 채집하는 게 판매자를 찾는 것보다 더 쉬운 경우가 많거든요.
서버를 연 첫 몇 달 동안은 스웜 내부 공유를 빼면 거래가 수십 건밖에 없었어요.
지금은 그랜드 익스체인지를 추가했는데, 여전히 전체 유동성은 낮습니다. 그래도 가격과 거래량은 여기서 볼 수 있어요.
https://rs-sdk-demo.fly.dev/market#sort=value&days=90
만들어 주셔서 감사합니다. 지난 한 주 동안 이 프로젝트로 말도 안 되게 재밌게 놀았어요.
그렇게 말씀해 주시니 정말 기쁘네요! 이 프로젝트의 큰 목표가 즐겁게 배우는 경험을 제공하는 거였으니, 시간을 잘 보냈다고 느끼셨으면 좋겠습니다!
이런 가벼운 오픈월드 자원 수집 게임은 사실상 미니게임의 연속이니, 모델 학습 환경으로 좋을지 궁금했습니다. 미니게임마다 익혀야 할 메커니즘이 꽤 단순하고, 시작하려면 이동하고 상호작용하는 것도 필요하죠. 제 생각엔 그런 것들이 꽤 쓸모 있는 범용 기술일 것 같아요.
제 사이드 프로젝트 중 하나가 게임인데, 에이전트가 자기만의 월드 샤드를 띄워서 그 안에서 플레이할 수 있게 만들었습니다. 크롬으로 구동하는 작은 에이전트 하네스가 있어서, 저해상도 스크린샷을 가져오면서 동시에 네트워크로 게임과 직접 통신해 조작합니다.
Luna에게 플레이를 시켜 봤는데 (플레이어는 자전거입니다) 돌아다니기는 해도 미니게임 중 하나인 디스크 골프는 꽤 힘겨워했어요. 제 구상은 모델 학습하는 쪽에서 이 하네스로 RL 루프를 돌려 피드백 데이터와 스크린샷을 얻고, 그 과정에서 필요할 때마다 게임 월드를 리셋하는 것이었습니다.
스크린샷과 게임 맥락을 30~60fps로 멀티모달 추론할 수 있는 똑똑한 모델이 나오면 꽤 흥미로울 거고, 분명 곧 나올 거라고 생각해요. 얼마나 일반화될지는 모르겠지만 실제로 해 보면 재미있을 겁니다.
저도 가볍게 이것저것 꽤 해 봤는데, 대체로 결과가 좋지 않았어요. 보상이 드문 환경에서 보상을 찾아 헤맨다는, 고전적인 RL 문제와 비슷하게 끝나는 경우가 많았습니다. 월드 바깥에서 에이전트에게 미리 목표를 주지 않으면 흥미로운 일을 거의 하지 않아요. 이론상으로는 계층적 접근 같은 우회 방법이 있을 텐데, 그런 건 복잡도가 제 한정된 자원이 감당할 수 있는 속도보다 빠르게 커지더군요.
그래도 정말 멋진 시도예요.
수정: 댓글 달기 전에 영상부터 봤어야 했네요. 이런 문제를 영상에서 이미 많이 다루고 있고, 저보다 훨씬 멀리 나아갔네요.
더 고전적인 유전 알고리즘이나 반려동물 훈련 방식으로 돌아가야 할 것 같아요. 목표까지의 "거리"를 점점 늘려 가는 거죠. 처음에는 목표를 단순하게, 바로 손에 닿게 해 두고, 진행하면서 목표에서 서서히 "멀어지게" 하고 그 사이에 장애물 등을 더 넣는 겁니다.
전서구라면 말 그대로 풀어 줄 때마다 더 먼 곳까지 차로 데려가는 식이겠죠.
걷도록 훈련하는 에이전트라면 처음에는 평평한 바닥에서 어떤 선을 넘기만 하게 하고, 그다음 속도 보상을 넣고, 이어서 평평하지 않은 바닥, 장애물, 곡선 같은 식으로 나아가는 겁니다 [1].
[1] "AI Warehouse" 채널이 전부 가벼운 게임 과제를 위한 AI 훈련을 다룹니다. https://www.youtube.com/watch?v=L_4BPjLBF4E
오늘 아침에 봤는데, 이 영상은 에이전트 하네스를 만들고 벤치마크하는 아이디어의 보물창고예요.
작성자는 RS가 그토록 훌륭한 게임이었던 이유의 본질을 잘 짚었습니다. 제이젝스가 게임을 더 순하게 만드는 업데이트를 거듭하면서 완전히 잃어버린 영혼이기도 하고요.
오늘날에는 이런 결정적인 순간이 절대 생길 수 없어요. 위험지대(wilderness)가 게임 속에서 직접 발견하는 곳이 아니라 확인 화면 3개 뒤에 있으니까요.
> 아이템이 얼마짜리인지 알아야 바가지를 안 쓰거든요. 극단적인 수준까지 가기도 해요. 사람들이 바가지 가격을 부르려 한다는 정도가 아니라, 이 게임은 사기, 거짓말, 비밀번호 털기로 아주 유명하니까요. 정말 무법천지입니다.
> 그리고, 이건 정말 사실인데요. 제가 처음 런스케이프 세계에 들어갔던 때의 가장 첫 기억이 누군가에게 도움을 청한 거예요. 빵을 만들려고 하는데 "빵을 만들려면 방앗간이 어디 있어요?" 하고 물었죠. 그랬더니 어떤 사람이 "따라와, 보여 줄게" 하더라고요. 그래서 숲속으로 따라갔는데, 짐작하시겠지만 그 사람이 돌아서서 저를 공격하기 시작했어요. 무슨 일인지 깨달았죠. 아마 열한 살쯤이었을 거예요. 무슨 일이 벌어지는지 깨닫고 죽어라 달아났습니다. 남쪽으로 엄폐물까지 도망쳐서 빠져나왔어요. 죽지 않았죠. 그러고 나서 게임을 껐던 게 기억나요.
> 부모님이 집에 안 계셔서 이 일을 곰곰이 생각할 시간이 있었어요. 그러고 나서 "이거 내 인생에서 제일 멋진 일이었다"는 생각이 들었죠. 이게 이 게임의 아름다움이자 마법이라고 생각해요. 험하고 거친 세상이라 스스로를 지켜야 하는 곳이니까요. 아이한테는 그게 실제로 아주 좋은 연습이에요. 진짜 사람들이 있는 세상에 나가서 무슨 일이 벌어지는지 파악하고, 누가 엄청 좋은 조건을 제시하면 조심해야 한다는 걸 배우는 거죠.
이런 게임 디자인에 건배를. 언젠가 다시 볼 수 있으면 좋겠네요.
MUD에서 비슷한 경험을 했어요. 적대적 인수를 당한 파벌에서 도망쳤는데, 그 뒤로 파벌 지도자 한 명이 끈질기게 저를 쫓아다녔습니다. 그 일 때문에 의욕이 꺾이기는커녕, 게임이 제공하는 생존 기술을 익히게 됐어요. 다른 사람들의 위치를 찾아내 감시하고, 여러 지름길로 다가오는 존재를 알아채는 식으로요. 결국 그 덕에 게임이 제게 훨씬 생생하게 느껴졌고, 그에 맞춰 제 캐릭터의 이야기를 만들어 가게 됐습니다. 정말 유일무이한 경험이었어요.
제가 배운 가장 이른 사회생활, 인생 교훈 중 일부는 그 게임 속 상호작용에서 나왔어요.
요즘 애들은 누가 "숨겨진 지역으로 따라와"라고 해서 따라갔다가, 위험지대에 발을 들이는 순간 룬 무기로 한 방에 맞고 가진 걸 전부 털리는 경험을 다시는 못 해 보겠죠.
정말이지 위험지대가 이 게임에서 제일 좋은 부분이었어요.
검은색 방어구 한 세트를 맞추려고 열심히 노가다를 한 뒤 곧장 위험지대로 갔다가 바로 두들겨 맞고 그대로 다 잃었던 게 기억나네요, ㅋㅋ.
저도 런스케이프 덕분에(사설 서버 커뮤니티를 통해서요) 소프트웨어 엔지니어가 됐습니다. 이 게임을 일반인도 알아들을 말로 풀어내고, 심지어 AI 에이전트가 플레이어 상호작용을 맡는 데까지 이어 가는 걸 보니 속이 시원하네요. 다만 이 모든 것에 대한 제이젝스의 입장이 걱정됩니다. 어쩌면 이것 때문에 최근 런스케이프 4를 발표한 걸지도 모르겠어요.
(번역: 런스케이프 덕분에, 사설 서버 커뮤니티를 통해서 소프트웨어 엔지니어가 됐다)
저랑 똑같은 이야기네요. Mopar, RuneServer, 그다음에 SoulSplit이요 (SoulSplit 창립자가 지금 뭘 하고 있는지 한번 보세요...)
같은 배경을 가진 사람이 얼마나 될지 궁금하네요?
원글에 답글을 달자마자 당신 글이 제 경험과 똑같이 보이네요. 비슷한 계기로 입문한 사람이 얼마나 되는지 정말 궁금해졌습니다.
저도 비슷해요. 열한 살 때 처음 사설 서버를 만들었고, 그때부터 계속 기술이 좋았습니다.
그 시절엔 VPS가 뭔지 몰라서 사설 서버를 우리 집 가족 컴퓨터에서 돌렸어요. 자러 갈 때 컴퓨터를 켜 둔 채, 서버가 뻗기 전에 적어도 세 시간은 버텨 주기를 빌었죠. 제일 최악은 아침에 일어나서 로그를 확인했더니 잠든 지 10분 만에 서버가 죽어 있던 때였어요 :’)