티스토리 뷰
개요
지난해를 돌아보면서 개인 프로젝트를 하나도 하지 않아서 아쉬웠던 기억이 남았는데, 그 때 이후로 어떤 개인프로젝트를 하면 참 좋을까 생각을 해보았다.
개인프로젝트를 해야겠다는 생각은 많이 했지만, 항상 마무리를 짓는데 성공하지 못했는데 왜 그런지 생각을 먼저 해보기로 했다.
정답이 뭔지는 모르지만, 핑계들은 다양했다.
- 현업에 종사하면서 시간을 내기가 어려웠다.(
운동도 하고 유튜브 볼 시간은 시간아님?) - 아 생각보다 잘 안되는데.. 그만 할까..?
- 이거 하면 뭐가 되는데?
그래서 위의 문제를 해결하기 위해서 다양한 프로젝트를 고민하다가 이번에는 내가 풀고 싶은 문제(기술을 위한 기술이 아닌)를 선정해보려고 했다.
첫 회사 대표님과의 면접에서 목표가 뭐에요 했을 때, `저는 가상세계에서 똑똑한 agent를 만드는걸 하고 싶어요`라고 답변했던 것 처럼 그런 agent를 만들고 싶다는 열망이 있었다.
그리고 작년부터 한해동안 DIYA라는 동아리에 들어가서 강화학습에 대한 기초 지식들을 쌓았고
예전부터 즐기던 게임이지만, 오랜만에 Slay the spire라는 게임을 했는데 너무 재밌어서 최고난이도를 열심히 깨기 위해서 시간을 투자했다.(확실히 시간은 있음 ㅋㅋ)
그래서 Slay the spire에서 게임을 하는데 도와주는 봇을 만들어보자고 결정했다.
그래서 Slay the spire가 무슨 게임인데?
나무위키의 설명을 가져오면
2인 개발사인 Mega Crit Games에서 제작한 로그라이크식 덱 빌딩 카드 게임. 국내에선 흔히 슬더스로 부른다. 2017년 11월 15일, 스팀 얼리 액세스로 등록되었다. 한국 시간 기준 2019년 1월 24일 1시에 정식 출시하였다.
게임을 플레이하는데 조금 더 상세한 설명을 가져오자면
몬스터와 대전형 카드 게임 형식의 전투를 펼치고 스테이지를 클리어하여 최종 보스를 물리치는 것을 목표로 하는 게임이다. 전투로 이루어진 스테이지 중간 중간에 상점이나 랜덤 이벤트, 엘리트 몬스터 등이 배치되어 있고 플레이어가 루트를 선택해서 진행할 수 있다. 매 스테이지 끝에는 보스가 있으며, 보스를 물리치면 3종의 유물 중 1개를 얻으면서 체력이 회복된다.
도미니언에서 유발된 게임으로 룰 또한 비슷하다. 카드를 사용하기 위한 비용(코스트)에 해당되는 '에너지'는 매 턴 기본 3개가 주어진다. 매 턴이 끝날 때마다 손에 있는 카드를 모두 버리고 다시 5장을 뽑고, 덱을 소진하면 버린 카드 더미를 다시 셔플해 뽑을 카드 더미로 돌리는 순환형 구조이다.
...
한 번 시드가 생성된 게임은 난수가 고정되어 드로우 순서, 획득 카드나 물약이나 유물, 등장 몬스터 등이 모두 정해진다. 이는 게임을 중단했다가 다시 시작해도 마찬가지이며, 그래서 죽을 것 같은 전투에서 게임을 중단했다가 다시 시작하여 플레이를 다르게 하면 질 것 같은 전투도 이기는 것이 가능하다.[2]
그러나 드로우빨이 존재하는 카드 게임에다 장르 태생이 '로그라이크'인 만큼 운적인 요소가 아주 크게 작용하는 편으로, 특히 랜덤하게 획득되는 유물에 따라 덱의 효율이 요동치는 데다 필요 없는 카드를 제거하는 수단이 상당히 제한적이기 때문에 덱 빌딩과 드로우에 운이 많이 따른다. 따라서 운적인 요소를 최대한 줄여나가기 위해 가능한 범위 안에서 덱 압축을 실시하게 된다.
...
기본적으로는 3막을 깨면 플레이는 그대로 종료된다. 각 회차의 플레이 타임은 길지는 않은 편으로, 게임에 어느 정도 숙련돼서 어떤 카드로 어떤 덱을 구성할지 아는 플레이어라면 별다른 큰일이 없는 이상 3막 보스까지 가는 데 30분 ~ 1시간 이면 충분하다. 심지어 20분 내에 3막을 클리어하는 스피드런 도전과제도 있을 정도. 짧기는 하나 누적 점수에 따라 카드와 유물이 단계별로 해금되고, 난이도가 점점 어려워지는 승천 모드나 도전 과제까지 있어 반복 플레이의 동기는 충분하다는 평가를 듣고 있다. 일일 도전이나 베타버전[4]에 무한 모드가 추가되는 등 컨텐츠가 꾸준히 추가되고 있다. 그리고 2018년 11월 16일 50번째 치 'The Final Act'로 최종 보스와 엔딩이 추가되었다.
조금 더 이해하고 싶은 사람이 있을까봐 아래 영상을 공유해본다.
이거 히트다라고 생각한 포인트

- 스팀에서 압도적으로 긍정적인 평가를 받고 있다. 내 플레이 경험도 그렇고, 플레이한 사람들 대부분은 Slay the spire를 매우 재밌게 즐겼다.
- 카드게임이기도 하고, 컴퓨터와 대결하기 때문에 선택에 마음껏 시간을 사용할 수 있다. 즉, 최선의 선택을 하는데 있어 피지컬이 필요하지 않기 때문에 agent를 만들면 사용하고자 하는 사람들이 도움을 받을 수 있을것이다.
- 이게임에서는 다른사람의 환경을 고대로 체험해볼 수 있는 시드 공유 기능이 있다! 커뮤니티에서는 너무 좋은 시드, 절대 못깨는 시드등등으로 공유가 되고 있는데, 이런 논란에 어떤 방식이든 추가가 된다면 재밌을거라고 생각했다.
- 이 게임을 매우 즐기고 있는 사람중에 엄청난 인플루언서인 쭈펄님이 있다. 1000시간넘게 하셨다는데 이런 기능을 누군가 만든다면 체험을 안해보고는 못참지 않을까..? (목표는 쭈펄님 방송에서 소개가 되는것?)

엔지니어링 적으로 해볼만 하다고 생각한 포인트
- 게임을 할 때 비쥬얼적인 요소가 존재하지만, 게임의 선택과 진행에는 영향을 끼치지 않는다. 학습할 때 이미지를 처리하지 않아도 되는것이 개인 프로젝트로 하기에는 덜 부담스럽다.
- 게임 자체가 여러 환경을 지원하는것 같다, mac window에서도 할 수 있는것 같은데. 그렇다면 ubuntu도 가능할 수도 있지 않을까? 이게 가능하면 저렴한 서버에서 쉽게 데이터를 모아볼 수 있을 것 같다.
- 선택지가 많기는 하지만, 요새 나오는 RL 논문들의 예시(Minecraft에서 다이아몬드 캐기..)보다는 훨씬 선택지가 적기도 하니 개인 프로젝트로는 나쁘지 않은 것 같다!
- 아마 안해본 영역에서의 삽질을 많이 하게 될 것 같은데, 요걸 잘하다보면 경험이 쌓이면서 나에게도 좋을 것 같다!
혹시 다른 사람이..?
누군가 이미 이걸 RL으로 풀었다면 아쉬울 것 같다. 가볍게 검색해보니 나온게 있는것 같다.
[P] About a ML agent for the game Slay the Spire that I've been making
Hi. I've recently been working on making a setup where I would be able to train and test a machine learning agent for a TCG roguelike game called...
www.reddit.com
해당 사람글을 파보니 결과물은 없는 것 같아서 일단은 조금 더 시간을 투자해보기로 생각중이다.
일단, 이걸 생각해낸걸로 뿌듯하니 다음 시간에 다른 사람들 작업을 알아보기로 다짐하고 마무리하자..ㅎㅎ
오늘의 결론
이거 히트일것 같은데?
'개발 > 프로젝트' 카테고리의 다른 글
[Rust] - python에서 rust로 만든 코드 실행해서 속도 높여보기 (0) | 2023.06.25 |
---|---|
[slay the spire에 진심인편] 3. 빠르게 실패하기 (0) | 2023.01.23 |
[slay the spire에 진심인편] 2. 어디로 가야하오 (부제: 이러면 진짜 하게 될수도?) (0) | 2023.01.15 |
- Total
- Today
- Yesterday
- distinct subsequences
- scramble string
- binary tree maximum path sum
- word ladder 2
- hard mode challenge
- maximum rectangle
- 글또 10기
- Python
- sudoku solver
- n queens 2
- palindrome partitioning 2
- leetcode 매일 풀기
- slay the spire에 진심인편
- leetcode 매일풀기
- substring with concatenation of all words
- wildcard matching
- permutation sequence
- 가상면접 사례로 배우는 대규모 시스템 설계
- 회고
- leetcode
- otel
- first missing positive
- longest valid parentheses
- 개발자 글쓰기
- text justification
- best time to buy and sell stock 3
- 알고리즘
- mlse
- valid number
- datalakehouse
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |