2004년 RuneScape, 56k 전화 접속으로 어떻게 멀티플레이어 RPG를 구현했나
2004 RuneScape fit a multiplayer RPG into 56k dial-up

2004년, 56k 모뎀과 초당 5KB의 대역폭으로 수천 명의 플레이어가 동시에 접속하는 3D MMORPG가 가능했을까? RuneScape 2 클라이언트를 디컴파일한 분석을 통해, 한 걸음 이동부터 서버가 다른 플레이어에게 전송하는 업데이트까지의 모든 바이트를 추적한다. Jagex는 패킷 압축, 비트 단위 인코딩, 델타 전송 등 철저한 바이트 절약을 통해 제한된 대역폭을 극복했다. 이 글은 600ms 서버 사이클, ISAAC 암호화, 플레이어 업데이트 프로토콜의 세부 사항을 설명하며, 오늘날의 네트워크 최적화에도 적용될 수 있는 통찰을 제공한다.
핵심 원칙은 버전마다 완전히 동일하지는 않지만, 대부분 RuneScape Classic(2001)부터 현재의 RuneScape 3와 Old School RuneScape까지 적용됩니다.
HN 토론
79- akersten
작가가 안티치트에 대해 더 깊이 다루고 시간이 지나면서 어떻게 발전했는지 설명해줬으면 좋았을 텐데. Jagex는 2005년경에 이미 마우스 움직임 휴리스틱으로 봇을 차단하고 있었어. 20년이 지난 지금, 어떤 JS 프레임워크가 그와 같은 분석을 혁신적인 새 접근법이라고 떠벌리고 있지. 현대 안티치트 엔진이 어떤 것인지 상상도 안 가, 특히 인간 플레이어를 그럴듯하게 흉내 낼 수 있는 LLM 시대에는 말이야. (그중 일부는 거의 감지되지 않을 정도로 꽤 기술적인 블로그 글도 쓸 수 있어 ;)
- saejox
Ultima Online은 1997년에 출시됐는데 28k 모뎀만 필요했어. 나는 그것이 더 복잡한 게임이었다고도 주장할 거야.
- dofm
아이고. RuneScape 주변의 게이머 컬트는 2004년에 정말 하드코어하고 선교사적이어서 'Run! Escape!'라는 별명을 얻었지. 나는 그 컬트에 빠지지 않았고, 그게 다행이라고 생각해. 그 후 몇 년간의 Dofus 컬트는 작고 우스꽝스러웠고, 다행히도 그 게임의 경제는 현실 세계처럼 어떤 레벨 이상에서는 재미를 좀 덜게 만들어서, 정신을 잃기 전에 빠져나올 수 있었어.
- stux
> 네트워킹이 발생하기 전에, 클라이언트는 로컬 충돌 맵을 사용하여 너비 우선 탐색을 실행하여 클릭한 곳까지의 경로를 만든 다음, 서버가 읽을 패킷을 작성한다. [...] 패킷에는 경로의 첫 번째 웨이포인트의 절대 위치가 포함되고, 그 다음 각 웨이포인트의 첫 번째 웨이포인트에 대한 델타가 포함된다.
클라이언트가 목적지만 보내지 않고 웨이포인트를 보내는 이유가 뭐지? 단순히 생각하면 더 적은 데이터를 보내는 게 더 나을 것 같은데. 경로 찾기가 너무 비싸서 서버에서 수행하는 것을 피하고 싶은 건가? 클라이언트의 경로를 검증/수정하는 것이 저렴하다면 그렇게 해도 괜찮을 것 같아?
- NDlurker
Sega Dreamcast의 Phantasy Star Online은 전화 접속에서 잘 작동했어.