SYDESYDE
SYDESYDE
  • 피드
  • 쇼케이스
  • 블로그
  • 모임
SYDESYDE© 2026 SYDE. All rights reserved.
SYDE 소개문의하기
Kakao
SYDE 오픈채팅
Instagram
Instagram
Threads
Threads
커뮤니티 가이드라인협업문의이용약관개인정보처리방침
커뮤니티 가이드라인협업문의이용약관개인정보처리방침

© 2026 SYDE. All rights reserved.

Dash를 30번 했다고 ‘Dash형 플레이어’일까? — UNSPECIFIED #2

Dash를 30번 했다고 ‘Dash형 플레이어’일까? — UNSPECIFIED #2

mmustardoo· 1일 전· 기술
목차
  • Dash를 30번 했다는 건 별로 많은 걸 말해주지 않는다
  • 그런데 ‘게임에서 일어난 일’과 ‘플레이어가 한 일’은 달랐다
  • 버튼을 눌렀다고 행동한 것도 아니다
  • 1번 중 1번과 10번 중 8번
  • 여기까지는 LLM이 아무것도 하지 않는다
  • 그래서 ‘습관’은 버튼 횟수가 아니게 됐다

목차

  • Dash를 30번 했다는 건 별로 많은 걸 말해주지 않는다
  • 그런데 ‘게임에서 일어난 일’과 ‘플레이어가 한 일’은 달랐다
  • 버튼을 눌렀다고 행동한 것도 아니다
  • 1번 중 1번과 10번 중 8번
  • 여기까지는 LLM이 아무것도 하지 않는다
  • 그래서 ‘습관’은 버튼 횟수가 아니게 됐다

지난 글에서는 플레이어가 싸우는 방식을 게임이 읽고, 그 행동을 새로운 능력으로 되돌려주는 게임을 만들고 있다고 이야기했다.

그런데 막상 구현을 시작하니 생각보다 먼저 답해야 하는 질문이 있었다.

무엇을 플레이어의 ‘습관’이라고 부를 수 있을까?

처음에는 간단할 줄 알았다.

공격을 몇 번 했는지,
대시를 몇 번 했는지,
물체를 몇 번 던졌는지 기록하면 어느 정도 플레이 스타일이 보일 것 같았다.

하지만 실제 전투에 붙여보니 그렇지 않았다.


Dash를 30번 했다는 건 별로 많은 걸 말해주지 않는다

한 플레이어가 전투 중 Dash를 30번 사용했다고 해보자.

그러면 이 사람을 ‘Dash를 적극적으로 사용하는 플레이어’라고 볼 수 있을까?

꼭 그렇지는 않다.

단순히 이동할 때 Dash를 많이 사용했을 수도 있고, 적의 공격을 피할 때만 사용했을 수도 있다.

반대로 Dash는 10번밖에 사용하지 않았지만 매번 이런 식으로 싸웠을 수도 있다.

공격 → 대시 → 다시 공격

이쪽이 오히려 훨씬 뚜렷한 습관처럼 보인다.

같은 대시라도

적의 공격 → 대시로 회피 → 반격

과는 의미가 전혀 다르다.

결국 알고 싶었던 건 버튼을 얼마나 많이 눌렀느냐가 아니었다.

어떤 행동을, 어떤 상황에서, 무엇과 연결해서 반복했는가.

그래서 UNSPECIFIED에서는 단순한 행동 횟수보다 행동 사이의 관계를 보기 시작했다.

공격하다가 같은 물체를 던지는지.

물체를 던진 뒤 곧바로 다른 물체를 집는지.

대시한 뒤 공격을 이어가는지.

한 적을 공격한 뒤 별개의 공격으로 다른 적을 노리는지.

이렇게 반복해서 나타나는 작은 행동 패턴을 프로젝트에서는 Motif라고 부르고 있다.


그런데 ‘게임에서 일어난 일’과 ‘플레이어가 한 일’은 달랐다

행동을 기록하기 시작하니 또 다른 문제가 생겼다.

예를 들어 폭발하는 물체를 하나 던졌다고 해보자.

폭발에 적 세 명이 맞았다.

게임 입장에서는 세 번의 Hit가 발생했다.

그렇다면 플레이어는 공격을 세 번 한 걸까?

당연히 아니다.

플레이어가 직접 한 행동은 물체를 한 번 던진 것이다.

세 번의 Hit는 그 행동으로 인해 발생한 결과다.

이 구분을 하지 않으면 게임에 연쇄 효과가 많아질수록 기록이 이상해진다.

플레이어는 버튼을 한 번 눌렀는데, 시스템은 그 사람을 갑자기 여러 번 공격한 플레이어처럼 이해할 수 있다.

그래서 구현하면서 행동을 크게 나눠서 보기 시작했다.

  • 플레이어가 직접 선택한 행동

  • 그 행동으로 발생한 결과

  • 그 결과에서 다시 파생된 효과

한 번의 투척에서 폭발이 발생하고, 그 폭발이 여러 적을 맞히더라도 원래 시작점은 하나다.

반대로 플레이어가 튕겨 돌아온 물체를 직접 받아 다시 던졌다면, 그건 새로운 선택이므로 새로운 행동이 된다.

게임에서 일어난 사건과 플레이어가 선택한 행동은 같지 않았다.

이 문장을 구분하지 못하면 이후의 분석도 전부 흔들렸다.


버튼을 눌렀다고 행동한 것도 아니다

반대의 경우도 있었다.

플레이어가 버튼을 눌렀다고 해서 항상 행동이 발생하는 건 아니다.

