1P by neo 5달전 | favorite | 댓글 1개

Valve의 10년 된 Steam 문제, 모두가 Valve보다 너무 빠른가?

  • Valve는 때때로 커뮤니티 피드백과 버그 보고에 대응하지 않는 것으로 보임.
  • 10년 된 버그에 관한 이야기.

tl;dr

  • 10년 이상 지속된 Counter-Strike의 No user logon 문제를 해결하기 위한 몇 가지 대중적인 해결책들이 실제로는 근본 원인을 해결하지 못함.
  • 이 글을 구글을 통해 찾았다면, 다음 해결책들을 시도하지 말 것:
    • 게임 재설치
    • 게임 파일 검증
    • Steam 재시작
    • 컴퓨터 재시작
    • WiFi 비활성화

Introduction

  • Counter-Strike는 Valve에 의해 개발된 유명한 게임임.
  • 최근에 Counter-Strike 2(CS2)가 출시되어 Counter-Strike: Global Offensive(CS:GO)를 대체함.
  • CS2는 많은 버그를 포함하고 있으며, 이로 인해 게임 경험이 좋지 않음.
  • Valve는 CS2를 HackerOne 버그 바운티 프로그램에 포함시키지 않아 CS2와 관련된 버그 보고에 대해 보상을 지급하지 않음.

No user logon

  • 커뮤니티가 수년간 보고한 버그들이 여전히 해결되지 않고 CS2에도 존재함.
  • No user logon 오류는 게임 중 무작위로 발생함.
  • 이 문제는 여러 포럼과 Valve의 공식 지원 포럼에서 여러 차례 보고됨.
  • 제안된 해결책들은 실제로 문제를 해결하지 못함.

Esportal specific

  • Esportal에서도 이 문제를 여러 해 동안 겪었으며, 실제로 문제를 해결하지는 못하고 발생 빈도를 줄이는 데 그쳤음.
  • CS2에서는 처음에는 문제가 해결된 것처럼 보였으나 2024년 1월 첫 주에 문제 보고가 다시 증가함.

The symptoms

  • No user logon 오류는 플레이어가 게임에 연결된 후 2-3분 후에 발생함.
  • 스킨이 게임 시작 몇 분 후에야 나타나는 현상과 관련이 있을 수 있음.

Validation of the hypothesis

  • Steam 인증과 관련된 문제일 가능성이 높음.
  • STEAM USERID validated가 성공적으로 완료되기까지의 시간이 1월 3일 이전에는 2-3초였으나, 그 이후에는 약 1분 20초로 증가함.

NETWORK_DISCONNECT_STEAM_LOGON

  • Steam 인증과 관련된 버그로 보임.
  • STEAMAUTH: Client Bob received failure code 8이라는 로그가 발견됨.

Steam3 validation

  • Steam3 서버는 사용자 인증을 담당함.
  • 게임서버는 Steam3 서버에게 Steam ID의 유효성을 확인하도록 요청함.
  • Steam3 서버가 유효성을 확인하는 동안 플레이어는 게임을 계속할 수 있으나 스킨은 할당되지 않음.

Making it trustable

  • CS2.exe가 신뢰할 수 있는지 확인하는 과정이 필요함.
  • Steam.exe는 현재 로그인된 계정을 알고 있으며, CS2.exe에서 보낸 Steam ID와 일치하는지 확인함.

NETWORK_DISCONNECT_LOOPSHUTDOWN

  • NETWORK_DISCONNECT_LOOPSHUTDOWN이라는 또 다른 연결 해제 이유가 있음.
  • 이는 게임 자체에 의해 자동으로 재연결 시도가 발생함을 의미함.

Loops in the Source engine

  • Source 엔진은 특정 목표가 달성될 때까지 실행되는 루프를 가짐.
  • CS2.exe는 여러 루프를 실행하며, 최종적으로 game 루프가 실행됨.

The disconnection

  • 루프가 종료되면 NETWORK_DISCONNECT_LOOPSHUTDOWN으로 인해 연결이 해제될 수 있음.

CS2 startup procedure

  • CS2.exe가 시작될 때 여러 루프를 실행하며, levelload 루프가 game 루프로 전환하기 전에 Steam ID 검증을 시작함.

GN⁺의 의견:

  1. 이 글은 Valve의 게임인 Counter-Strike 시리즈에서 오랫동안 해결되지 않은 No user logon 버그에 대한 깊이 있는 분석을 제공함. 이는 게임 개발과 유지보수의 어려움을 이해하는 데 도움이 됨.
  2. Valve가 커뮤니티의 피드백과 버그 보고에 적절히 대응하지 않는다는 점은 게임 개발사와 사용자 간의 소통의 중요성을 강조함.
  3. 이 글은 소프트웨어 엔지니어링의 복잡성과 버그 추적 및 해결 과정에서의 도전을 잘 보여줌. 이는 버그를 해결하기 위한 체계적인 접근 방식의 필요성을 강조함.
Hacker News 의견
  • 첫 번째 댓글은 Steam의 세션 티켓 시스템에 대한 설명으로, 게임 클라이언트가 Steam 서버로부터 세션 티켓을 요청하고, 이를 게임 서버에 제공하여 Steam ID를 증명한다고 언급함. 게임 서버는 이 티켓을 Steam의 웹 API를 통해 검증해야 하며, CS2 클라이언트가 세션 티켓을 얻는 데 지연이 발생할 때 이를 처리하지 못하는 것 같다고 지적함.

    "Steam의 세션 티켓 시스템에 대한 설명과 CS2 클라이언트의 지연 처리 문제 지적"

  • 두 번째 댓글은 기사의 결론이 명확하지 않다고 지적하며, Counter-Strike 시작 방식의 문제점과 워싱턴에서의 유지보수 작업으로 인한 전 세계 플레이어의 문제 발생 가능성을 언급함. 또한, Steam ID 검증이 게임 루프 시작 전 마지막 단계로 이루어지기 때문에 유지보수 중 서버가 느려질 때 게임 시작을 방해할 수 있다고 설명함.

    "Counter-Strike 시작 방식과 유지보수 작업이 문제 발생에 미치는 영향에 대한 분석"

  • 세 번째 댓글은 멀티플레이어 게임을 시작하기 전에 인증을 완료하는 것이 필수가 아니라는 버그를 지적함.

    "멀티플레이어 게임 시작 전 인증 완료의 필수성 부족 지적"

  • 네 번째 댓글은 게임 클라이언트가 예기치 않게 충돌하는 원인을 동일한 방식으로 조사할 수 있는지 궁금해하며, GTA V의 로딩 시간 단축에 대한 연구를 언급함.

    "게임 클라이언트 충돌 원인 조사와 GTA V 로딩 시간 단축 연구 언급"

  • 다섯 번째 댓글은 기사의 문체가 너무 과장되었다고 지적하며, 핵심 내용으로 빠르게 진입할 것을 제안함.

    "기사 문체의 과장과 핵심 내용 전달의 중요성 강조"

  • 여섯 번째 댓글은 기사의 시작 부분에 문제 해결을 위한 간단한 요약을 추가할 것을 제안함.

    "문제 해결을 위한 간단한 요약 추가 제안"

  • 일곱 번째 댓글은 게임이 시작될 때만 levelloadloop가 실행되는지, 서버에 접속하고 맵을 로딩할 때도 실행되는지에 대한 질문을 함.

    "levelloadloop 실행 시점에 대한 질문"

  • 여덟 번째 댓글은 macOS에서 Steam 앱의 성능 개선을 바람.

    "macOS에서의 Steam 앱 성능 개선 요구"

  • 아홉 번째 댓글은 Valve의 보안 문제를 지적하며, CS:GO가 새로운 보고서에 대해 범위에서 제외되었다는 사실을 언급함.

    "Valve의 보안 문제와 CS:GO 범위 제외 언급"

  • 마지막 댓글은 과거에 서버 리스트와 활동 중인 플레이어 점수를 표시하는 도구를 만든 경험을 공유하며, 오래된 버그가 여전히 존재할 수 있다는 가능성을 제기함.

    "과거 서버 리스트 표시 도구 개발 경험과 오래된 버그의 지속 가능성 언급"