4P by neo 2달전 | favorite | 댓글 1개

Pumpkin

Pumpkin은 Rust로 완전히 구축된 Minecraft 서버로, 빠르고 효율적이며 사용자 정의 가능한 경험을 제공함. 게임의 핵심 메커니즘을 준수하면서 성능과 플레이어의 즐거움을 우선시함.

Pumpkin이 달성하고자 하는 것

  • 성능: 멀티스레딩을 활용하여 최대 속도와 효율성을 추구함
  • 호환성: 최신 Minecraft 서버 버전을 지원하며, 기본 게임 메커니즘을 준수함
  • 보안: 알려진 취약점을 방지하여 보안을 우선시함
  • 유연성: 불필요한 기능을 비활성화할 수 있는 높은 구성 가능성을 제공함
  • 확장성: 플러그인 개발을 위한 기반을 제공함

Pumpkin이 하지 않을 것

  • 기본 또는 다른 서버의 대체품으로 사용되지 않음
  • 다른 서버의 플러그인이나 모드와 호환되지 않음
  • 서버를 처음부터 구축하는 프레임워크로 작동하지 않음

중요: Pumpkin은 현재 활발히 개발 중임

기능 (진행 중)

  • 설정 (toml)
  • 서버 상태/핑
  • 로그인
  • 플레이어 설정
    • 레지스트리 (생물군계 유형, 그림, 차원)
    • 서버 브랜드
    • 서버 링크
    • 리소스 팩 설정
    • 쿠키
  • 월드
    • 월드 참여
    • 플레이어 탭 목록
    • 월드 로딩
    • 엔티티 생성
    • 청크 로딩
    • 월드 생성
    • 청크 생성
    • 월드 경계
    • 월드 저장
  • 플레이어
    • 플레이어 스킨
    • 플레이어 클라이언트 브랜드
    • 플레이어 텔레포트
    • 플레이어 이동
    • 플레이어 애니메이션
    • 플레이어 인벤토리
    • 플레이어 전투
  • 서버
    • 플러그인
    • 쿼리
    • RCON
    • 인벤토리
    • 파티클
    • 채팅
    • 명령어
  • 프록시
    • Velocity

현재 진행 상황은 GitHub 프로젝트에서 확인 가능함

GN⁺의 정리

Pumpkin은 Rust로 개발된 Minecraft 서버로, 성능과 사용자 경험을 중시하는 점에서 주목할 만함. 멀티스레딩을 통한 성능 최적화와 보안 강화가 특징이며, 플러그인 개발을 위한 확장성을 제공함. Minecraft 서버 개발에 관심이 있는 사람들에게 유용할 수 있으며, 현재 활발히 개발 중이므로 지속적인 업데이트가 기대됨. 비슷한 기능을 가진 프로젝트로는 PaperMC와 Spigot이 있음.

Hacker News 의견
  • 벤치마크에서 성능 차이가 인상적임. 그러나 월드 생성 및 저장 기능이 빠져 있으며, 이는 비용이 많이 드는 작업임. 특히 청크 생성은 약한 VPS를 무너뜨릴 수 있음. 이러한 기능이 포함되어 사용될 때의 성능 비교가 궁금함

    • 블록 파괴/설치에 대한 지원이 있는지 궁금함. 이는 서버에서 빛 재계산과 청크 업데이트가 필요할 것임
    • 고급 기능인 스코어보드, 팀, 명령 블록 파싱을 추가할 계획이 있는지 궁금함. Mojang은 최소한 Brigadier를 오픈소스화했음
    • 멋진 프로젝트임. 저사양 하드웨어에서 서버를 쉽게 운영할 수 있는 수준으로 성숙해지길 바람
  • 이 프로젝트에 대한 벤치마크가 있는지 궁금함. 바닐라 서버보다 얼마나 빠른지 알고 싶음

    • Minecraft 서버는 플레이어 수가 증가함에 따라 자원 집약적이 되며, 부하를 처리하기 위해 매우 강력한 서버를 운영하지만 여전히 TPS가 낮음
  • 이 프로젝트를 이전에 알았던 사람으로서, Hacker News에서 이 프로젝트가 인기를 끌어 기쁨. (140개의 추천은 꽤 좋다고 생각함)

    • 기억하기로는 Rust로 작성된 다른 서버도 있었지만 확실하지 않음
    • 마지막으로 봤을 때는 매우 초기 단계의 소프트웨어였지만 빠르게 개발되고 있었음. 현재 상태는 잘 모르겠음 (저자가 시험을 보러 갔을 때 있었음)
  • 최근에 Rust로 완전히 작성된 효율적이고 빠른 Minecraft 서버인 Pumpkin을 개발했음. 확인해보길 바람

  • 메인 스레드를 영역으로 분할하는지(예: Paper Folia) 아니면 비블록 엔티티를 자체 스레드로 분할하는지 궁금함

  • 인상적인 작업이지만, 많은 Minecraft 모드를 지원하는 고성능 구현을 보고 싶음. Forge 서버는 큰 모드팩에서 느리기로 악명 높음

  • Minecraft가 자체 프로토콜로 역설계되어 여러 서버 및 클라이언트 구현이 작동하는 것을 기다리고 있음

  • 이 프로젝트를 시도해볼 것임. 순수 바닐라 서버의 성능이 매우 나쁨. Mojang이 이를 개선하길 바람. 새로운 청크 생성은 최소한 멀티스레드임. SMP 서버에 대한 기본 제어를 공식적으로 지원하길 바람. 두 개의 모서리 좌표로 정의된 영역과 같은 기본 권한(설치, 파괴, 상호작용)만 있어도 좋음. 기본 구성 파일로 요청/업데이트를 다른 도구를 사용하여 관리할 수 있음. 게임 내에서 간단한 명령줄 유틸리티로 운영할 수 있음. 항상 화이트리스트만 사용하는 것을 피할 수 있는 것이 좋음. Paper/Waterfall 등은 플러그인이 있지만 순수 바닐라를 유지하는 것이 좋음. 오랫동안 서버를 유지해왔음

  • 사람들이 어떻게 이런 일을 할 수 있는지 항상 놀라움. 이 프로젝트가 어떻게 만들어졌는지에 대한 글이 있다면 감사하겠음