ViaVersion
ViaVersion은 마인크래프트 서버에서 서버보다 최신 버전의 클라이언트 접속을 지원하기 위한 마인크래프트 플러그인이다. 서버 버전을 즉시 올리기 어려운 경우에도 최신 클라이언트가 접속할 수 있게 프로토콜 변환을 제공한다.
ViaVersion은 서버 자체를 최신 버전으로 바꾸는 플러그인이 아니다. 서버의 월드, 블록, 아이템, 명령어, 플러그인 API는 여전히 서버 버전을 기준으로 동작한다. 따라서 최신 클라이언트 접속을 허용하더라도 최신 버전의 모든 게임 기능이 서버에 생기는 것은 아니다.
주요 기능
- 최신 클라이언트 접속 지원
- 프로토콜 변환
- 버전 호환 상태 확인
- 서버 업데이트 전환기 운영 보조
- BungeeCord, Velocity 같은 프록시 환경 지원
관련 프로젝트
ViaVersion은 다른 Via 계열 플러그인과 함께 사용될 수 있다.
| 플러그인 | 역할 |
|---|---|
| ViaVersion | 서버보다 최신 클라이언트의 접속을 지원한다. |
| ViaBackwards | 서버보다 이전 버전 클라이언트의 접속을 지원한다. |
| ViaRewind | 더 오래된 클라이언트 버전의 접속을 보조한다. |
서버가 어떤 방향의 호환성을 제공해야 하는지에 따라 필요한 플러그인이 달라진다.
설치
Paper 서버 기준 설치 절차는 다음과 같다.
- ViaVersion jar 파일을 다운로드한다.
- 서버의 `plugins` 폴더에 넣는다.
- 서버를 재시작한다.
- 설정 파일과 로그를 확인한다.
- 여러 버전의 클라이언트로 접속을 테스트한다.
프록시 서버를 사용하는 경우 ViaVersion을 백엔드 서버에 넣을지 프록시에 넣을지 운영 구조에 맞게 정해야 한다.
명령어
기본 명령어는 다음과 같다.
/viaversion /viaver /vvbukkit
관리자는 명령어를 통해 플러그인 상태와 지원 버전을 확인할 수 있다.
운영 참고
ViaVersion은 서버 업데이트를 미루는 동안 접속 호환성을 확보하는 데 유용하다. 그러나 장기간 서버 버전을 올리지 않고 ViaVersion에만 의존하면 플러그인 호환성, 보안, 게임 기능 차이가 누적될 수 있다.
운영 시 확인할 항목은 다음과 같다.
- 지원하려는 클라이언트 버전 범위
- 서버 버전과 Paper 빌드
- ViaVersion 최신 버전
- ViaBackwards 또는 ViaRewind 필요 여부
- 프록시 서버 사용 여부
- 리소스팩과 아이템 표시 문제
한계
ViaVersion은 네트워크 프로토콜 변환을 담당한다. 따라서 다음과 같은 한계가 있다.
- 최신 버전 블록이나 아이템이 서버에 새로 추가되는 것은 아니다.
- 서버 플러그인이 최신 API를 사용할 수 있게 되는 것은 아니다.
- 클라이언트 버전 차이로 일부 표시나 상호작용 문제가 생길 수 있다.
- 모든 버전 조합이 완벽하게 같은 플레이 경험을 제공하지는 않는다.
문제 해결
접속 문제가 발생하면 다음을 확인한다.
- ViaVersion이 서버 버전을 지원하는지
- 서버 로그에 프로토콜 오류가 있는지
- 프록시와 백엔드 서버에 중복 설치되어 충돌하지 않는지
- ViaBackwards 또는 ViaRewind가 필요한 상황인지
- 클라이언트와 서버 사이에 리소스팩 문제가 있는지
플레이시티 블록에서의 활용
플레이시티 블록처럼 서버 버전과 플러그인 호환성을 신중하게 관리해야 하는 서버에서는 ViaVersion이 업데이트 전환기에 도움이 될 수 있다. 다만 장기 운영에서는 실제 서버 버전 업데이트와 플러그인 검증을 함께 진행해야 한다.