SlideShare uma empresa Scribd logo
1 de 29
RTS 게임의 명령 큐잉을
    위한 기반 구조



      GPG스터디(2012.1.14)
        돼지고기(구경원)
들어가기

RTS 게임
사용자는 마우스를 이용.
개별 또는 그룹단위로 여러 가지 명령을 부여.
새롭게 개선된 인터페이스 설계의 발전.
가장 발전된 설계들 중 하나 “명령 큐잉”
들어가기
들어가기
들어가기
들어가기
RTS 명령들

    적 유닛 또는 건물을 공격
건물 또는 무기를 건설
  한 지점으로 이동
     한 지점 주변을 순찰
       자원(식량, 원자재, 에너지) 수집
     위치 지키기
RTS 명령들

정지
     자폭
        스킬 연구
 유닛 또는 건물 수리
유닛 회수
     유닛 또는 건물 보호
명령 큐잉

  이동

RTS 게임 도중 많은 시간을 소비한다.
효율적 이동

경로와 웨이포인트를 지정 해주어야 한다.
웨이포인트

해당 유닛의 명령 큐에 저장된 일련의 이동 명령.
명령 큐잉

특별한 버튼

Shift키 등을 누른 상태에서 각 웨이포인트를
클릭 함으로서 이동 명령들을 큐에 넣을 수
있다.

특정 명령들을 큐에 넣어서 대기상태로 만드
는 것을 “큐잉” 이라고 한다.
명령 큐잉

웨이포인트를 큐에 넣을 수 있다면??

다른 명령들도 얼마든지 큐에 넣어서 차례대
로 실행되게 만들 수 있다.

적 공격 + 벽 수리 + 터렛 건설 연속적인 명
령을 내려두고 플레이어는 다른 곳으로 가서
전투를 한다.
명령 큐잉

기본적인 아이디어

모든 명령들을 하나의 과제이다.

유닛의 두뇌는 그러한 과제들의 큐 이다.

과제가 끝나면 그 과제는 큐에서 제거된다.

자신의 기본 과제를 수행한다.
명령 큐잉

유닛 두뇌 큐
명령 큐잉
직관적인 표현

유닛의 과제들을 볼 수 있도록 해야 한다
이동 지점들을 선으로 긋는다.
건설 명령을 내린 곳에 아이콘을 표시한다.
눈에 보이기 때문에 사용자는 추가판단을 하
기 쉽다.
순환 명령들

순찰은
나의 임무




 계속 반복되는 일련의 명령
순환 명령들

  유닛에게 어떤 지점까지 순찰할 것을 명령한다.

 현재 위치를 기억해 두고 어떤 지점으로 이동한다.
그 지점으로 이동한 후 기억해 둔 원래의 위치로 돌아간다.

        이러한 과정이 반복된다.

  중간에 적을 발견하면 순찰명령은 취소된다.
순환 명령들

유닛의 두뇌 큐에 웨이포인트 방식과 결합한
다면 둘 이상의 지역도 순찰 가능 한다.
첫 번째 순찰 지점의 큐잉
   순찰이란 두 지점 사이의 왕복이다.

처음으로 순찰 명령을 클릭.

두 개의 이동명령이 추가.
첫 번째 순찰 지점의 큐잉
순찰 명령은 하나의 이동명령 이다
순찰명령이 순환된다는 점이 다르다
 간단한 플래그로 설정 가능하다
추가적인 명령의 큐잉

추가적인 순찰 명령을 어디에 넣어야 할 것인가?

    순찰이 시작되면 원래의 순찰 지점들은 사라진다.

   마지막으로 추가된 순찰 지점이 어떤 것인지 모른다.

     새 순찰 과제에 마지막 플래그를 설정한다
추가적인 명령의 큐잉
“마지막” 플래그 추가
추가적인 명령의 큐잉

순찰 명령 이외의 명령을 큐에 넣을 때의 어려움.

  플레이어는 유닛이 순찰지점에 도착하자 마
  자 새 명령이 실행되기를 기다린다.
  순환 이라는 개념은 명령 큐잉의 구현에 여러
  가지 어려움들을 발생 시키는 원인이 된다.
추가적인 명령의 큐잉
추가적인 명령의 큐잉

