Skip to content

A game made for Human-Computer Interface test and game difficulty optimization.

Notifications You must be signed in to change notification settings

MarcelMaxx/rhythmGame

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 

Repository files navigation

rhythmGame

A game made for Human-Computer Interface test and game difficulty optimization.

1. 게임 배경

이 게임은 리듬 기반의 음악 게임으로, 플레이어의 반응 속도집중력눈과 손의 협응 능력을 테스트하는 데 초점을 맞추고 있습니다.

또한, 이 게임은 인간-컴퓨터 상호작용(HCI) 최적화 실험에서 데이터를 수집하고 개선의 대상을 삼아, 사용자 피드백과 데이터 분석을 통해 게임 경험을 향상시키는 것을 목표로 합니다.


2. 게임 플레이 방법

1. 기본 규칙

  • 플레이어는 하강하는 음표의 트랙과 판정선을 기준으로, 적절한 타이밍에 대응하는 키를 눌러야 합니다.
    • 키 매핑DFJK 키는 각각 네 개의 트랙에 해당합니다.
  • 음표가 판정선(화면 하단 근처)에 도달했을 때 키를 누르면 “성공”으로 간주됩니다.
  • 잘못된 키를 누르거나 판정선 안에서 음표를 누르지 못하면 "실패" 또는 "미스"로 간주됩니다.

2. 모드 선택

  • 테스트 모드 (Test Mode): 실험과 최적화를 위해 각 스테이지의 음표 속도를 임의로 설정하여 다양한 게임 경험을 제공합니다.
  • 일반 모드 (Normal Mode): 점진적으로 속도가 증가하는 스테이지를 연속적으로 클리어하며, 플레이어의 안정적인 수행 능력을 테스트합니다.

3. 게임 진행 방식

  1. 플레이어는 메인 메뉴에서 원하는 모드를 선택합니다.
  2. 플레이어 이름을 입력한 후 게임을 시작합니다.
  3. 게임은 총 7개의 스테이지로 구성되며, 각 스테이지는 120초 동안 진행됩니다.
  4. 각 스테이지 종료 후, 피드백 설문조사가 표시됩니다(만족도, 재미, 좌절감 평가 포함).
  5. 플레이어는 스테이지를 건너뛰거나, 게임을 종료하거나, 다음 스테이지에 도전할 수 있습니다.

3. 게임 특징

1. 난이도 동적 조절

  • 게임은 총 7개의 스테이지로 구성되어 있으며, 각 스테이지마다 음표 속도와 생성 빈도가 다릅니다.
  • 테스트 모드에서는 음표 속도가 무작위로 변경되며,일반 모드에서는 음표 속도가 단계적으로 증가합니다.

2. 피드백 및 데이터 수집

  • 실시간 데이터 수집: 플레이어의 키 입력 데이터(타격 여부, 반응 시간, 오타 등)를 기록합니다.
  • 피드백 설문조사: 각 스테이지 종료 후, 플레이어의 주관적인 피드백 데이터(만족도, 재미, 좌절감 등)를 수집합니다.
  • 데이터 분석:
    • 성공률(Hit Rate): 플레이어가 정확히 입력한 음표의 비율.
    • 평균 반응 시간: 플레이어가 음표를 누르기까지 걸린 평균 시간.
    • 오타율: 잘못된 키 입력 비율.

3. 데이터 저장

  • 모든 플레이어의 행동 및 피드백 데이터는 CSV 파일로 저장되며,이후 실험 분석 및 게임 최적화에 활용됩니다.

4. 기술 구현

1. 사용 기술

  • 프로그래밍 언어: Python
  • 게임 프레임워크: Pygame
  • 데이터 저장: CSV 파일
  • 타임스탬프 및 데이터 태그: 모든 데이터는 타임스탬프를 포함하며, 플레이어 행동 데이터를 밀리초 단위로 기록합니다.

2. 모듈 구성

  • 음표 클래스 (Note): 개별 음표 객체의 상태(위치, 속도, 타격 여부 등)를 생성하고 관리합니다.
  • 난이도 관리 매니저 (DifficultyManager): 게임 모드와 스테이지에 따라 음표 속도와 생성 빈도를 조정합니다.
  • 데이터 수집기 (DataCollector): 플레이어의 타격 데이터를 기록하고 분석한 후 파일로 저장합니다.
  • 음표 생성기 (NoteGenerator): 현재 스테이지의 난이도에 따라 음표를 생성합니다.
  • 게임 클래스 (Game): 메인 메뉴, 플레이어 입력, 게임 로직, UI 및 피드백 수집을 담당합니다.

3. 게임 데이터 포맷

  • 기록 데이터:
    • 타임스탬프, 스테이지 번호, 트랙 번호, 타격 상태(성공/미스/오타), 반응 시간, 반응 거리, 음표 속도.
  • 분석 데이터:
    • 성공률, 오타율, 평균 반응 시간, 게임 종료율.

5. 실험 목표

이 게임을 통해 다음 목표를 달성할 수 있습니다:

  1. HCI 설계 최적화: 플레이어의 행동 및 피드백 데이터를 분석하여 음표 속도, 난이도 배분, 시각 효과 등을 조정합니다.
  2. 게임 경험 향상: 플레이어의 만족도와 재미를 기반으로 게임 디자인을 최적화합니다.
  3. 사용자 선호도 탐구: 다양한 모드와 스테이지를 통해 랜덤성 및 난이도 변화에 대한 사용자 반응을 테스트합니다.

6. 실험 사용 가이드

1. 환경 설정

  • Python 3.8+ 및 Pygame이 설치되어 있는지 확인합니다.
  • 게임 데이터가 저장될 data 폴더가 쓰기 가능한 상태인지 확인합니다.

2. 조작 절차

  1. 게임 스크립트를 실행하여 메인 메뉴로 이동합니다.
  2. 실험 목적에 따라 테스트 모드 또는 일반 모드를 선택합니다.
  3. 각 스테이지를 완료한 후, 피드백 설문조사를 작성합니다.
  4. 실험 종료 후, 데이터는 data/ 디렉토리에 타임스탬프 파일명으로 저장됩니다.

3. 데이터 분석

수집된 CSV 파일을 통해 Excel, Python 등의 데이터 분석 도구를 사용하여 실험 결과를 처리하고,

통계 데이터를 생성하여 최적화 제안을 도출합니다.

About

A game made for Human-Computer Interface test and game difficulty optimization.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages