2P by neo 2023-08-11 | favorite | 댓글 1개
  • 2023년 재출시된 Quake II는 서버와 게임 모듈 간의 통신을 위한 새로운 API, 새로운 네트워크 프로토콜, 그리고 향상된 모딩 기회를 위한 "클라이언트 게임" 모듈을 도입했습니다.
  • 업데이트된 코드베이스는 원래 게임의 별도의 게임 모듈을 병합하고 C++17 컴파일러를 필요로 합니다.
  • 게임 DLL은 Clang, VS2019, VS2022와 호환되며 C++17 및 C++20에서 모두 컴파일할 수 있습니다.
  • 재출시 버전은 40hz 틱률을 지원하여 원래 10hz에 비해 더 나은 게임 플레이 경험과 정밀도를 제공합니다.
  • 게임 DLL은 이제 함수에서 varargs를 사용하지 않고, 포맷팅의 책임을 호출자에게 전달합니다.
  • 재출시 버전은 수학 함수에 대한 변경을 포함하여 작업을 더 쉽게 만들고, 적절한 경우에는 constexpr를 사용하고 연산자 오버로드를 사용합니다.
  • "엔티티가 클라이언트에게 프레임에서 보이는지"에 대한 방법의 변경사항에는 스플릿 스크린 지원과 사운드 감쇠 컬링이 포함됩니다.
  • 재출시 버전은 확장된 모딩 기회를 제공하지만, 주요 구조 변경으로 인해 기존 모드를 새로운 코드베이스를 사용하도록 다시 작성해야 할 수 있습니다.
  • 플레이어의 움직임이 수정되어, 게임 모듈이 물리학을 변경하면서도 클라이언트 예측과 함께 작동할 수 있습니다.
  • Configstrings가 업데이트되어 최대 길이가 64에서 96으로 증가하고, 특정 범위가 여러 줄에 걸쳐 확장될 수 있게 되었습니다.
  • 재출시 버전은 구조에 대한 변경사항을 포함하며, svflags에 새로운 플래그를 추가하고 effects_t를 uint32_t에서 uint64_t로 변경하여 더 많은 효과를 표현합니다.
  • 동일한 효과가 스플릿 스크린 플레이어에게 여러 번 전송되는 것을 방지하기 위해 새로운 '_key' 파라미터가 도입되었습니다.
  • 저장 시스템은 이제 레벨과 게임 데이터를 UTF-8 JSON에 작성하여 개발자가 더 쉽게 탐색할 수 있게 합니다.
  • 저장 시스템은 더 이상 파일 시스템과 인터페이스하지 않으며, 다른 모드가 JSON을 사용할 필요는 없습니다.
  • Quake II 서버 프로토콜이 업데이트되었으며, 대역 외의 도전 제거, 연결 메시지 변경, 다양한 svc 패킷 업데이트 등이 포함됩니다.
  • 이 텍스트는 다양한 서버-클라이언트 상호작용, 비트스트림에서 다양한 유형의 데이터를 읽는 방법, 데이터에서 특정 플래그와 키를 처리하는 방법에 대한 자세한 설명을 제공합니다.
  • 이 텍스트는 또한 svc_waitingforplayers, svc_bot_chat, svc_poi, svc_help_path, svc_achievement와 같은 다양한 서버-클라이언트 패킷의 기능과 그 데이터를 읽는 방법에 대해 설명합니다.
  • clc_stringcmd 패킷은 클라이언트에서 서버로 문자열 명령을 읽는 데 사용됩니다.
  • 이 텍스트는 또한 특수한 경우를 처리하는 방법, 예를 들어 POI에 대해 0이 아닌 키가 지정되었을 때, 또는 POI의 시간이 0xFFFF 또는 0으로 설정되었을 때를 설명합니다.
Hacker News 의견
  • 게임 Quake II의 소스 코드 재공개, 기술 커뮤니티에서 회자되는 추억의 파도
  • 많은 댓글러들이 Quake II로 코딩을 배운 경험을 공유, 게임의 명료하고 일관된 코드는 훌륭한 학습 도구로 강조
  • Quake II는 1990년대 후반과 2000년대 초반에 어린이들에게 VR 수업을 가르치는 데 사용, 자신만의 가상 현실 게임 레벨을 만들어봄
  • 일부 사용자들이 게임을 위한 모드를 만드는 추억을 공유, 한 사용자는 컴퓨터 프로그래머로서의 경력을 Quake II와의 초기 경험에 돌리는 경우도 있음
  • 게임의 출시는 또한 오래된 게임의 보존에 대한 논의를 촉발, 일부 사용자들은 더 이상 판매되거나 지원되지 않는 게임들이 그들의 문화적 중요성을 위해 오픈 소스로 공개되어야 한다고 제안
  • Quake II 소스 코드의 재공개는 clang과 같은 현대 프로그래밍 도구와의 호환성을 위해 칭찬받음
  • 일부 사용자들은 재공개가 Linux 버전을 포함하지 않는 것에 대해 실망을 표현, 하지만 iD(게임 개발자)가 원칙을 고수하는 것을 인정
  • 재공개는 또한 Quake II 소스 코드에서 사용된 C/C++의 유형에 "_t"를 접미사로 사용하는 관례에 대한 논의를 촉발
  • 사용자들은 추억의 게임 경험을 위해 Oculus Quest 2에서 Quake2Quest를 시도해보는 것을 추천