대시가 아직 쿨다운인데 대시 버튼을 눌렀을 수도 있다.

주변에 아무 물체도 없는데 줍기 버튼을 눌렀을 수도 있다.

공격할 수 없는 상태에서 공격을 시도했을 수도 있다.

이걸 전부 플레이어의 행동으로 기록하면 실제 플레이와 기록 사이에 차이가 생긴다.

그래서 현재는 입력 자체를 행동으로 취급하지 않는다.

전투 시스템에서 실제로 승인되고, 게임 안에서 확정된 행동만 기록한다.

이 부분은 처음에는 꽤 사소하게 느껴졌다.

그런데 나중에 이 데이터를 AI가 읽게 된다고 생각하니 오히려 중요해졌다.

AI가 이상한 결론을 내렸을 때 흔히 모델부터 의심하기 쉽다.

하지만 모델이 아무리 좋아도 입력 데이터가 플레이어 행동을 잘못 표현하고 있다면 제대로 된 결론을 내릴 수 없다.

AI에게 플레이어를 이해시키기 전에, 게임부터 플레이어에 대해 거짓말하지 않아야 했다.


1번 중 1번과 10번 중 8번

행동 관계를 찾기 시작한 뒤에도 문제가 하나 더 있었다.

예를 들어 두 플레이어가 있다고 해보자.

플레이어 A
1번의 기회 중 1번 성공
→ 100%

플레이어 B
10번의 기회 중 8번 성공
→ 80%

비율만 보면 A가 더 높다.

하지만 둘 중 어느 쪽을 ‘습관’이라고 부르기 쉬울까?

아마 B에 가깝다.

한 번의 우연한 행동과, 여러 번 기회가 있었는데 계속 같은 선택을 한 것은 다르기 때문이다.

그래서 Motif에는 성공 횟수만 쌓지 않는다.

그 행동을 할 수 있었던 기회가 몇 번 있었는지도 함께 본다.

예를 들어 ‘투척 후 다른 물체를 집는다’는 패턴이라면, 투척 자체가 새로운 기회가 된다.

그 뒤 일정 시간 안에 물체를 다시 획득하면 성공으로 본다.

시간이 너무 오래 지나면 같은 행동 관계로 보지 않는다.

즉 단순히

Throw 20회
Pickup 15회

를 보는 게 아니라,

Throw
  ↓ 일정 시간 안
Pickup

이라는 관계가 실제로 얼마나 반복됐는지를 보는 식이다.

이렇게 해야 우연히 한두 번 나온 행동과 반복된 습관을 조금이나마 구분할 수 있었다.


여기까지는 LLM이 아무것도 하지 않는다

이 부분은 프로젝트를 만들면서 꽤 중요하게 정한 부분이다.

현재 Motif를 계산하는 과정에는 LLM이 들어가지 않는다.

전투 로그 전체를 모델에게 넘긴 뒤

“이 플레이어의 플레이 스타일을 분석해줘.”

라고 하지 않는다.

어떤 행동이 실제로 일어났는지,

어떤 행동과 어떤 행동이 이어졌는지,

그 관계를 시도할 기회가 몇 번 있었고 몇 번 반복됐는지.

이런 사실은 게임 코드가 먼저 계산한다.

대략적인 흐름은 이렇다.

실제 전투
   ↓
확정된 행동과 결과
   ↓
반복되는 행동 관계
   ↓
Motif

LLM이 들어갈 자리는 그 이후다.

사실을 만드는 것과, 그 사실을 해석하는 일을 분리하고 싶었다.


그래서 ‘습관’은 버튼 횟수가 아니게 됐다

지금 단계에서 내가 습관이라고 부르는 건 단순히 많이 사용한 행동이 아니다.

같은 상황에서 반복해서 나타나는 행동 관계에 조금 더 가깝다.

물체를 들면 자주 공격한 뒤 던지는 사람.

던지고 나면 바로 새로운 물체를 찾는 사람.

대시를 회피보다 공격 연결에 자주 사용하는 사람.

한 적에게 오래 머무르기보다 여러 적 사이를 옮겨 다니는 사람.

이런 차이가 쌓이면 같은 게임을 해도 서로 다른 플레이 기록이 만들어진다.

그리고 여기서부터 처음 만들고 싶었던 문제에 조금 가까워졌다.

게임은 이제 어느 정도

“이 플레이어가 이런 행동을 반복하고 있다.”

라고 말할 수 있게 됐다.

하지만 여기까지만 만들면 결국 플레이 스타일 분석기다.

내가 만들고 싶은 건 분석 결과를 보여주는 게임이 아니었다.

게임이 플레이어의 행동을 알아챘다면, 그 사실이 실제 전투에도 영향을 줘야 한다.

그래서 다음 질문은 자연스럽게 정해졌다.

이 행동을 어떻게 실제로 사용할 수 있는 스킬로 바꿀 것인가?

다음 글에서는 AI에게 스킬을 만들게 하려다가, 오히려 먼저 게임이 스킬을 표현할 수 있는 ‘언어’부터 만들게 된 이야기를 적어보려고 한다.

  • #게임개발
  • #ai
  • #llm
13
m
mustardoo

mustardoo님의 다른 글

  • AI 게임을 만들겠다고 시작했는데, 여기서 멈추기로 했다 — UNSPECIFIED #완18시간 전
  • Local LLM을 게임에 실제로 넣어봤더니 — UNSPECIFIED #418시간 전
  • AI에게 스킬을 만들게 하려다 게임의 언어부터 만들었다 — UNSPECIFIED #31일 전

댓글 0

My avatar