KartTrack-lap / Kartrider-game-analysis

유저가 선호하는 트랙을 만들기 위해서는 어떤 특성을 고려해야할까요? 카트타고 출근팀의 Kartrider-game-anlysis는 신규 트랙 디자인을 고민하는 카트라이더 트랙 디자이너를 위해 유저가 선호하는 트랙의 특징을 분석하는 프로젝트입니다.
5 stars 0 forks source link
data-analysis game game-data-analysis kartrider regression-analysis

Kartrider-game-analysis

By TEAM 카트타고 출근

유저가 선호하는 트랙을 만들기 위해서는 어떤 특성을 고려해야하는지 분석하는 프로젝트



# 목차 [1️⃣ 프로젝트 소개](#1️⃣-프로젝트-소개) [2️⃣ 가설 설정](#2️⃣-가설-설정) [3️⃣ 사용 기술](#3️⃣-사용-기술) [4️⃣ 데이터](#4️⃣-데이터) [5️⃣ 디렉토리 설명](#5️⃣-디렉토리-설명) [6️⃣ 분석 내용](#6️⃣-분석-내용) [7️⃣ 분석 결과 및 활용 제안](#7️⃣-분석-결과-및-활용-제안) [8️⃣ 팀원 소개 및 컨택트 정보](#8️⃣-팀원-소개-및-컨택트-정보)

# 1️⃣ 프로젝트 소개 ## 1. 문제 상황 - 크레이지레이싱 카트라이더는 2004년에 서비스를 시작한 레이싱 비디오게임으로 18년째 많은 유저들에게 사랑을 받고 있습니다. 그러나 오랜 시간 서비스를 하고 있는 만큼 장점과 동시에 단점도 가지고 있습니다. 그 중 하나는 최근 출시된 스피드전 트랙들이 많이 플레이되지 않고 있다는 것입니다. - 실제로 2022.09.12 ~ 2022.10.10의 카트라이더 플레이 데이터를 살펴보니, 최근 5년간 출시된 스피드전 트랙 44개중 32개(72.7%)는 스피드 개인전 상위 50개 트랙에 이름을 올리지 못했음을 알 수 있었습니다. ## 2. 프로젝트 목적 - 위의 문제상황을 포착한 팀 ‘카트타고 출근’은 최근에 출시된 트랙들이 상위 트랙에 포함되지 못하는 문제점을 해결하고자 분석 프로젝트를 기획하였습니다. - 해당 문제를 해결하기 위해 **유저가 선호하는 트랙의 특징을 파악하려** 합니다. 그리고 신규 트랙을 출시 할때 고민인 트랙 디자이너에게 어떤 것을 고려해야하는지 분석 결과를 통해 제안하고자합니다. 분석을 통해 파악한 상위 트랙의 특징을 신규 트랙에 적용한다면, 지속적으로 사랑받는 트랙을 제작할 수 있을 것입니다.

# 2️⃣ 가설 설정 - **유저가 선호하는 트랙에는 특징이 있을 것이다.** - 유저가 ‘트랙을 선호한다’ 를 `트랙 사용 수`가 많다로 정의 - `트랙 사용수` = 경기에서 유저가 트랙을 선택한 횟수

# 3️⃣ 사용 기술


# 4️⃣ 데이터 ## 1. 사용한 데이터 ## 2. ERD 테이블 _*ERD와 관련하여 자세한 내용을 확인하고 싶으시면, [ERD 위키 페이지](https://github.com/KartTrack-lap/Kartrider-game-analysis/wiki/12.-ERD)를 참고해주세요._ - ERD 구조 - ERD 구조 설명

# 5️⃣ 디렉토리 설명 _*디렉토리와 관련하여 자세한 내용을 확인하고 싶으시면, [디렉토리 위키 페이지](https://github.com/KartTrack-lap/Kartrider-game-analysis/wiki/13.-Github-%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC-%EC%84%A4%EB%AA%85)를 참고해주세요._ ```html ├── api │ ├── api-data-collecting-functions.ipynb │ ├── api-data-calculated-metrics-extraction.sql │ └── match-indicator-extraction.csv ├── data-analysis │ ├── data-analysis-regression-cnt_match.ipynb │ ├── data-analysis-regression-AVG_record.ipynb │ └── data-analysis-regression-difficulty.ipynb ├── data │ ├── match.csv │ ├── match_type.csv │ ├── track.csv │ ├── track_curve.csv │ ├── track_obstacle.csv │ ├── track_road.csv │ ├── track_shortcut.csv │ ├── track_straight.csv │ └── track_trigger.csv ├── raw-data │ ├── api-rawdata-singleplay.csv │ ├── scraping-rawdata-error-track.csv │ └── scraping-rawdata.csv ├── scraping │ ├── scraping-data-collecting-functions.ipynb │ ├── scraping-text-preprocessing.ipynb │ └── scraping.csv ├──survey │ ├── survey.csv │ └── survey-wordcloud.ipynb └── README.md ```

# 6️⃣ 분석 내용 ## 1. 분석 정의 - 유저가 ‘트랙을 선호한다’를 ‘트랙 사용 수가 많다’로 정의하였습니다. - 트랙 사용 수를 종속변수로 두고 어떠한 요소들이 영향을 주는지 알아보고자 합니다. --- ## 2. 독립변수 선정을 위한 설문조사 진행 _*설문조사와 관련하여 자세한 내용을 확인하고 싶으시면, [설문조사 위키 페이지](https://github.com/KartTrack-lap/Kartrider-game-analysis/wiki/02.-%EC%84%A4%EB%AC%B8%EC%A1%B0%EC%82%AC)를 참고해주세요._ - 독립변수를 설정하기 위해 크레이지레이싱 카트라이더 유저를 대상으로 설문조사 진행했습니다. - 설문조사는 10/19~10/25 동안 진행하였고, 총 120명의 응답을 확보하였습니다. 이를 통해 유저가 트랙을 선택할 때 중요하게 생각하는 요소를 파악해 워드클라우드로 표현했습니다. - 위의 워드클라우드를 반영하여 분석에 필요한 독립변수를 아래와 같이 선정하였습니다. --- ## 3. 데이터 수집 - 선정한 독립변수와 관련하여 데이터를 수집하기 위해 api, scraping, 트랙 데이터 자체수집을 진행하였습니다. - 각 데이터와 관련하여 자세한 내용을 확인하고 싶으시면, 아래 위키 페이지를 참고해주세요. - [api 위키 페이지](https://github.com/KartTrack-lap/Kartrider-game-analysis/wiki/03.-api) - [scraping 위키 페이지](https://github.com/KartTrack-lap/Kartrider-game-analysis/wiki/04.-scraping) - [트랙 데이터 자체수집 위키 페이지](https://github.com/KartTrack-lap/Kartrider-game-analysis/wiki/05.-%ED%8A%B8%EB%9E%99-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%9E%90%EC%B2%B4-%EC%88%98%EC%A7%91) - ‘*데이터간의 관계’ 관련 자세한 내용을 확인하고 싶으시면, 아래 위키 페이지를 참고해주세요.* - [ERD 위키 페이지](https://github.com/KartTrack-lap/Kartrider-game-analysis/wiki/12.-ERD) --- ## 4. 데이터 분석 ### 1) **종속변수가 ‘트랙 사용 수’인 회귀분석 진행.** _*종속변수가 `트랙 사용 수`인 회귀분석과 관련하여 자세한 내용을 확인하고 싶으시면, ['트랙 사용 수' 분석 위키 페이지](https://github.com/KartTrack-lap/Kartrider-game-analysis/wiki/06.-'%EC%A2%85%EC%86%8D-%EB%B3%80%EC%88%98-:-%ED%8A%B8%EB%9E%99-%EC%82%AC%EC%9A%A9-%EC%88%98'-%ED%9A%8C%EA%B7%80-%EB%B6%84%EC%84%9D)를 참고해주세요._ - 다음과 같은 분석 결과를 도출하였습니다. ![image](https://user-images.githubusercontent.com/45919197/204792155-03322240-a611-474d-990b-7a4db24e4ad4.png) - 특히 주목해야하는 점은 단일 회귀 분석으로 `트랙 사용 수` 를 21% 설명하는 `평균 주행시간`이 증가할수록 `트랙 사용 수`가 감소한다는 것입니다. 다시 말해, “평균 주행시간을 낮춰야 트랙을 많이 사용한다.” 는 것을 알 수 있습니다.
--- ### 2) **종속변수가 ‘평균 주행시간’인 회귀분석 진행** _*종속변수가 `평균 주행 시간` 인 회귀분석과 관련하여 자세한 내용을 확인하고 싶으시면, ['평균 주행 시간' 분석 위키 페이지](https://github.com/KartTrack-lap/Kartrider-game-analysis/wiki/07.-'%EC%A2%85%EC%86%8D-%EB%B3%80%EC%88%98-:-%ED%8F%89%EA%B7%A0-%EC%A3%BC%ED%96%89-%EC%8B%9C%EA%B0%84'-%ED%9A%8C%EA%B7%80-%EB%B6%84%EC%84%9D)를 참고해주세요._ - 다음과 같은 분석 결과를 도출하였습니다. ![image](https://user-images.githubusercontent.com/45919197/204791957-d66d70fc-3140-479d-a91f-da11254aacc8.png) - 특히 흥미로웠던 결과는 아래의 두가지 포인트입니다. * ✅ `직선 구간 비율` 이 높을수록 `평균 주행 시간`이 늘어납니다. **즉, “`평균 주행 시간`을 줄이기 위해서는 `직선 구간 비율`을 줄여야 함”을 알 수 있습니다.** * ✅ `내리막길 비율`이 높을수록 `평균 주행 시간`이 늘어납니다. **따라서 `평균 주행 시간`을 줄이기 위해서는 `내리막길 비율`을 줄여야 합니다.**
--- - 그러나 `직선 구간 비율`을 줄이고, `내리막길 비율`을 줄여 `평균 주행 시간`만을 낮추면 유저들이 그 트랙을 많이 이용할까요? **⇒ 아닙니다.** - 트랙을 플레이하는 유저들의 레벨이 다르기 때문에, 각 레벨별 유저들에게 재미를 제공할 수 있도록 트랙의 `난이도` 또한 고려하여야 합니다. 그렇다면 `난이도`에는 어떤 변수들이 영향을 줄까요? --- ### 3) **종속변수가 ‘난이도’인 회귀분석 진행** _*종속변수가 `난이도` 인 회귀분석과 관련하여 자세한 내용을 확인하고 싶으시면, ['난이도' 분석 위키 페이지](https://github.com/KartTrack-lap/Kartrider-game-analysis/wiki/08.-'%EC%A2%85%EC%86%8D-%EB%B3%80%EC%88%98-:-%EB%82%9C%EC%9D%B4%EB%8F%84'-%ED%9A%8C%EA%B7%80-%EB%B6%84%EC%84%9D)를 참고해주세요._ - 다음과 같은 분석 결과를 도출하였습니다. ![image](https://user-images.githubusercontent.com/45919197/204792534-18532c39-b38e-4ac3-b833-8c24ea825e99.png) - 트랙의 `난이도` 에는 `펜스 없는 구간 유무` , `내리막길 개수` , `전체 직선 개수` , `트랙 이동 개수` , `감속 트리거 개수` , `점프 트리거 개수` , `헤어핀 구간 개수`, `전체 곡선 구간 개수`, `전체 장애물 개수` 가 영향을 준다는 것을 알 수 있었습니다.
# 7️⃣ 분석 결과 및 활용 제안 ## 1. 분석 결과 정리 - 분석 결과를 정리하자면 크게 다음과 같습니다. * `트랙 사용 수` 에는 `난이도`, `평균 주행시간`, `테마` 가 영향을 미친다. * `평균 주행 시간` 에는 `내리막길 비율`, `예각 커브 개수` , `헤어핀 구간 개수`, `둔각 커브 개수`, `직선 구간 비율`, `펜스 구간 유무`, `고정 장애물 개수` 가 영향을 미친다. * `난이도` 에는 `내리막길 개수`, `전체 직선 개수`, `전체 곡선 개수`, `헤어핀 구간 개수`, `총 장애물 개수`, `펜스 구간 유무`, `트랙 이동 개수`, `감속 트리거`, `점프 트리거` 가 영향을 미친다. --- ## 2. 트랙 계산기와 트랙 제작 _*‘트랙 계산기 개발’과 관련 자세한 내용을 확인하고 싶으시면, [트랙 계산기 개발 위키 페이지](https://github.com/KartTrack-lap/Kartrider-game-analysis/wiki/09.-%ED%8A%B8%EB%9E%99-%EA%B3%84%EC%82%B0%EA%B8%B0-%EA%B0%9C%EB%B0%9C)를 참고해주세요._ _*‘트랙 제작’과 관련 자세한 내용을 확인하고 싶으시면, [트랙 제작 위키 페이지](https://github.com/KartTrack-lap/Kartrider-game-analysis/wiki/10.-%ED%8A%B8%EB%9E%99-%EC%A0%9C%EC%9E%91)를 참고해주세요._ - 분석 결과를 활용하여 트랙 계산기를 개발하였습니다. [트랙 계산기 링크](https://track-calculator.bubbleapps.io/version-test/calculator)로 접속하면 트랙 계산기를 이용할 수 있습니다. 트랙 계산기 화면은 아래와 같이 구성되어 있습니다. 트랙 구성요소들을 계산기에 넣으면 평균 주행시간과 난이도를 알 수 있습니다. - 트랙 계산기를 활용하여 ‘빌리지 테마’의 ‘난이도2’ 트랙을 제작하였습니다. 팀 ‘카트 타고 출근’이 제작한 트랙 **‘빌리지 해마의 여행’** 입니다.

# 8️⃣ 팀원 소개 및 컨택트 정보 _*팀원에 관련하여 자세한 내용을 확인하고 싶으시면 [팀원 소개 위키 페이지](https://github.com/KartTrack-lap/Kartrider-game-analysis/wiki/%EC%B9%B4%ED%8A%B8%ED%83%80%EA%B3%A0-%EC%B6%9C%EA%B7%BC-%ED%8C%80-%EC%86%8C%EA%B0%9C)를 참고해주세요._