이 글은 CS2 Practice Host 시리즈의 2번째 기록입니다. (총 4개)

오늘 한 일

  • 게임 안 단축키 두 개 중 위험한 쪽을 없앴다
    • 이유: 함께 플레이한 사람이 둘을 헷갈린다고 했다. 둘 다 맵을 새로 여는 것으로 보이는데 하나는 친구가 남고 하나는 전부 끊긴다
    • 없앤 키가 하던 일은 앱 버튼으로 할 수 있어서 기능이 줄지 않았다
    • 키 설정은 게임에 저장돼 남으므로, 예전에 걸린 것을 푸는 명령을 설정 파일에 넣었다
  • 코드를 정리했다
    • 「게임이 켜졌나 → 앱이 켠 건가 → 서버가 열렸나」를 상태 표시줄과 주소 복사가 각각 따로 따지고 있었다. 한곳으로 모아 네 가지 상태 중 하나를 돌려주게 했다
    • 타이머 둘을 하나로 합쳤다. 하나가 시간 초과만 보고 실제 감지는 다른 하나가 하던 상태였다
    • 쓰이지 않는 코드와 어정쩡한 이름을 치웠다
  • 첫 릴리스를 냈다
    • 저장소를 따로 만들려던 계획을 접었다. 소스가 공개라 같은 저장소에 올리면 되고, 그래야 「이 코드로 만든 실행 파일이다」가 한자리에서 보인다
    • 실행 파일과 그 파일의 해시값을 함께 올렸다
    • 변경 내역을 한국어와 영어로 썼다
  • 저장소에 읽을거리를 넣었다
    • 설명 없이 서명도 없는 파일을 받으라고 하면 받을 이유가 없다. 이 앱이 하는 일과 하지 않는 일을 나눠 적었다
  • 설명서 사이트를 만들었다
    • 주소의 맨 위가 비어 있어 404가 나던 자리다
    • 왜 친구가 못 들어오는지, 방장과 친구가 할 일, 알아둘 것, 자주 묻는 것 일곱 가지
    • 앱의 물음표 버튼이 이 페이지를 연다
  • 중계 페이지와 설명서에 광고를 붙였다
    • 자리는 접속 버튼보다 아래에 뒀다. 들어가는 길을 가리면 안 되고, 외부 프로그램을 여는 페이지라 광고가 위에 있으면 수상해 보인다
    • 두 페이지에 광고 고지를 넣고 방침 페이지로 링크했다
      • 이유: 앱이 수집하는 게 없다는 말은 앱 얘기지 페이지 얘기가 아니다. 광고는 방문자 쪽 식별자를 쓴다. 참가 페이지는 친구가 보는 화면이라, 앱을 받은 적도 없는 사람이 자기가 고르지 않은 채로 광고를 만난다
  • 켤 때 새 버전이 있는지 확인해 알려 주게 했다
    • 알아서 받지는 않는다. 창 아래에 안내가 뜨고 누르면 받는 곳이 열린다
    • 이유: 쓰는 사람이 늘수록 옛 버전이 도는 문제가 생기는데, 알릴 방법이 없으면 손쓸 수가 없다. 알리기보다 먼저 해두는 게 맞다
    • 확인이 네트워크를 타므로 뒤에서 돌려 화면이 멈추지 않게 했다. 인터넷이 없으면 조용히 넘어간다 — 업데이트 확인이 안 됐다고 앱을 못 쓰게 할 이유가 없다

막힌 부분

  • 가로 배너를 그대로 붙이면 페이지가 가로로 삐져나왔다
    • 원인: 배너가 728px인데 본문 폭이 420px이다
    • 해결: 광고를 본문 바깥 아래에 따로 두고, 창이 좁으면 띠 배너로 바꾸게 했다
  • 「앱이 직접 주고받는 네트워크 통신이 없습니다」가 두 번 틀려졌다
    • 원인: 저장소 읽을거리에 신뢰를 걸고 적은 문장인데, 물음표 버튼이 브라우저를 열게 되면서 한 번, 업데이트 확인이 붙으면서 또 한 번 사실과 어긋났다
    • 해결: 바깥과 닿는 것을 둘로 적고 둘 다 넘기는 정보가 없다고 고쳤다. 서명이 없는 프로그램이라 그 문장이 신뢰의 전부인데, 느슨하게 두면 나중에 코드를 뜯어본 사람에게 들킨다
  • 사이트 주소를 만든 자리에서 404가 나왔다
    • 원인: 페이지가 하위 경로에 있는데 맨 위 주소로 열었다. 맨 위에는 아직 파일이 없었다
    • 해결: 거기에 설명서를 만들었다. 지금은 앱의 물음표 버튼도 그 주소를 연다

서버가 열려도 참가 링크가 안 붙었다

서버가 열린 뒤 붙여넣어 보니 아무것도 안 나왔다. 복사 버튼을 손으로 누르면 붙는다.

원인은 클립보드 다툼이었다. Windows는 클립보드를 한 번에 한 프로그램만 잡는다. 서버가 열리는 순간은 게임이 화면 앞에 있어서, 뒤에 있는 앱이 쓰려 하면 거부당한다. 복사 버튼이 되는 이유는 그때는 앱이 앞에 있어서다.

더 나쁜 건 그다음이었다. 실패를 그냥 넘기고 「복사됐어요」라고 말하고 있었다.

  • 해결: 2초 동안 다시 시도하게 했다. 게임이 앞에 있어도 그 사이에 비는 순간이 있어 대부분 잡힌다
  • 해결: 그래도 실패하면 그렇게 말하고 주소를 화면에 보여 준다. 복사 버튼 둘도 같은 방식으로 고쳤다 — 전에는 버튼도 성공을 단정하고 있었다
  • 이 수정을 담아 두 번째 릴리스를 냈다. 첫 릴리스에는 이 증상이 남아 있다

물음표 버튼을 창에 띄우려다 웹으로 바꿨다

사용법을 보여주는 버튼을 만들었는데 앱 창에 글을 띄우는 방식으로 올라왔다. 설명이 바뀔 때마다 실행 파일을 다시 내보내야 하지 않냐고 했다.

웹 주소를 열게 바꿨다. 주소는 우리가 직접 관리하는 쪽으로 정했다 — 샵 페이지는 다른 손이 만드는 중이라 주소가 아직 확정이 아니고, 실행 파일에 박히는 주소는 깨지면 새 릴리스를 내야 한다.

  • 남은 한계: 첫 릴리스를 받은 사람의 물음표 버튼은 아직 창에 글을 띄운다. 두 번째 릴리스부터 웹으로 간다

다음에 할 일

  • 알릴 곳을 정하고 글 초안을 쓴다. 커뮤니티 한두 곳
  • 두 페이지 디자인을 같은 결로 다듬는다
  • 광고를 붙이고 2주 뒤 노출 수를 보고 계속 둘지 정한다
  • 확인이 남은 것들 — 봇 난이도 값 대조, 탈환 모드에서 옵션이 잠기는지, 친구가 실제로 접속되는지

Series: CS2 Practice Host


Suggested Posts