게임인공지능 제 6 장 스크립트 2008년 5월 6일.

Slides:



Advertisements
Similar presentations
03 변수와 자료형 세종대학교 최옥경 교수 참고 : 한빛미디어 뇌를 자극하는 C, INFINITY Perfect C.
Advertisements

연천 새둥지마을 체재형 주말농장 준공식 초청장 오시는 길 주제 일시 장소 21C 경기농촌희망심기 2005년 제1기 교육수료마을
SPARCS Wheel Seminar Mango X Sugoi
10월 충북노회 남선교회 순회 헌신예배 묵 도 기 도 성 경 봉 독 특 송 찬 양 설 교 찬양 / 봉헌 봉 헌 기 도
한알Ⅱ「더불어 살기」전국대회 일정표 날짜 시간 7월 26일(목) 7월 27일(금) 7월 28일(토) 7월 29일(일)
2013학년도 전라북도고등학교신입생 입학전형 기본계획
선거관리위원회 위원 공개모집 4차 공고 제4기 선거관리위원회를 구성하는 위원 모집의
전도축제 계획서 *일시 : 2013년 4월 21, 28일 주일 (연속 2주)
2009학년도 가톨릭대학교 입학안내.
이공계의 현실과 미래 제조업 立國 / 이공계 대학생의 미래 준비
신앙의 기초를 세우는 중고등부 1부 대 예 배 : 11 : 00 ~ 12 : 층 본당
신앙의 기초를 세우는 중고등부 1부 대 예 배 : 11 : 00 ~ 12 : 층 본당
◆ 지난주 반별 출석 보기 ◆ 제 56 권 26호 년 6월 26일 반 선생님 친구들 재적 출석 5세 화평 김성희 선생님
第1篇 자치입법 개론.
교직원 성희롱·성폭력·성매매 예방교육 벌교중앙초등학교 박명희
제5장 새로운 거버넌스와 사회복지정책 사회복지정책이 어떤 행위자에 의해 형성되고 집행되는지, 어떤 과정에서 그러한 일들이 이루어지는지, 효과적인 정책을 위해서는 어떤 일들이 필요한지 등을 본 장에서 알아본다 개인들이 생활을 개선하는 가장 효과적인고 궁극적인 방법은 개별적.
특수학교용 아동학대! 제대로 알고 대처합시다..
제 출 문 고용노동부 귀중 본 보고서를 ’ ~ ‘ 까지 실시한 “근로감독관 직무분석 및 교육프로그램 개발에 관한 연구”의 최종보고서로 제출합니다  연구기관 : 중앙경영연구소  프로젝트 총괄책임자 : 고병인 대표.
성 김대건 피츠버그 한인 성당 그리스도왕 대축일 공지사항
예배에 대하여.
말씀 듣는 시간입니다..
Lecture Part IV: Ecclesiology
KAINOS 날마다 더하여지는 Kainos News 이번 주 찬양 20 / 300 – 20개의 셀, 300명의 영혼
예배의 외부적인 틀II - 예배 음악 조광현.
영성기도회 렉시오 디비나와 묵상기도 2.
성인 1부 성경 공부 지도목사: 신정우 목사 부 장: 오중환 집사 2010년. 5월 9일
남북 탑승객 150명을 태운 디젤기관차가 2007년 5월 17일 오전 경의선 철길을 따라 남측 최북단 역인 도라산역 인근 통문을 통과하고 있다. /문산=사진공동취재단.
III. 노동조합과 경영자조직 노동조합의 이데올로기, 역할 및 기능 노동조합의 조직형태 노동조합의 설립과 운영
여수시 MICE 산업 활성화 전략 ( 중간보고 )
1. 단위사업 관리, 예산관리 사업설정 (교직원협의/의견수렴) 정책 사업 학교 정책 사업 등록 사업 기본정보 목표 설정

