01 / 08

세이프 타이머

60초, 그 한 순간을 위한 오버레이 타이머.

Role
기획 · 디자인 · 개발
(1인 작업)
Platform
Windows 데스크톱
Stack
Python · Tkinter
Status
직접 사용 중
세이프 타이머
세이프 타이머 실행 화면

게임 ‘데드바이 데이라이트’에는 60초 동안 지속되는 생존자 스킬이 있습니다. 그 시간 안에 생존자를 들어 올리면 역으로 큰 위기를 맞기 때문에, 언제까지 기다려야 하는지가 중요합니다.

세이프 타이머는 이 60초를 재는 오버레이 타이머입니다. 게임 창 위에 항상 떠 있고, Z키 하나로 시작하고 멈춥니다. 창을 숨기면 트레이 아이콘으로만 남아 플레이를 방해하지 않습니다.

주요 기능

Features
  • 0160초 카운트다운, 15초 이하부터 위험 색상(#990000)으로 전환
  • 02Z키 전역 감지 — 게임 중에도 시작·정지, 키 입력은 가로채지 않음
  • 03Z키 기능 ON/OFF 버튼과 트레이 메뉴 연동
  • 04창 숨김 → 트레이 아이콘, 필요할 때만 꺼내 쓰는 구조
  • 05드래그로 옮긴 위치 저장, 모니터를 바꿔도 화면 밖으로 나가지 않음
  • 06종료 시 ‘SAFE!’ 표시와 비프음 3회

기술 노트

Engineering
  • 01

    GetAsyncKeyState를 20ms 간격으로 폴링해, 게임 클라이언트의 입력을 빼앗지 않으면서 전역 키를 감지했습니다.

  • 02

    CreateMutexW로 중복 실행을 막고, GetSystemMetrics(76~79)로 가상 화면 영역을 확인해 창 위치를 복원합니다.

  • 03

    PyInstaller로 콘솔 창 없는 실행 파일을 만들고, 설정은 %APPDATA%에 JSON으로 저장했습니다.

사용 기술

Stack
  • Python
  • Tkinter
  • pystray
  • Pillow
  • ctypes
  • winsound
  • PyInstaller

컬러

Palette