사실 API를 찾아다니면서 스팀에만 국한되지 않은 게임 DB API를 찾았었어요.
주제를 바꿀지 잠시 고민했는데요, 종겜 스트리머 애청자로서 스팀이 주는 매력이 있다고 생각이 들어요.
때문에 앞으로도 스팀 게임을 기준으로 할 생각입니다.
현재 게임 스크래핑 전략은 스팀에서 추천해주는 게임을 기준으로 한다.
모든 게임을 다 가져오기엔 부담이 크고 AA 혹은 AAA급이 아니더라도 모두가 알 수 있는 게임을 대상으로 가져오고 싶었기 때문이다.
12월 15일부터 1월 20일까지 수집한 데이터에 따르면 아래와 같다.
Palworld
EA SPORTS FC™ 24
미제사건은 끝내야 하니까
Dominions 6 - Rise of the Pantokrator
워프레임: 가우스 프라임 액세스 - 웨폰 팩
다른 겨울의 우리들
용과 같이8
Anno 1800
철권 8
Roboquest
콜 오브 듀티®: 모던 워페어 II 2022 - 블랙셀 (시즌 05)
아머드 코어 VI 루비콘의 화염
Momodora: Moonlit Farewell
Firewatch
Escape the Backrooms
Call of Duty®: Vanguard Points
Raft
Steep™
Loop Queen-던전탈출 3 루프 퀸
Winter Memories
Project Zomboid
사이버펑크 2077: 팬텀 리버티
STAR WARS™ Empire at War - Gold Pack
ELDEN RING
Cyberpunk 2077
디아블로® IV
호그와트 레거시
Monster Hunter World: Iceborne
Rust
관리인의 엿보기
Football Manager 2024
Pioneers of Pagonia
Steam Deck
Call of Duty®: Modern Warfare® III
Red Dead Redemption 2
Lethal Company
Baldur's Gate 3
하우스 플리퍼 2
God of War
데이브 더 다이버
산나비
NieR:Automata™
Ready or Not
Party Animals
…이 데이터에 문제가 바로 보이는가?
게임을 매우 잘 아는 종겜 스트리머도 이 게임들은 다 모를 것 같다. ㅜㅜ
원래 유명한 게임을 기준으로 잡았는데, 스팀에서 추천해주는 게임이 항상 유명한 게임은 아닌것 같다. 좀 더 다른 접근 방식이 필요하다.
심지어 “관리인의 엿보기”같이 19세 게임도 포함되고 “STAR WARS™ Empire at War - Gold Pack”와 같이 게임이라고 하기 어려운 것도 포함된다.
게임의 수가 적은 건 또 다른 큰 문제다.
스팀 추천 게임으로 수집하는 전략은 아무래도 좋은 전략은 아닌것 같다.
현재 전략의 문제를 정리하겠다.
- 너무 마이너한 게임도 포함된다.
- 게임이 아닌 것들도 포함된다.
- 게임 수가 적다
그래서 새로운 전략을 짜야 한다.
유용한 데이터를 찾고 싶어서 스팀 api에 관한 대부분의 문서를 다 봤다.
그래서 전략을 다시 정했다.
일단, 모든 스팀 게임을 DB에 저장한다.
개수도 별로 안된다. 186701개밖에 안된다.
여기서 “다운로드 수”로 “인기도”를 평가할 생각이다.
다운로드 수 기준은 일단 100k가 넘는 것을 기준으로 한다.
또, 게임이여야 하고, mature가 아니여야 한다.
또, 신작 스크래핑은 기존 방법을 고수할 것인데, 위 조건에 맞아야 DB에 추가한다.
그리고 스크린샷도 고민해봐야 한다.
스크린샷은 퀴즈를 만들때 수집해도 충분하다.
따라서 데일리 퀴즈를 만들면서 수집하는 쪽으로 간다.
이때 스크린샷은 한번에 뭉쳐서 수집하지 말고 페이지를 오가며 수집하는 쪽으로 하자.
데일리 퀴즈에는 5개의 게임 퀴즈가 만들어지는데,
오래된 게임 2개 / 최신 게임 2개 / 랜덤 1개로 한다.
+아니면 장르로 해도 좋을 것 같다.
따라서 DB 에는 다음과 같은 필드가 추가로 필요하다.
대략적인 다운로드 수발매일장르
gamalytic.com의 api가 너무 좋아서 새로운 전략을 취했다.
먼저 gamalytic에서 모든 게임 데이터를 가져와서 csv 파일로 저장했다.
그 후 오랜만에 ipynb파일에서 어떤 게임을 선택할지 찾아보았다.
그런데 어떠한 경향을 발견했다.
게임의 수익이 높으면 인기가 있다.
유료 게임의 경우, 수익이 높으면 제품 자체를 많이 팔았다는 것이고 무료의 경우에는 유저들이 각종 아이템들을 사준다는 의미이기 때문에 수익을 잡는게 좋았다.
최소 10M$를 기점으로 게임을 선별했다.
너무 많은 금액인것 같지만 이래도 800개나 된다.
또, 차후에 쓸 tags에 성과 관련된 성인 태그를 찾아서 필터링했다.
이후 필터링된 데이터를 다시 csv파일로 떨군 뒤, RDS에 저장했다.
이런 과정을 세개의 스크립트를 가지고 아주 간단하게 구현했다.
결국 앞서 말했던 다운로드 수는 들어가지 않았고, Game 테이블에는 발매일과 장르만 추가되었다.
다음은 이 게임 정보를 가지고 스크린샷을 가져온 뒤, 데일리 퀴즈를 매일 단위로 만들어볼 생각이다.
'프로그래밍 > 스팀 게임 퀴즈' 카테고리의 다른 글
#22 백엔드와 프론트엔드를 배포했다! (0) | 2024.02.18 |
---|---|
#20 데일리 퀴즈 생성 로직 방식에 대해서.. (0) | 2024.01.29 |
#18 AWS 람다 - 스크래핑한 데이터를 DB에 저장하기 (1) | 2024.01.20 |
#17 fastapi-users를 써서 OAuth2를 적용해보았다! (0) | 2024.01.18 |
#16 Fastapi-users의 OAuth2 사용시 생기는 MissingGreenlet 오류 (0) | 2024.01.16 |