화장품 CGMP 한국콜마㈜.
14. 컴파일러 자동화 도구 스캐너 생성기 파서 생성기 코드 생성의 자동화
목 차 Ⅰ 점검 업무의 목적 Ⅱ 시설물 설치 현황 파악 Ⅲ 주요 시설물 점검 특성 및 주기 Ⅳ 테마별 점검 내용 Ⅴ
제 출 문 현대 리모델링 주식회사 귀중 본 보고서를 압구정동 Project의 성공적 분양을 위한 마케팅 전략에 관한 제안서로
SEABORG 400BD 세척가능한 전동릴 목차 취급설명서
UV Sterilizer 냉온 정수기를 위한 UV살균기
공공기관의 업무향상을 위한 SmartEKP 협업 솔루션
(Lifetime Physical Fitness and Wellness)
기능성 소재 ‘조습군’ 의자분야 응용 제안서 ㈜ 마루와벅스프리.
10 카운터 (Counter) IT CookBook, 디지털 논리회로.
리우올림픽 개최국 브라질에 대해서~~ 금은동 메달 브라질 국기 마스코트 비니시우스와 톰 리우올림픽 개막식 및 폐막식 구 분
홍콩과기대 방문 결과 보고 학교법인 포항공과대학교.
컴퓨터 보안 메커니즘에 기반한 자기 가치감의 셀프힐링
(Perspective of GNEP in terms of international power politics)
변비 재활전문센터 재활 간호사 김은화.
Q & A (사실상 혼인·이혼) Q. 사실상 혼인·이혼 관계를 어떻게 처리해야 하나요?   사실 혼인·이혼은 부부 모두 동의 여부를 확인하고, 자녀, 이·통·반장으로부터 「사실(이)혼 확인서」를 징구해야 합니다. 만약 어느 한쪽이 동의하지 않는 경우는.
데이터 관리의 모든 것 데이터 최적화하기 데이터 정렬하기 자동 필터와 고급 필터
2주 실습강의 Java의 기본문법(1) 인공지능연구실.
해싱(hashing) Ref. C로 쉽게 풀어쓴 자료구조, 생능출판사, 2005.
C++ 프로그래밍 년 2학기 전자정보공학대학 컴퓨터공학부.
CHAP 11: 해싱 순천향대학교 하상호.
CHAP 11: 해싱 순천향대학교 하상호.
목차 INDEX 1. 회원가입 및 로그인 2. 업체정보 3. 제조검사 신청 4. 인보이스 5. 검사진행현황(현장검사 신청)
컴퓨터의 기초 제 2강 - 변수와 자료형 , 연산자 2006년 3월 27일.
프로그래밍 원리 Chapter 04 자료 처리와 연산자 신한대학교 IT융합공학부 박 호 균.
DataScience Lab. 박사과정 김희찬 (화)
Chapter 4 변수 및 바인딩.
Lua script cpp서 사용하기 Lua 버전
작성일 참고서적 – Programing Game AI by Example
C89(C++03) 프로그래밍 (Part 2) 7 배열 8 변수 범위 9 포인터 10 유도 자료형.
C언어 응용 제 15 주 검색.
마음의 성전이 더 아름다운 조촌교회.
1.비 사업용(자가용 및 관용) 차 종 적 용 상 의 구 분 승합 자동차 (버스) 1 종
자바 5.0 프로그래밍.
이번엔 핵엔슬래시 최명근.
DataScience Lab. 박사과정 김희찬 (화)
책을 읽읍시다  탈향 진지하게 설명해드림 1303 김소희 1309박지호 1315이지수.
2016년 제1차 운영위원회 평택시건강가정 ∙다문화가족지원센터
Report #3- 문제 1 Set(집합) 추상 데이터 타입을 정의하고, 다음과 같은 연산자들을 포함시켜라. 여기서 S, S1, S2는 집합을 나타내고, i는 집합 원소를 나타낸다. 연산 의미 create() Return {} insert(S, i) If i є S then.
Presentation transcript:

게임인공지능 제 6 장 스크립트 2008년 5월 6일

게임에서의 스크립트 언어 활용 Epic Games의 Unreal Tournament 시리즈 BioWare의 Neverwinter Nights Crytek의 Far Cry 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

스크립트 언어란? 대규모 프로젝트 진보된 스크립트 너무 긴 컴파일 시간 요구 상수 값 변경 하나 이상의 스크립트 파일로 구성 초기화(혹은 컨피규레이션) 파일 이용 스크립팅의 초보 형태 진보된 스크립트 하나 이상의 스크립트 파일로 구성 게임 논리, 객체의 생성, 실행 파일과 상호작용 가상기계(virtual machine, VM) (혹은 인터프리터)에 의해 실행 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

스크립트 언어란? 인터프리터 방식 컴파일러 방식 The 80-20 Rule 사람이 읽기 쉬운 형태 인터프리터가 줄 단위로 읽고, 분석 및 실행 (혹은 실행 직전에 컴파일) 보안에 취약 컴파일러 방식 VM이 직접 실행할 수 있는 바이트코드 형태로 변환 플랫폼에 독립적 보안에 강함 The 80-20 Rule 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

스크립트 언어의 용도 초기화 파일에서 게임 데이터를 읽기 위한 빠르고 쉬운 방법 시간을 줄이고 생산성을 높임 창조성을 증대 자체 파서 작성 필요 없음 시간을 줄이고 생산성을 높임 긴 컴파일 시간의 단점 해소 개발 기간 중엔 스크립트  완성되면 C++로 변환 창조성을 증대 프로그래머가 아닌 다른 개발자의 능력 발휘 기회 높은 확장성 Mod 제작 기회 제공 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

스크립트 언어의 용도 대화 흐름 단계 연출 AI 논리 거대한 양의 대화를 빠르고 쉽게 작성 (특히, RPG) 게임 디자이너가 프로그래머의 도움 없이 연출 AI 논리 개발 기간 중에 변경 사항이 많은 부분을 스크립트로 노출 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

Lua에서의 스크립팅 게임 개발자에게 가장 인기 있는 스크립트 언어 빠르고 가볍고 쉬운 언어 높은 이식성, 무료, 소스 공개 C/C++ 코드에서 Lua 변수및 함수 접근 Lua 코드에서 C/C++ 변수, 함수, 클래스 접근 컴파일러(Visual Studio)에서 Lua 사용하기 include/lib 폴더 설정 lua.lib, lualib.lib, luaxlib.lib 링크 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

C/C++에서 Lua 스크립트 실행 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

Lua: 변수 동적 자료형 언어 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

Lua: 주석 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

Lua: 문장의 끝 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

Lua: Assignment 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

Lua: 변수의 종류 전역(global) 지역(local) 테이블 필드(table field) 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

Lua: 자료형(data types) Nil 숫자 (내부적으로 double) 문자열 불리언 (true, false) 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

Lua: 함수 함수도 하나의 자료형 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

Lua: 함수 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

Lua: 테이블 일종의 associative array (or hash table) C/C++의 배열 Lua의 테이블 정수형으로만 index로 사용 한 배열에는 같은 자료형만 저장 가능 Lua의 테이블 어떤 자료형으로도 index로 사용 한 테이블에 여러 자료형을 혼합 저장 가능 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

Lua: 테이블 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

Lua: n차원 테이블 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

Lua: n차원 테이블 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

Lua: 테이블 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

Lua: 논리 연산자 C/C++: &&, ||, ! Lua: and, or, not false와 nil을 제외한 값은 참 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

Lua: 조건 구조 If while 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

Lua: 조건 구조 repeat for 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

Lua: 조건 구조 For 테이블에서의 for k: key v: value 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

Lua: 조건구조 테이블에서의 for 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

Lua로 가위바위보 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

Lua로 가위바위보 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

Lua로 가위바위보 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

C/C++과 인터페이스하기 가상 스택(virtual stack)을 사용하여 통신 문자열 “Captain Hook”이 Lua 스크립트의 변수 Pirates_Name에 저장되어 있는 경우 1. C++ 함수는 Pirates_Name을 Lua 스택에 넣는다 2. Lua는 스택을 읽고 문자열 Pirates Name을 찾는다 3. Lua는 전역 테이블에서 Pirates_Name의 값을 찾고 그것에 지정된 값, 즉 “Captain Hook”을 스택에 넣는다 4. C++ 함수는 문자열 Captain Hook을 스택의 맨 위에서 가져간다 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

C/C++과 인터페이스하기 가상 스택 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

C++ 프로그램에서 Lua 전역변수 접근 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

C++ 프로그램에서 Lua 전역변수 접근 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

C++ 프로그램에서 Lua 전역변수 접근 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

C++ 프로그램에서 Lua 전역변수 접근 원하는 자료형이 스택에 있는가 검사 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

C++ 프로그램에서 Lua 전역변수 접근 C++자료형으로 변환 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

C++ 프로그램에서 Lua 전역변수 접근 하나의 수에 접근하기 위한 편의 함수 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

C++ 프로그램에서 Lua 테이블 접근 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

C++ 프로그램에서 Lua 테이블 접근 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

C++에서 Lua 함수에 접근 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

C++에서 Lua 함수에 접근 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

Lua에서 C/C++ 함수에 접근 Lua에서 호출할 수 있는 함수 프로토타입 Int function_name(lua_State*) 위의 C/C++ 함수를 둘러싸는(wrapping) 래퍼(wrapper)함수 작성 Wrapper 안에서 매개변수를 스택에서 추출  원래 함수 호출  return 값을 스택에 삽입 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

Lua에서 C/C++ 함수에 접근 Wrapper 함수 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

Lua에서 C/C++ 함수에 접근 Wrapping 함수 작성  lua_register 함수를 사용하여 Lua에 등록 Lua_register(pL, “cpp_EvaluateTheGuesses”, cpp_EvaluateTheGuesses); 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

Lua에서 C/C++ 함수에 접근 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

Lua에서 C/C++ 함수에 접근 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

Lua에서 C/C++ 클래스에 접근 클래스 데이터와 메소드를 원소로 가지는 Lua 테이블 생성 … 많은 작업량 Luabind 이용 ! 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

Luabind Lua와 C++ 사이의 바인딩(binding)을 생성하기 위한 라이브러리 상속 및 템플릿 클래스 지원 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

Luabind 기본 사용 구조 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

Luabind 범위(Scope) Luabind를 통하여 등록되는 함수나 클래스의 scope를 결정 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

Luabind를 이용한 C/C++ 함수 접근 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

Luabind를 이용한 C/C++ 함수 접근 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

Luabind를 이용한 C/C++ 함수 접근 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

Luabind를 이용한 C++ 클래스 접근 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

Luabind를 이용한 C++ 클래스 접근 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

Luabind를 이용한 C++ 클래스 접근 파생된 클래스 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

Luabind를 이용한 C++ 클래스 접근 파생된 클래스 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

Lua에서의 클래스 생성 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

Lua에서의 클래스 생성 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

luabind::object 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀

스크립트 유한상태기계 새로운 AI 논리를 재컴파일 없이 즉각 테스트 디자이너, 아티스트 들도 AI 조정 가능 플레이어에게 게임 인진의 능력 부여 어느 부분을 스크립트로 노출할 것인가? ScriptedStateMahine 프로젝트 참조 2008-05-06 게임인공지능 - 제 5장 그래프의 비밀