게임에 의해 플레이어의 머리 속 모형이 바뀔
 수 있다.

플레이어가 어떤 명령을 내렸을 때 즉각적인
 피드백을 제공해야 한다.

플레이어는 명령에 대한 피드백을 통해서 게
 임 인터페이스에 익숙해진다.
결론

• 명령 큐잉은 RTS 게임에서 빠질 수 없는 기
  능이 되었다.

• 두뇌 큐 기반구조를 사용하면 명령 큐잉 시스템
  에 필요한 많은 복잡성을 해소할 수 있다.

• 과제를 자신의 작업에 대한 수행 방식을 스스로 알고
  있는 AI시스템으로 캡슐화 하는 것도 가능하다.
Q&A
END…….

Mais conteúdo relacionado

Mais procurados

120629 fsm in unity3d skyseer
120629 fsm in unity3d skyseer120629 fsm in unity3d skyseer
120629 fsm in unity3d skyseerChan-hyun Park
 
LockFree Algorithm
LockFree AlgorithmLockFree Algorithm
LockFree AlgorithmMerry Merry
 
가상화와 보안 발표자료
가상화와 보안 발표자료가상화와 보안 발표자료
가상화와 보안 발표자료hanbeom Park
 
Concurrency in action - chapter 5
Concurrency in action - chapter 5Concurrency in action - chapter 5
Concurrency in action - chapter 5JinWoo Lee
 
Direct x 11 입문
Direct x 11 입문Direct x 11 입문
Direct x 11 입문Jin Woo Lee
 
안드로이드 멀티스레딩 입문 송형주
안드로이드 멀티스레딩 입문 송형주안드로이드 멀티스레딩 입문 송형주
안드로이드 멀티스레딩 입문 송형주iamhjoo (송형주)
 
[2013 CodeEngn Conference 08] pwn3r - Pwning multiplayer game - case Starcraf...
[2013 CodeEngn Conference 08] pwn3r - Pwning multiplayer game - case Starcraf...[2013 CodeEngn Conference 08] pwn3r - Pwning multiplayer game - case Starcraf...
[2013 CodeEngn Conference 08] pwn3r - Pwning multiplayer game - case Starcraf...GangSeok Lee
 
GCGC- CGCII 서버 엔진에 적용된 기술 (2) - Perfornance
GCGC- CGCII 서버 엔진에 적용된 기술 (2) - PerfornanceGCGC- CGCII 서버 엔진에 적용된 기술 (2) - Perfornance
GCGC- CGCII 서버 엔진에 적용된 기술 (2) - Perfornance상현 조
 

Mais procurados (10)

120629 fsm in unity3d skyseer
120629 fsm in unity3d skyseer120629 fsm in unity3d skyseer
120629 fsm in unity3d skyseer
 
LockFree Algorithm
LockFree AlgorithmLockFree Algorithm
LockFree Algorithm
 
가상화와 보안 발표자료
가상화와 보안 발표자료가상화와 보안 발표자료
가상화와 보안 발표자료
 
Concurrency in action - chapter 5
Concurrency in action - chapter 5Concurrency in action - chapter 5
Concurrency in action - chapter 5
 
Direct x 11 입문
Direct x 11 입문Direct x 11 입문
Direct x 11 입문
 
Java term project
Java term projectJava term project
Java term project
 
안드로이드 멀티스레딩 입문 송형주
안드로이드 멀티스레딩 입문 송형주안드로이드 멀티스레딩 입문 송형주
안드로이드 멀티스레딩 입문 송형주
 
[2013 CodeEngn Conference 08] pwn3r - Pwning multiplayer game - case Starcraf...
[2013 CodeEngn Conference 08] pwn3r - Pwning multiplayer game - case Starcraf...[2013 CodeEngn Conference 08] pwn3r - Pwning multiplayer game - case Starcraf...
[2013 CodeEngn Conference 08] pwn3r - Pwning multiplayer game - case Starcraf...
 
GCGC- CGCII 서버 엔진에 적용된 기술 (2) - Perfornance
GCGC- CGCII 서버 엔진에 적용된 기술 (2) - PerfornanceGCGC- CGCII 서버 엔진에 적용된 기술 (2) - Perfornance
GCGC- CGCII 서버 엔진에 적용된 기술 (2) - Perfornance
 
Rough v 0.1
Rough v 0.1Rough v 0.1
Rough v 0.1
 

Destaque

Flappy bird 만들기 세미나 자료(유니티 4.3버전)
Flappy bird 만들기 세미나 자료(유니티 4.3버전)Flappy bird 만들기 세미나 자료(유니티 4.3버전)
Flappy bird 만들기 세미나 자료(유니티 4.3버전)Changwon National University
 
[Gpg2권 구경원] 3.1 ai전략
[Gpg2권 구경원] 3.1 ai전략[Gpg2권 구경원] 3.1 ai전략
[Gpg2권 구경원] 3.1 ai전략KyeongWon Koo
 
제5장 스태틱 메쉬
제5장 스태틱 메쉬제5장 스태틱 메쉬
제5장 스태틱 메쉬KyeongWon Koo
 
[Gpg2권]1.1 c++ 게임의 최적화
[Gpg2권]1.1 c++ 게임의 최적화[Gpg2권]1.1 c++ 게임의 최적화
[Gpg2권]1.1 c++ 게임의 최적화KyeongWon Koo
 
[페차쿠차] 3월 19일 아이디어에 미쳐보자!
[페차쿠차] 3월 19일 아이디어에 미쳐보자![페차쿠차] 3월 19일 아이디어에 미쳐보자!
[페차쿠차] 3월 19일 아이디어에 미쳐보자!KyeongWon Koo
 
[Gpg2권]4.7 인쇄해상도의 스크린샷 만들기
[Gpg2권]4.7 인쇄해상도의 스크린샷 만들기[Gpg2권]4.7 인쇄해상도의 스크린샷 만들기
[Gpg2권]4.7 인쇄해상도의 스크린샷 만들기KyeongWon Koo
 
선형연립방정식 가우스소거법
선형연립방정식 가우스소거법선형연립방정식 가우스소거법
선형연립방정식 가우스소거법KyeongWon Koo
 
유니티로 flappy brid 만들기(Unity 5.1)
유니티로 flappy brid 만들기(Unity 5.1)유니티로 flappy brid 만들기(Unity 5.1)
유니티로 flappy brid 만들기(Unity 5.1)Changwon National University
 
역동적인 애니메이션 Ik
역동적인 애니메이션 Ik역동적인 애니메이션 Ik
역동적인 애니메이션 IkKyeongWon Koo
 
[0903 구경원] recast 네비메쉬
[0903 구경원] recast 네비메쉬[0903 구경원] recast 네비메쉬
[0903 구경원] recast 네비메쉬KyeongWon Koo
 
[0122 구경원]게임에서의 충돌처리
[0122 구경원]게임에서의 충돌처리[0122 구경원]게임에서의 충돌처리
[0122 구경원]게임에서의 충돌처리KyeongWon Koo
 
[0618구경원]초보 게임프로그래머를 위한 c++
[0618구경원]초보 게임프로그래머를 위한 c++[0618구경원]초보 게임프로그래머를 위한 c++
[0618구경원]초보 게임프로그래머를 위한 c++KyeongWon Koo
 
게임제작개론 : #6 게임 시스템 구조에 대한 이해
게임제작개론 : #6 게임 시스템 구조에 대한 이해게임제작개론 : #6 게임 시스템 구조에 대한 이해
게임제작개론 : #6 게임 시스템 구조에 대한 이해Seungmo Koo
 
[0204 구경원] sse 병렬 프로그래밍
[0204 구경원] sse 병렬 프로그래밍[0204 구경원] sse 병렬 프로그래밍
[0204 구경원] sse 병렬 프로그래밍KyeongWon Koo
 
게임 프로그래밍 기초 공부법
게임 프로그래밍 기초 공부법게임 프로그래밍 기초 공부법
게임 프로그래밍 기초 공부법Chris Ohk
 
빌드 속도를 올려보자
빌드 속도를 올려보자빌드 속도를 올려보자
빌드 속도를 올려보자KyeongWon Koo
 

Destaque (17)

Flappy bird 만들기 세미나 자료(유니티 4.3버전)
Flappy bird 만들기 세미나 자료(유니티 4.3버전)Flappy bird 만들기 세미나 자료(유니티 4.3버전)
Flappy bird 만들기 세미나 자료(유니티 4.3버전)
 
[Gpg2권 구경원] 3.1 ai전략
[Gpg2권 구경원] 3.1 ai전략[Gpg2권 구경원] 3.1 ai전략
[Gpg2권 구경원] 3.1 ai전략
 
제5장 스태틱 메쉬
제5장 스태틱 메쉬제5장 스태틱 메쉬
제5장 스태틱 메쉬
 
[데브루키] FOG
[데브루키] FOG[데브루키] FOG
[데브루키] FOG
 
[Gpg2권]1.1 c++ 게임의 최적화
[Gpg2권]1.1 c++ 게임의 최적화[Gpg2권]1.1 c++ 게임의 최적화
[Gpg2권]1.1 c++ 게임의 최적화
 
[페차쿠차] 3월 19일 아이디어에 미쳐보자!
[페차쿠차] 3월 19일 아이디어에 미쳐보자![페차쿠차] 3월 19일 아이디어에 미쳐보자!
[페차쿠차] 3월 19일 아이디어에 미쳐보자!
 
[Gpg2권]4.7 인쇄해상도의 스크린샷 만들기
[Gpg2권]4.7 인쇄해상도의 스크린샷 만들기[Gpg2권]4.7 인쇄해상도의 스크린샷 만들기
[Gpg2권]4.7 인쇄해상도의 스크린샷 만들기
 
선형연립방정식 가우스소거법
선형연립방정식 가우스소거법선형연립방정식 가우스소거법
선형연립방정식 가우스소거법
 
유니티로 flappy brid 만들기(Unity 5.1)
유니티로 flappy brid 만들기(Unity 5.1)유니티로 flappy brid 만들기(Unity 5.1)
유니티로 flappy brid 만들기(Unity 5.1)
 
역동적인 애니메이션 Ik
역동적인 애니메이션 Ik역동적인 애니메이션 Ik
역동적인 애니메이션 Ik
 
[0903 구경원] recast 네비메쉬
[0903 구경원] recast 네비메쉬[0903 구경원] recast 네비메쉬
[0903 구경원] recast 네비메쉬
 
[0122 구경원]게임에서의 충돌처리
[0122 구경원]게임에서의 충돌처리[0122 구경원]게임에서의 충돌처리
[0122 구경원]게임에서의 충돌처리
 
[0618구경원]초보 게임프로그래머를 위한 c++
[0618구경원]초보 게임프로그래머를 위한 c++[0618구경원]초보 게임프로그래머를 위한 c++
[0618구경원]초보 게임프로그래머를 위한 c++
 
게임제작개론 : #6 게임 시스템 구조에 대한 이해
게임제작개론 : #6 게임 시스템 구조에 대한 이해게임제작개론 : #6 게임 시스템 구조에 대한 이해
게임제작개론 : #6 게임 시스템 구조에 대한 이해
 
[0204 구경원] sse 병렬 프로그래밍
[0204 구경원] sse 병렬 프로그래밍[0204 구경원] sse 병렬 프로그래밍
[0204 구경원] sse 병렬 프로그래밍
 
게임 프로그래밍 기초 공부법
게임 프로그래밍 기초 공부법게임 프로그래밍 기초 공부법
게임 프로그래밍 기초 공부법
 
빌드 속도를 올려보자
빌드 속도를 올려보자빌드 속도를 올려보자
빌드 속도를 올려보자
 

[Gpg2권 구경원] 3.4 rts 게임의 명령 큐잉을 위한 기반 구조

  • 1. RTS 게임의 명령 큐잉을 위한 기반 구조 GPG스터디(2012.1.14) 돼지고기(구경원)
  • 2. 들어가기 RTS 게임 사용자는 마우스를 이용. 개별 또는 그룹단위로 여러 가지 명령을 부여. 새롭게 개선된 인터페이스 설계의 발전. 가장 발전된 설계들 중 하나 “명령 큐잉”
  • 7. RTS 명령들 적 유닛 또는 건물을 공격 건물 또는 무기를 건설 한 지점으로 이동 한 지점 주변을 순찰 자원(식량, 원자재, 에너지) 수집 위치 지키기
  • 8. RTS 명령들 정지 자폭 스킬 연구 유닛 또는 건물 수리 유닛 회수 유닛 또는 건물 보호
  • 9. 명령 큐잉 이동 RTS 게임 도중 많은 시간을 소비한다. 효율적 이동 경로와 웨이포인트를 지정 해주어야 한다. 웨이포인트 해당 유닛의 명령 큐에 저장된 일련의 이동 명령.
  • 10. 명령 큐잉 특별한 버튼 Shift키 등을 누른 상태에서 각 웨이포인트를 클릭 함으로서 이동 명령들을 큐에 넣을 수 있다. 특정 명령들을 큐에 넣어서 대기상태로 만드 는 것을 “큐잉” 이라고 한다.
  • 11. 명령 큐잉 웨이포인트를 큐에 넣을 수 있다면?? 다른 명령들도 얼마든지 큐에 넣어서 차례대 로 실행되게 만들 수 있다. 적 공격 + 벽 수리 + 터렛 건설 연속적인 명 령을 내려두고 플레이어는 다른 곳으로 가서 전투를 한다.
  • 12. 명령 큐잉 기본적인 아이디어 모든 명령들을 하나의 과제이다. 유닛의 두뇌는 그러한 과제들의 큐 이다. 과제가 끝나면 그 과제는 큐에서 제거된다. 자신의 기본 과제를 수행한다.
  • 14. 명령 큐잉 직관적인 표현 유닛의 과제들을 볼 수 있도록 해야 한다 이동 지점들을 선으로 긋는다. 건설 명령을 내린 곳에 아이콘을 표시한다. 눈에 보이기 때문에 사용자는 추가판단을 하 기 쉽다.
  • 15.
  • 16. 순환 명령들 순찰은 나의 임무 계속 반복되는 일련의 명령
  • 17. 순환 명령들 유닛에게 어떤 지점까지 순찰할 것을 명령한다. 현재 위치를 기억해 두고 어떤 지점으로 이동한다. 그 지점으로 이동한 후 기억해 둔 원래의 위치로 돌아간다. 이러한 과정이 반복된다. 중간에 적을 발견하면 순찰명령은 취소된다.
  • 18. 순환 명령들 유닛의 두뇌 큐에 웨이포인트 방식과 결합한 다면 둘 이상의 지역도 순찰 가능 한다.
  • 19. 첫 번째 순찰 지점의 큐잉 순찰이란 두 지점 사이의 왕복이다. 처음으로 순찰 명령을 클릭. 두 개의 이동명령이 추가.
  • 20. 첫 번째 순찰 지점의 큐잉 순찰 명령은 하나의 이동명령 이다 순찰명령이 순환된다는 점이 다르다 간단한 플래그로 설정 가능하다
  • 21. 추가적인 명령의 큐잉 추가적인 순찰 명령을 어디에 넣어야 할 것인가? 순찰이 시작되면 원래의 순찰 지점들은 사라진다. 마지막으로 추가된 순찰 지점이 어떤 것인지 모른다. 새 순찰 과제에 마지막 플래그를 설정한다
  • 23. 추가적인 명령의 큐잉 순찰 명령 이외의 명령을 큐에 넣을 때의 어려움. 플레이어는 유닛이 순찰지점에 도착하자 마 자 새 명령이 실행되기를 기다린다. 순환 이라는 개념은 명령 큐잉의 구현에 여러 가지 어려움들을 발생 시키는 원인이 된다.
  • 25.
  • 26. 추가적인 명령의 큐잉 게임에 의해 플레이어의 머리 속 모형이 바뀔 수 있다. 플레이어가 어떤 명령을 내렸을 때 즉각적인 피드백을 제공해야 한다. 플레이어는 명령에 대한 피드백을 통해서 게 임 인터페이스에 익숙해진다.
  • 27. 결론 • 명령 큐잉은 RTS 게임에서 빠질 수 없는 기 능이 되었다. • 두뇌 큐 기반구조를 사용하면 명령 큐잉 시스템 에 필요한 많은 복잡성을 해소할 수 있다. • 과제를 자신의 작업에 대한 수행 방식을 스스로 알고 있는 AI시스템으로 캡슐화 하는 것도 가능하다.
  • 28. Q&A